Is there a valid usecase for redefining “define” in scheme/racket?
I'm playing around with racket/scheme and it allows me to redefine for instance define and bind it as a value. > (define define 2) > define 2 In that scope I can no longer define anything using define since it is obviously bound to 2. This works for all "keywords" I tried it with ( if , cond etc.). However it is not possible to use define to specify my own definition function: > (define mydef define) stdin::14: define: not allowed in an expression context in: define === context === /usr/share/racket/collects/racket/private/norm-define.rkt:8:4: normalize-definition /usr/share/racket/collects