에 두 개의 매개 변수를 익명 함수를 단순화 함수가 다른 함수의 인수가되는 함수? 내가 익명 함수가있는 경우</p> <pre><code>(f x -> f x) </code></pre> <p>내가 같은이 두 매개 변수에 수행 할 수 있습니다</p> <pre><code>(<|) </code></pre> <p>로 단순화 할 수 있습니다, 느릅 나무에서 느릅 나무
(\x y -> f x y |> g)
나는 단순히
(f |> g)
를 사용할 수 있다고 생각하지만, 컴파일러는 유형에 대해 불평.
특히, 내 update
기능에 대한 사례 중 하나에, 나는 이런 일이 : 나는 (update |> Tuple.first)
같은 것으로 List.foldl
에 익명 함수 인수를 단순화하기 위해 노력하고
let
msgNames = [Foo, Bar]
values = ["f", "b"] // These values are actually derived
// by a more complicated operation
model_ = List.map2 (<|) msgNames values
|> List.foldl (\msg mod -> update msg mod |> Tuple.first)
model
in
(model_, Cmd.none)
을하지만, 나는 다음을 얻을 컴파일러에서 오류 :
The right side of (|>) is causing a type mismatch.
159| update |> Tuple.first)
^^^^^^^^^^^
(|>) is expecting the right side to be a:
(Msg -> Model -> (Model, Cmd Msg)) -> a
But the right side is:
((Model, Cmd Msg)) -> Model
감사합니다. 그것이 내가 찾고 있던 것입니다. 나는 (((<<) g) << f)는 지나치게 읽을 수없고 단순한 익명의 기능보다 개선되지 않을 수도 있다는 것에 동의한다. – Ralph