(define (name, local-decalre) ..) would lost (args)

Started by ssqq, September 13, 2016, 08:41:00 AM

Previous topic - Next topic

ssqq


> (define (show-args) (println (args)))            
(lambda () (println (args)))                        
> (show-args 1 2 3)                                
(1 2 3)                                            
(1 2 3)                                            
> (define (show-args,@x) (println (args)))          
(lambda (, @x) (println (args)))                    
> (show-args 1 2 3)                                
(3)                                                
(3)                                                
> (define (show-args @x, @y) (println @x (args)))  
(lambda (@x , @y) (println @x (args)))              
> (show-args 1 2 3)                                
1()                                                
()                                                  
>

ssqq

I think newlisp treat `,` and follow args as extra args, so assign them with nil in default and init in *args stack*.