20
В F # Я не могу жить без труб (<|
и |>
)Можно ли использовать трубы в OCaml?
let console(dashboard : Dashboard ref) =
let rec eat (command : string) =
command.Split(' ','(',')')
|> Seq.filter(fun s -> s.Length <> 0)
|> fun C ->
(Seq.head C).ToUpper() |> fun head ->
Могу ли я использовать <|
и |>
в OCaml?
update: in 4.01.0 '|>' входит в stdlib, а '@@' определяется так же, как' | <'. – nlucaroni
@nlucaroni спасибо! Интересно, почему они выбрали '@@' вместо чего-то явно дополняющего передовые трубопроводы? ('<|' кажется лучшим вариантом для меня, но '| <' по крайней мере использует аналогичные глифы. –
Это связано с ассоциативностью, необходимой в грамматике. '@' используется для запуска функций infix с правильной ассоциацией, а '|' используется для левой. Это был стандарт на некоторое время. См. Http://stackoverflow.com/questions/6150551/ocaml-why-i-cant-use-this-operator-infix – nlucaroni