NewLisp function with a variable number or arguments?

Started by Sunburned Surveyor, July 25, 2005, 11:10:03 AM

Previous topic - Next topic

Sunburned Surveyor

Is it possible to have a custom function defined in newLisp that accepts a variable number of arguments?



For example, could I have the "doThis" function accept an integer named "number1" and a string named "text" or just two integers, "number1" and "number2"? How would I do this? Can you do it by just specifying all parameters in the define statement for the function, and then if the values are not used they are passed as nil?



Thanks,



The Sunburned Surveyor

Lutz

#1
Yes,



... and you can also go the other way around: specifiying more parameters than specified in the function definition. Those then would be shown by the function (args), which will return a list of all parameters passed but not defined.



Lutz



Ps: read the manual for all of this

statik

#2
You are able to, like Lutz said, define a function without arguments. This, I suppose, would be usefull if you were dynamically creating functions where the number of arguments could be any amount. By using (args), you could get everything.



newLISP v.8.6.0 on OSX, execute 'newlisp -h' for more info.

> (define (myfunc) (println (args)))
(lambda () (println (args)))
> (myfunc "one" "two" "three")
("one" "two" "three")
("one" "two" "three")
>
-statik