This nonsense seems to be valid syntax:

#;1> (and-let* ((foobar 1 2 3)) foobar)
1

2 and 3 are not even evaluated as the following example demonstrates:

#;2> (and-let* ((foobar 1 (sleep 100))) foobar)
1


I think it's dangerous to leave it as it is. For example:

#;3> (and-let* (((or #f #t))) 1)    ;; correct
1
#;4> (and-let* ((or #f #t)) 1)      ;; WRONG!   -> a stricter syntax
would catch this error
#f

Ciao,
Michele

_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to