Пишу вот я код на F# и приходится мне помнить порядок вычисления, когда он не важен мне совершенно, поэтому беру я и указываю явно, чтобы другие не утруждались, кто код мой будет потом читать, смотрю, а получается как на лиспе. Вот пример, когда скобки удобнее, помнить надо меньше.
(stage1
@ (free |> List.map (fun l -> l, [l]))) //причинное место
|> List.groupBy
(fun (mline1, lines1) (mline2, lines2) ->
Math.Abs(mline1.x-mline2.x) < 0.1
&& Math.Abs(mline1.y-mline2.y) < 0.1)
(List.groupBy
(lambda (mline1 lines1 mline2 lines2)
(and (< (Math.Abs (- mline1.x mline2.x) 0.1))
(< (Math.Abs (- mline1.y mline2.y) 0.1))))
(@ stage1
(List.map (lambda (l) (list l (list l)))
free)))))