Например, если у вас есть функция (fun x -> x+1)
, и вы хотите сопоставить ее с [1; 2; 3]
.Но вы хотите отобразить его только тогда, когда x=1
, так что результат будет [2; 2; 3]
.Как вы это делаете?
Используя OCaml, я попытался:
let rec foo (input : int list) : int list =
match input with
| [] -> []
| hd::tl -> List.map (fun x -> if x=1 then (x+1)) input;;
И я пробовал операторы «когда», но безрезультатно.