comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Bug or desired behavior in lambda functions?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Bug or desired behavior in lambda functions? [message #91140 is a reply to message #91136] Mon, 08 June 2015 13:31 Go to previous messageGo to previous message
penteado is currently offline  penteado
Messages: 866
Registered: February 2018
Senior Member
Administrator
The best workaround I found is using call_function:

IDL> expr='x: x^2'
IDL> l=call_function('lambda',expr)
IDL> l(3)
9

On Monday, June 8, 2015 at 2:34:12 PM UTC-3, Paulo Penteado wrote:
> Hello,
>
> Despite what the documentation might suggest, and one might expect, it seems there is no way to use string variables to make lambda functions.
>
> If I try to make a lambda function with the code inside lambda(), all is well:
>
> IDL> l=lambda('x: x^2')
> IDL> l(2)
> 4
>
> However, if I put the same code in a string and pass it to lambda, it does not accept the code:
>
> IDL> expr='x: x^2'
> IDL> l=lambda(expr)
> % LAMBDA: Code must be of the form "arg1,arg2,... : statement"
>
> I expect this is caused by IDL parser's special behavior when it encounters lambda(), which is what allows this
>
> IDL> l=lambda(x: x^2)
>
> So I think when I put a variable name inside the lambda() call, the parser thinks is a string literal, and tries to parse the variable name as code.
>
> Is this intended behavior, or a bug?
>
> Paulo
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Identify whether value is integer in IF statement
Next Topic: Multiple Processing

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 20:09:00 PDT 2025

Total time taken to generate the page: 0.02840 seconds