- プログラミングのお題スレ Part7 [転載禁止]©2ch.net
908 :デフォルトの名無しさん[sage]:2015/09/26(土) 15:15:42.63 ID:O4axx1wD - >>885 Emacs Lisp
((lambda (l) (when l (f (cdr l)) (mapcar (lambda (x) (princ x)) (reverse l)) (terpri))) (reverse '(1 2 3 4 5 6 7 8 9))) 1 12 123 1234 12345 123456 1234567 12345678 123456789 t
|
- プログラミングのお題スレ Part7 [転載禁止]©2ch.net
909 :デフォルトの名無しさん[sage]:2015/09/26(土) 15:26:42.53 ID:O4axx1wD - >>885 Emacs Lisp
>>908 は間違えました。 (require 'cl-lib) cl-lib (cl-labels ((f (l) (when l (f (cdr l)) (mapcar (lambda (x) (princ x)) (reverse l)) (terpri)))) (f (reverse '(1 2 3 4 5 6 7 8 9)))) 1 12 123 1234 12345 123456 1234567 12345678 123456789 t
|
- プログラミングのお題スレ Part7 [転載禁止]©2ch.net
911 :デフォルトの名無しさん[sage]:2015/09/26(土) 19:17:34.86 ID:O4axx1wD - >>885 Emacs Lisp
>>908 で誤って依存していた大域関数f (defun f (l) (when l (f (cdr l)) (mapcar (lambda (x) (princ x)) (reverse l)) (terpri))) をYコンビネータ導出の手順を使用して変形し、fへの依存をなくしました。 (require 'cl-lib) cl-lib (funcall (funcall #'(lambda (procedure) (lexical-let ((procedure procedure)) (lambda (l) (when l (funcall (funcall procedure procedure) (cdr l)) (mapcar (lambda (x) (princ x)) (reverse l)) (terpri))))) #'(lambda (procedure) (lexical-let ((procedure procedure)) (lambda (l) (when l (funcall (funcall procedure procedure) (cdr l)) (mapcar (lambda (x) (princ x)) (reverse l)) (terpri)))))) (reverse '(1 2 3 4 5 6 7 8 9))) 1 12 123 1234 12345 123456 1234567 12345678 123456789 t
|