привязка через имя аргумента и сопоставление с образцом в ocaml - PullRequest
0 голосов
/ 29 октября 2018

В OCaml, как я могу оба:

  • сопоставление с образцом по аргументу
  • а также связать непревзойденный аргумент с именем?

в хаскеле это похоже на

f arg@{..} = some code using both arg and its fields

1 Ответ

0 голосов
/ 29 октября 2018

Используйте as. E.g.:

let f ((a, b) as original) =
  if a > b then
    (b, a)
  else
    original

или

let g = function
| [] -> []
| (x :: _) as l -> x :: l
...