[plt-scheme] cannot get mapping over procedures (procedure
applications) to work
Will M Farr
farr at MIT.EDU
Mon Apr 27 11:23:51 EDT 2009
Sigrid,
On Apr 27, 2009, at 11:16 AM, keydana at gmx.de wrote:
> this seems like a horribly stupid thing to ask, but I have problems
> to map over procedures (in order to apply them). When I try
>
> (map (lambda (fun) (fun 1 2)) '(* +))
>
> I get
>
> "procedure application: expected procedure, given: *; arguments
> were: 1 2"
The expression
(map (lambda (fun) (fun 1 2)) '(* +))
maps the procedure (lambda (fun) (fun 1 2)) over a list which contains
two symbols: '* and '+. Trying to apply the symbol '* to the
arguments 1 2 gives the error. You probably wanted to write
(map (lambda (fun) (fun 1 2)) (list * +))
where the list will contain the values to which '* and '+ are bound in
the current environment---that is, the list will be a list of two
procedures which multiply and add, respectively.
Hope this helps!
Will
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 203 bytes
Desc: This is a digitally signed message part
Url : http://list.cs.brown.edu/pipermail/plt-scheme/attachments/20090427/5b4ae1ae/PGP-0001.pgp
More information about the plt-scheme
mailing list