Jules Bean wrote:
I have no idea what you're talking about. It works fine on multiple lines:

f x = g
      . transform displacement
      . scale factor
      $ x

is perfectly valid.

Yes, it is. It is not an issue if you prefer to indent based on previous line
 instead of "always by the same small amount of spaces". And then problem
 happens when the amount of spaces is less than 5. E.g. this does not work:

h x = x
f x =
  let g x =
    h .
    (+ 5) .
    (* 2) $
    x in
  g x

I do not like to indent based on previous lines since it should be re-indented
 when the previous lines change (e.g. because of identifier rename). So I indent
 based on previous lines only when it adds a LOT to readability. Of course
 fixed amount indentation by big enough number of spaces would do but then your
 code gets too wide if more blocks are nested and I like to be withing 110 chars
 at worst (preferably 80).
This is probably not a problem for "where" keyword then the next longest from
 the "let", "where", "do", "of" set is "let" which would mean that 5 should be
 enough, not that bad, but looks much for me. Other option is to leave "let"
 keyword alone on the line and then indent "g x" by one and the function body
 by two indentation units from the "let" keyword.
So from my point of view the point free style is great if it fits on one line
 well ... otherwise it depends.

Thanks,
   Peter.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to