tag:blogger.com,1999:blog-8288194986820249216.post310150975586448658..comments2024-03-22T05:09:17.789-07:00Comments on Abstract Heresies: Named Lambda and Named LetJoe Marshallhttp://www.blogger.com/profile/03233353484280456977noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8288194986820249216.post-60151215475127065822022-07-30T15:26:35.734-07:002022-07-30T15:26:35.734-07:00Anonymous pointed out that I posted the wrong vers...Anonymous pointed out that I posted the wrong version. I updated it.Joe Marshallhttps://www.blogger.com/profile/03233353484280456977noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-86310428135963379642022-07-30T11:20:02.602-07:002022-07-30T11:20:02.602-07:00At least in Common Lisp, your named-lambda definit...At least in Common Lisp, your named-lambda definition doesn't match usage. <br /><br />As defined, you'd have to say (named-lambda (fact x) ...), but you used (named-lambda fact (x) ...).<br /><br />The CL defmacro should go (defmacro named-lambda (name (&rest arglist) &body body) ...)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-46488160085936281702022-07-28T12:36:08.067-07:002022-07-28T12:36:08.067-07:00In s7, define returns its value so (map (define (f...In s7, define returns its value so (map (define (fact n) (if (< n 2) 1 (* n (fact (- n 1))))) '(3 5)) -> '(6 120)<br />You could wrap the define in a let as rec does to keep the name out of the calling environment.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-59573740147946124012022-07-26T12:27:48.953-07:002022-07-26T12:27:48.953-07:00SRFI 31 provides the rec macro as follows:
(defin...SRFI 31 provides the <b>rec</b> macro as follows:<br /><br />(define-syntax rec<br /> (syntax-rules ()<br /> ((rec (NAME . VARIABLES) . BODY)<br /> (letrec ( (NAME (lambda VARIABLES . BODY)) ) NAME))<br /> ((rec NAME EXPRESSION)<br /> (letrec ( (NAME EXPRESSION) ) NAME))))John Cowanhttps://www.blogger.com/profile/03866951247699187535noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-34766033584314084952022-07-24T13:41:41.939-07:002022-07-24T13:41:41.939-07:00Isn't named-lambda very similar to Paul Graham...Isn't named-lambda very similar to Paul Graham's alambda?Philip Kaludercicnoreply@blogger.com