Variadic function: Difference between revisions
Add lang example
(Replace println() with print(); replace output "syntaxhighlight" tag with "pre" tag) |
(Add lang example) |
||
Line 1,768:
10
</syntaxhighlight>
=={{header|Lang}}==
<syntaxhighlight lang="lang">
fp.printAll = (&values...) -> {
fn.arrayForEach(&values, fn.println)
}
fp.printAll(1, 2, 3)
# 1
# 2
# 3
fp.printAll() # No output
fp.printAll(abc, def, xyz)
# abc
# def
# xyz
# Array un-packing
&arr $= [1, abc, xyz, 42.42f]
fp.printAll(&arr...)
# 1
# abc
# xyz
# 42.42
fp.printAll(&arr..., last)
# 1
# abc
# xyz
# 42.42
# last
fp.printAll(first, &arr...)
# first
# 1
# abc
# xyz
# 42.42
</syntaxhighlight>
Solution with the use of arguments auto-pack operator and combinator function:
<syntaxhighlight lang="lang">
fp.printAllComb $= -|fn.combC(fn.arrayForEach, fn.println)
fp.printAllComb(42, 2, abc)
# 42
# 2
# abc
fp.printAllComb() # No output
fp.printAllComb(&arr...)
# 1
# abc
# xyz
# 42.42
</syntaxhighlight>
|