Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
13
Task/Variadic-function/OCaml/variadic-function-5.ml
Normal file
13
Task/Variadic-function/OCaml/variadic-function-5.ml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
type ('f,'g) t =
|
||||
| Z : ('f,'f) t
|
||||
| S : 'a -> (('a -> 'f), ('f,'g) t -> 'g) t
|
||||
|
||||
let rec apply: type f g. f -> (f,g) t -> g =
|
||||
fun k t -> match t with
|
||||
| Z -> k (* type g = f *)
|
||||
| S x -> apply (k x) (* type g = (f,g) t -> g *)
|
||||
|
||||
let (!) x = S x (* prefix *)
|
||||
|
||||
(* top level *)
|
||||
# apply List.map !(fun x -> x+1) ![1;2;3] Z
|
||||
Loading…
Add table
Add a link
Reference in a new issue