оценил трубу
Dec. 1st, 2010 12:10 pmfrpog#5/F#:
Конвейерные операторы — передают значение, вычисленное одной функцией, на вход второй. Пожалуй, наиболее часто употребляемым оператором из этой группы можно назвать |>, определение которого выглядит так:
Казалось бы, ничего сверхъестественного — лишь простая перестановка местами функции и её аргумента. Но это может быть очень удобно в случае, когда необходимо последовательно совершить несколько преобразований над одним исходным значением, например, списком:
Классная идейка-то. Как-то в скале не популяризуется; надо будет попробовать. Не знал раньше.
Конвейерные операторы — передают значение, вычисленное одной функцией, на вход второй. Пожалуй, наиболее часто употребляемым оператором из этой группы можно назвать |>, определение которого выглядит так:
let (|>) x f = f x
Казалось бы, ничего сверхъестественного — лишь простая перестановка местами функции и её аргумента. Но это может быть очень удобно в случае, когда необходимо последовательно совершить несколько преобразований над одним исходным значением, например, списком:
let list = [1..10] list |> List.map (fun i -> i*i) |> List.iter (fun sq -> printfn "Square: %d" sq)
Классная идейка-то. Как-то в скале не популяризуется; надо будет попробовать. Не знал раньше.