In Elm, wenn ich eine anonyme FunktionVereinfachen eine zweiparametrige anonyme Funktion in Elm
(\f x -> f x)
habe ich es zu
(<|)
Kann das gleiche getan werden für eine Zwei-Parameter vereinfachen Funktion wo die Parameter Argumente für eine andere Funktion sind?
(\x y -> f x y |> g)
Ich dachte, ich einfach
(f |> g)
aber der Compiler beschwert sich über die Art nutzen könnten.
Insbesondere in einem der Fälle für meine update
Funktion, ich habe so etwas wie dies:
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)
Ich versuche, die anonyme Funktion Argument List.foldl
um so etwas wie (update |> Tuple.first)
zu vereinfachen, aber ich bekomme die folgende Fehler vom Compiler:
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
Dank. Das habe ich gesucht. Ich stimme zu, dass '((<<) g) << f)' nicht übermäßig lesbar ist und möglicherweise keine Verbesserung gegenüber der einfachen anonymen Funktion darstellt. – Ralph