From dcdbaf22de9578ede5d6747cf2c670fb61481f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20=C5=9Aled=C5=BA?= Date: Tue, 22 Aug 2017 09:37:44 +0200 Subject: [PATCH] Add curry function --- examples/example.sh | 8 ++++++++ src/fun.sh | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/examples/example.sh b/examples/example.sh index a2dbba8..b5a214c 100755 --- a/examples/example.sh +++ b/examples/example.sh @@ -47,3 +47,11 @@ echo -n ' abcdefg' | splitc | foldr lambda a b . 'echo $a$b' # gfedcba echo 'ls' | try λ cmd status ret . 'echo $cmd [$status]; echo $ret' list {1..10} | filter lambda a . '[[ $(mod $a 2) -eq 0 ]] && ret true || ret false' | join , '[' ']' # [2,4,6,8,10] + +function add() { + expr $1 + $2 +} + + +curry add3 add 3 +add3 9 \ No newline at end of file diff --git a/src/fun.sh b/src/fun.sh index 263b7f3..3778007 100755 --- a/src/fun.sh +++ b/src/fun.sh @@ -234,3 +234,14 @@ zip() { done } +function curry() { + exportfun=$1; shift + fun=$1; shift + params=$* + cmd=$"function $exportfun() { + more_params=\$*; + $fun $params \$more_params; + }" + eval $cmd +} +