Higher Order Function Question
Alex Peake
apeake@REDACTED
Thu May 16 06:19:21 CEST 2002
I have a function that in Lisp is defined:
%(defun disjoin (fn &rest fns)
% (if (null fns)
% fn
% (let ((disj (apply #'disjoin fns)))
% #'(lambda (&rest args)
% (or (apply fn args) (apply disj args))))))
%
%
or in Scheme:
%(define (disjoin fn . fns)
% (if (null? fns)
% fn
% (lambda (args)
% (or (fn args) ((apply disjoin fns) args)))))
I have tried the following (incorrect) Erlang:
disjoin([Fn | FnTail]) ->
fun(Args) ->
apply(Fn, [Args]) orelse apply(apply(disjoin, [FnTail]), [Args]) end;
disjoin([Fn]) ->
Fn.
Can anyone help please?
Alex
More information about the erlang-questions
mailing list