Но при этом следует иметь в виду, что если применения "записаны" через основной оператор применения, то сначала вычисляются все параметры, а затем происходят применения. В следующем выражении
функция ( выражениеДляПараметра1 ) ( выражениеДляПараметра2 )
сначала будут вычислены ( выражениеДляПараметра1 ) и ( выражениеДляПараметра2 ), а затем функция будет применена к результату выраженияДляПараметра1, после чего результат этого применения будет применён к результату выраженияДляПараметра2.
Проверить это можно только на функции с побочными эффектами с одним параметром, которая также выдаёт функцию с побочными эффектами и с одним параметром.
Однако остальные операторы применения не обладают таким свойством:
функция ( выражениеДляПараметра1 ) <| ( выражениеДляПараметра2 )
Здесь выражениеДляПараметра2 будет вычислено лишь после применения функции к результату выраженияДляПараметра1 .
Мне кажется, синтаксис этого языка проще освоить, если принять, что в языке не поддерживаются применения функции к нескольким параметрам сразу. Всегда применяется только к одному параметру, но потом результат применения может быть применён к следующему параметру (а может и не быть).
это коэффициент температуропроводности, а не теплопроводности.
Но при этом следует иметь в виду, что если применения "записаны" через основной оператор применения, то сначала вычисляются все параметры, а затем происходят применения. В следующем выражении
сначала будут вычислены ( выражениеДляПараметра1 ) и ( выражениеДляПараметра2 ), а затем функция будет применена к результату выраженияДляПараметра1, после чего результат этого применения будет применён к результату выраженияДляПараметра2.
Проверить это можно только на функции с побочными эффектами с одним параметром, которая также выдаёт функцию с побочными эффектами и с одним параметром.
Однако остальные операторы применения не обладают таким свойством:
Здесь выражениеДляПараметра2 будет вычислено лишь после применения функции к результату выраженияДляПараметра1 .
Мне кажется, синтаксис этого языка проще освоить, если принять, что в языке не поддерживаются применения функции к нескольким параметрам сразу. Всегда применяется только к одному параметру, но потом результат применения может быть применён к следующему параметру (а может и не быть).
Хорошо, когда язык позволяет избежать придумывания "одноразового" имени. Тем не менее благодарю за предложенные имена.
Но bash сложнее, гораздо сложнее :). А в F# всё логично и просто.
Кстати, вместо (fun i -> i) можно воспользоваться функцией id.