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>
 
168

edits