Je lis le R7RS (pour Scheme) et je suis choquée et déçue que 'if' soit une primitive du langage et pas une macro
Conversation
Notices
-
Embed this notice
Lizzie Crowdagger :neocat_floof_flag_trans: (crowdagger@corneill.es)'s status on Saturday, 18-Jan-2025 02:27:08 JST Lizzie Crowdagger :neocat_floof_flag_trans: - Haelwenn /элвэн/ :triskell: likes this.
-
Embed this notice
Lizzie Crowdagger :neocat_floof_flag_trans: (crowdagger@corneill.es)'s status on Saturday, 18-Jan-2025 04:53:10 JST Lizzie Crowdagger :neocat_floof_flag_trans: Si vous voulez une introduction à Scheme et que vous parlez anglais je vous recommande au passage cette vidéo (enregistrement d'un stream) de la merveilleuse @cwebber https://www.youtube.com/watch?v=DDROSL-gGOo
-
Embed this notice
Lizzie Crowdagger :neocat_floof_flag_trans: (crowdagger@corneill.es)'s status on Saturday, 18-Jan-2025 04:53:11 JST Lizzie Crowdagger :neocat_floof_flag_trans: Du coup j'ai eu un doute mais oui c'est possible (j'ai pas réussi à le faire avec defmacro parce que skill issues)
(define true (lambda (t f)
t))
(define false (lambda (t f)
f))
(define-syntax if
(syntax-rules ()
((_ pred t f)
((lambda (a b)
((pred a b)))
(lambda () t) (lambda () f)))))
(if true (display "True\n") (display "False"))
; N'affiche que "True", la branche else n'est pas évaluée
(if false (display "True\n") (display "False"))
; Idem pour "False"In conversation permalink Ludovic Courtès repeated this.