June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -6,13 +6,13 @@ program =
[
var partial := (:afs:af)((:s)(afs eval(af, s))).
var fs := (:f:s)(s selectBy(:x)(f eval:x); summarize(ArrayList new); toArray).
var fs := (:f:s)(s selectBy(:x)(f(x)); summarize(ArrayList new); toArray).
var f1 := (:x)(x * 2).
var f2 := (:x)(x * x).
var fsf1 := partial eval(fs, f1).
var fsf2 := partial eval(fs, f2).
var fsf1 := partial(fs, f1).
var fsf2 := partial(fs, f2).
console printLine(fsf1 eval:(2,4,6,8)).
console printLine(fsf2 eval:(2,4,6,8)).
console printLine(fsf1((2,4,6,8))).
console printLine(fsf2((2,4,6,8))).
].

View file

@ -0,0 +1,11 @@
USING: kernel math prettyprint sequences ;
IN: rosetta-code.partial-function-application
ALIAS: fs map
: f1 ( n -- m ) 2 * ;
: f2 ( n -- m ) dup * ;
: fsf1 ( s -- s' ) [ f1 ] fs ;
: fsf2 ( s -- s' ) [ f2 ] fs ;
{ 0 1 2 3 } [ fsf1 . ] [ fsf2 . ] bi
{ 2 4 6 8 } [ fsf1 . ] [ fsf2 . ] bi

View file

@ -0,0 +1,12 @@
fs(f, s) = map(f, s)
f1(x) = 2x
f2(x) = x^2
fsf1(s) = fs(f1, s)
fsf2(s) = fs(f2, s)
s1 = [0, 1, 2 ,3]
s2 = [2, 4, 6, 8]
println("fsf1 of s1 is $(fsf1(s1))")
println("fsf2 of s1 is $(fsf2(s1))")
println("fsf1 of s2 is $(fsf1(s2))")
println("fsf2 of s2 is $(fsf2(s2))")