Sto imparando Guile Scheme in questo momento, e nella documentazione ho improvvisamente corse in seguito costruzione:Quando utilizzare la definizione lambda con un parametro formale "nudo"?
((lambda args (display args)) 42)
=> (42)
Questo mi ha buttato per un ciclo; fino a questo punto avevo parametri formali assunti erano sempre racchiuso in un elenco:
((lambda (args) (display args)) 42)
=> 42
Mi chiedo quando usare questa variante, e come questo si differenzia dalla notazione del punto per un numero variabile di argomenti. In particolare, qual è la differenza tra le due seguenti varianti:
((lambda args (display args)) 1 2 3) => (1 2 3)
((lambda (. args) (display args)) 1 2 3) => (1 2 3)
C'è una differenza - forse per esempi più complessi - che ho bisogno di essere a conoscenza e v'è alcuna ragione per preferire uno sopra l'altro?
Come bonus, la definizione di 'list' è '(define list (lambda xx))'. – erjiang