aboutsummaryrefslogtreecommitdiff
path: root/stdlib.tcl
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-12-03 08:14:01 +1000
committerSteve Bennett <steveb@workware.net.au>2011-12-12 13:44:01 +1000
commita7b70857c62003d1f43352bd9a5499f87a2100f6 (patch)
tree2ebb3597e3bec6f9df8c98042e23b5c97a3b5b07 /stdlib.tcl
parent043dadf7d4cf8291050c7040489c726ff3cdf726 (diff)
downloadjimtcl-a7b70857c62003d1f43352bd9a5499f87a2100f6.zip
jimtcl-a7b70857c62003d1f43352bd9a5499f87a2100f6.tar.gz
jimtcl-a7b70857c62003d1f43352bd9a5499f87a2100f6.tar.bz2
Implement curry with alias
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'stdlib.tcl')
-rw-r--r--stdlib.tcl8
1 files changed, 2 insertions, 6 deletions
diff --git a/stdlib.tcl b/stdlib.tcl
index 5dbdce6..778c780 100644
--- a/stdlib.tcl
+++ b/stdlib.tcl
@@ -1,7 +1,6 @@
# Creates an anonymous procedure
proc lambda {arglist args} {
- set name [ref {} function lambda.finalizer]
- tailcall proc $name $arglist {*}$args
+ tailcall proc [ref {} function lambda.finalizer] $arglist {*}$args
}
proc lambda.finalizer {name val} {
@@ -10,10 +9,7 @@ proc lambda.finalizer {name val} {
# Like alias, but creates and returns an anonyous procedure
proc curry {args} {
- set prefix $args
- lambda args prefix {
- tailcall {*}$prefix {*}$args
- }
+ alias [ref {} function lambda.finalizer] {*}$args
}
# Returns the given argument.