diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-11-15 08:13:42 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-11-20 16:17:18 -0800 |
commit | 4d2ab06904fd69c0fc7ba3c5237127726ab5c98b (patch) | |
tree | bc4b0613b7af5e914fc70e6d6b20cf1a71e0cbc1 /lib.c | |
parent | 3cad8dfa357c5733c94e2a301da9184f3eb50e78 (diff) | |
download | txr-4d2ab06904fd69c0fc7ba3c5237127726ab5c98b.tar.gz txr-4d2ab06904fd69c0fc7ba3c5237127726ab5c98b.tar.bz2 txr-4d2ab06904fd69c0fc7ba3c5237127726ab5c98b.zip |
Functors: structs callable as functions.
* lib.c (generic_funcall): If an object is used as a function,
get its lambda method and call that.
* txr.1: Document functors.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -4762,6 +4762,9 @@ val generic_funcall(val fun, struct args *args_in) default: callerror(fun, lit("too many arguments")); } + } else if (structp(fun)) { + fun = method(fun, lambda_s); + break; } /* fallthrough */ default: |