| (def | |
| (ident fn) | |
| (decl | |
| (list | |
| (param | |
| (ident x) | |
| (option) | |
| (option) | |
| (False)) | |
| (param | |
| (ident y) | |
| (option) | |
| (option) | |
| (False)) | |
| (param | |
| (ident z) | |
| (option) | |
| (option) | |
| (False))) | |
| (option)) | |
| (list | |
| (assign | |
| (list (variable (ident q))) | |
| (option (None)) | |
| (option)) | |
| (assign | |
| (list (variable (ident q))) | |
| (option | |
| (- | |
| (+ | |
| (variable (ident x)) | |
| (variable (ident y))) | |
| (apply | |
| (. | |
| (variable (ident z)) | |
| (ident sigmoid)) | |
| (list) | |
| (list)))) | |
| (option)) | |
| (expression statement | |
| (apply | |
| (variable (ident print)) | |
| (list (variable (ident q))) | |
| (list))) | |
| (assign | |
| (list (variable (ident w))) | |
| (option | |
| (unary minus | |
| (variable (ident z)))) | |
| (option)) | |
| (if | |
| (and | |
| (and | |
| (not (variable (ident x))) | |
| (not (variable (ident y)))) | |
| (variable (ident z))) | |
| (list | |
| (assign | |
| (list (variable (ident m))) | |
| (option | |
| (if | |
| (not | |
| (variable (ident z))) | |
| (variable (ident x)) | |
| (variable (ident y)))) | |
| (option))) | |
| (list)) | |
| (while | |
| (and | |
| (< | |
| (variable (ident x)) | |
| (variable (ident y))) | |
| (> | |
| (variable (ident y)) | |
| (variable (ident z)))) | |
| (list | |
| (assign | |
| (list (variable (ident q))) | |
| (option (variable (ident x))) | |
| (option)))) | |
| (assert | |
| (eq (const 1) (const 1)) | |
| (option (string_literal hello))) | |
| (return (variable (ident x))))) |