Function prototype: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header| Haskell }}: Fix header markup) |
(→{{header|OCaml}}: added ocaml) |
||
Line 911: | Line 911: | ||
proc anyargs(x: varargs[int]): int = echo "anyargs" |
proc anyargs(x: varargs[int]): int = echo "anyargs" |
||
proc optargs(a: int, b = 10): int = echo "optargs"</lang> |
proc optargs(a: int, b = 10): int = echo "optargs"</lang> |
||
=={{header|OCaml}}== |
|||
<lang ocaml>(* Usually prototype declarations are put in an interface file, |
|||
a file with .mli filename extension *) |
|||
(* A prototype declaration for a function that does not require arguments *) |
|||
val no_arg : unit -> unit |
|||
(* A prototype declaration for a function that requires two arguments *) |
|||
val two_args : int -> int -> unit |
|||
(* A prototype declaration for a function that utilizes optional arguments *) |
|||
val opt_arg : ?param:int -> unit -> unit |
|||
(* in this case we add a unit parameter in order to omit the argument, |
|||
because ocaml supports partial application *) |
|||
(* A prototype declaration for a function that utilizes named parameters *) |
|||
val named_arg : ~param1:int -> ~param2:int -> unit |
|||
(* An explanation and example of any special forms of prototyping not covered by the above *) |
|||
(* A prototype declaration for a function that requires a function argument *) |
|||
val fun_arg : (int -> int) -> unit |
|||
(* A prototype declaration for a function with polymorphic argument *) |
|||
val poly_args : 'a -> unit</lang> |
|||
=={{header|Oforth}}== |
=={{header|Oforth}}== |