newLISP Fan Club

Forum => Whither newLISP? => Topic started by: Sunburned Surveyor on July 25, 2005, 11:10:03 AM

Title: NewLisp function with a variable number or arguments?
Post by: Sunburned Surveyor on July 25, 2005, 11:10:03 AM
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
Title:
Post by: Lutz on July 25, 2005, 05:05:50 PM
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
Title:
Post by: statik on August 01, 2005, 04:16:28 PM
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")
>