Lisp �̒���  Android �̒���  �����̒���  �S���̒���  �r�[���R���N�V����

�����:�C�y�Ɏ����Ă݂悤�I������ Lisp ���� - Lisp �̒���

Software Design 2015�N8���� �Ɏ��M�����u�C�y�Ɏ����Ă݂悤�I������ Lisp ����v��
���S�Ҍ����̋L���ł��������Ƃ�y�[�W���̊֌W�ŁA�����؂�Ȃ��������Ƃ������Ɂi�ڂ��ڂ��j�����Ă݂܂��B

�u�\�t�g�E�F�A�f�U�C�� 2015�N8���� ��1���W �Ȃ��֐��^�v���O���~���O�͓���̂��H
Lisp�CScala�CHaskell�CElixir�CPython�CClojure�C�֐��^�̃G�b�Z���X���w�K����v���

�i�Q�l�jWeb����� �͂��߂Ă�Lisp�֐��^�v���O���~���O �\�����_�v�Z���烊�t�@�N�^�����O�܂ň�C�ɂ킩��

̃Gg[͂ĂȃubN}[Nɒlj
Contents
1. �֐��^�v���O���~���O�ł����ƌ���������������
   (1) �Ɍv�Z
(2) �]���헪 - �x���]��
(3) ���s�E���񏈗� - �X���b�h�Z�[�t�A���G���g�����g
(4) ����p�̓o�O�̉��� - �O���[�o���ϐ��Ƒ�����i����j
(5) �Q�Ɠ��ߐ������Š֐��^�v���O���~���O�͌`����@�i���w�I��@�j�ƃ}�b�`����
(6) �֐��^�v���O���~���O�̗��_�ƌ��_�̋�̗�
(7) �`���[�`�E���b�T�[��
(8) �����ċA tail recursion
(9) map �� reduce
(10) �萔���̎��O�v�Z --- �œK��
(11) Functional Reactive Programming (FRP)
2. Lisp �̓����ł����ƌ���������������
(1) ���́E�_��ȃ}�N��
(2) ���I�֐���`
(3) S����M��
(4) �֐��•�(�N���[�W���j�ƌp���i�R���e�B�j���G�[�V�����j
(5) ���l multiple value
(6) Lisp �̃x���`�}�[�N�v���O���� tarai
(7) �I�u�W�F�N�g�w���@�\
(8) �K�p�”\���\�b�h�̗D�揇�ʂɂ��p�^�[���}�b�`
(9) Lisp �̓}���`�p���_�C������
(10) Lisp �͐��E�ő�̌���Ő��E�ŏ��̌���
(11) �^�C�v�ƃN���X�̉������֌W�A����ɍ\���̂Ƃ̎O�p�֌W
(12) Lisp-1 v.s. Lisp-2
(13) Lisp �v���O�����̃p�t�H�[�}���X�`���[�j���O
(14) GC(Garbage Collection)
(15) �f�[�^���v���O����������S���ŕ\���i����j
(16) ���������� bignum �̃T�|�[�g
(17) �ĕϐ� generalized variable
(18) ���^�T�[�L�����[�C���^�v���^ metacircular evaluator
(19) �N���[�W���͋�J����񂶂�
(20) �C���^�[�� - �V���{���e�[�u���Ɏ���ꂵ��
(21) ���L�V�J���X�R�[�v - ���j����X�R�[�v
(22) �[�������Ɛ󂢑����A���Ȃ��̍D�݂́H
(23) �X�y�V�����ϐ��܂��̖��𓮓I�ϐ��A���̍ߐ[���҂�
(24) Lisp �̝|���̈� - �l�[�~���O�K��
(25) Lisp �̝|���̓� - �v���e�B�v�����g�`�C���f���g�̐[����
(26) �ϐ��A���̖����ƏI��
(27) Lisp �̌��� ��̍� - ���I�����R���p�C��
3. Lisp �W���[�N - Lisp �Ɋւ���W���[�N���낢��
(1) �R�[�q�[�ł����ł����H - �n�b�J�[�Y�f�B�N�V���i�����
(2) Lisp �ň�ԑ������ꂽ�v���O����
(3) �^�╶�� P
(4) ���u�L�@�̃��X�v
(5) ��������
(6) �A���S���Y���{�f�[�^�\�����v���O����
(7) Lisp �Ŋ當��������Ă݂�
4. Lisp �̗��j
(1) �t���� - EV-Lisp v.s. EVQ-Lisp
(2) �퍑���� - InterLisp v.s. MacLisp
(3) Common Lisp �̓��� - ���{�� Common Lisp �ψ���ł�
5. Lisp ���� - Lisp �ŏ����ꂽ���낢��
(1) �A�v���P�[�V�����̃X�N���v�g����
(2) �A�v���P�[�V�������̂���
(3) �g���݌n�\�t�g�E�F�A
(4) �����V�X�e���A����
6. �T���v���v���O����
(0) ISLisp �����n�̃_�E�����[�h
(1) Common Lisp �ł��lj�
(2) ���K�֐��̗� - �S��������lj�
(3) �����ċA�̗� - �����ċA�̊K��v�Z�ƃt�B�{�i�b�`���v�Z��lj�
(4) �t�B�{�i�b�`���v�Z���C�� ((fib 0)�̒l�� 0 �ɏC��)
(5) �}�N����`�̃T���v���v���O���� - ISLisp �� Common Lisp �݊��p�b�P�[�W
(6) �T���v���v���O�����t�@�C���̃��[�h���@
(7) �T���v���v���O�����̎��s��
7. �₳���� Lisp �����n�̍���
(1) �₳���� Lisp �̍��� by Java and by C#
8. Lisp �������N�C�Y�i�܂��� Lisp �\�͌���j
(1) mapcon �͐^���X�g�����D���H
(2) ���k nconc �̉��O
(3) Lisp Skill Exams (JavaScript:Trial version)
9. FAQ
(1) ���ׂẴv���O�����͕���p�̂Ȃ��v���O�����Ŏ����ł��܂����H
(2)�u���I�^�t���̎������ʓ|�v�Ƃ́A�ǂ������_���������ʓ|�ƌ����Ă�̂ł��傤��?
(3) ������������Ȃ��v���O���~���O�Ȃ�Ă���̂ł��傤���H
(4) �֐��^�v���O���~���O�͌��ǁA����������ł��傤���H
(5) �Ȃ��֐��^�v���O���~���O�͓���̂��H
(6) �֐��^�v���O���~���O�͑�K�͂ȃ\�t�g�J���ł͎g���Ȃ��̂ł́H
�t�^
A1. Lisp �Ƃ��̒��Ԃ��� �`���̏��ʂ�߂��Ă����� Lisp ����
LISP50 (on OKI System50)
Utilisp
ELISP (for EMACS on PDP-10)
GNU Emacs Lisp
Symbolics
Scheme
TAO
Common Lisp the Language
(�\��)Lucid Common Lisp (SUN Common Lisp)
(�\��)Kyoto Common Lisp
(�\��)OKI Common Lisp (Tachyon Common Lisp)
(�\��)Golden Common Lisp
(�\��)Interleaf Lisp
(�\��)OKI ISLisp
MIDP Lisp (���܂�)
A2. �֐��^�v���O���~���O�̃l�^��
���m�x���֐��^�v���O���~���O
�֐��^�v���O���~���O����
A3. Lisp �p���f�B
���������炵�I
�J�b�R�̓R���s���[�^�ɂr�����Y��

1. �֐��^�v���O���~���O�ł����ƌ���������������

(1) �Ɍv�Z

�Ɍv�Z�͊֐��^�v���O���~���O�ł͊�{���́u�L�v�ł����A�{���͏��S�Ҍ����Ƃ������ƂŃJ�b�g���Ă��܂����A�����ł͏����������܂��B
�Ɍv�Z�i��-calculus�j�̓��ϊ��ƃ�-�Ȗ�A��-�ϊ��̋K��������܂��B
��-�ϊ��͑����ϐ��̖��O��ς���ϊ��ŁA��-�ϊ��i�Ȗ�j�͊֐��K�p�ł��B
��-�ϊ��͂��ׂĂ̈����œ����l��Ԃ��֐��͓����ł���i�֐��̊O�����j�Ƃ�����̂ł��B
��-�ϊ��̗�̓�x.fx �� ��y.fy �ł���A��-�ϊ��̗��(��x.fx)3 �� f3�ł���A��-�ϊ��̗�� ��x.fx �� f�i�A��x��f�Ŏ��R�łȂ��Ƃ��j�ł��B
Lisp ���ɏ����̂ł���΁A(lambda (x) (f x))��(lambda (y) (f y))�A((lambda (x) (f x)) 3)���if 3)�A(lambda (x) (f x))��f�ł��B
�Ɍv�Z�͂���3�‚̋K�������Ōv�Z���܂��B

���ɃJ���[���Ƃ́A�����̈��������֐����A1�����̊֐��ɕϊ����邱�Ƃł��B
�ŏ��̈��������֐��ɂ��āA���̊֐��͎c��̈��������֐���Ԃ��܂��B
�Ɏ��ł̓�x.��y.fxy�ƃJ���[���i1�������j���ĕ\�����܂��B�܂���x.��y.fxy����xy.fxy�Ɨ��L���邱�Ƃ�����܂��B
Lisp ���ɕ\�������(lambda (x y) (f x y)) �� (lambda (x) (lambda (y) ((f x) y)))�ɕϊ����邱�Ƃł��B

�܂��Ɍv�Z�ł͐��l���ȉ��̗�̂悤�ɃɎ��ŕ\���ł��܂��B������`���[�`���ƌ����܂��B
��. 0=��x.��y.y, 1=��x.��y.xy, 2=��x.��y.x(xy), ..., n=��x.��y.x(x(...(xy)))...)�B
���̂Ƃ��A1�‘����Z������SUC�֐��� ��x.��y.��z.y(xyz)�ƂȂ�܂��BSUC(0)��1�ɂȂ�ASUC(1)��2�ɂȂ邱�Ƃ��m���߂Ă݂Ă��������B
---���܂�---
�ESUC(0)=1, SUC(1)=2�ƂȂ邱�Ƃ̊m�F
SUC(0) = (��x.��y.��z.y(xyz))��x'.��y'.y' = ��y.��z.y((��x'.��y'.y')yz) = ��y.��z.y((��y'.y')z) = ��y.��z.y(z) = ��x.��y.xy = 1
SUC(1) = (��x.��y.��z.y(xyz))��x'.��y'.x'y' = ��y.��z.y((��x'.��y'.x'y')yz) = ��y.��z.y((��y'.yy')z) = ��y.��z.y(yz) = ��x.��y.x(xy) = 2
�E����� Lisp ���ɂ��Ċm�F
0 = (lambda (x) (lambda (y) y))�ASUC = (lambda (x) (lambda (y) (lambda (z) (y ((x y) z)))))�ƂȂ�A
SUC(0) = ((lambda (x) (lambda (y) (lambda (z) (y ((x y) z))))) (lambda (x') (lambda (y') y'))) =
((lambda (y) (lambda (z) (y (((lambda (x') (lambda (y') y')) y) z))) = ((lambda (y) (lambda (z) (y ((lambda (y') y') z))) =
(lambda (y) (lambda (z) (y z))) = (lambda (x) (lambda (y) (x y))) = 1�ƂȂ�܂��B�E�E�E���ʂ̐����Ԉ���Ă��Ȃ���΂����̂ł����B
---���܂��I���---

���̂悤�ɃɌv�Z�ł͒l�����������Ɏ��ŕ\���ł��܂��B
�܂��A�Ɍv�Z�̓`���[�����O���S�ł���A�`���[�`�E���b�T�[�����ۏ؂����Ȃǂ̏d�v�Ȑ���������܂��B

�g�b�v�ɖ߂�

(2) �]���헪 - �x���]��

�����̕]�������‚��邩�Ƃ������ł��B
�]����x�������邱�ƂŁA���̕]���𖳑ʂɂ���@����炷���Ƃ��ł��܂��B
�ʏ�̕]���헪�ł́u�����D�� innermost�v�u�����D�� leftmost�v�헪�Ŏ�������Ă��܂����A ���̕]���헪�ł́A(defun foo (x y z) (if (eq x y) z)) �̂Ƃ��Ax �� y ���������Ȃ��Ƃ��� z �� �]�����Ă��܂��܂��B
���̌��ʁA�Ⴆ�΁A(foo 1 2 (tarai 15 10 5))�ł�(tarai 15 10 5)�̕]�������ʂɂȂ�܂��B

������������邽�߂ɁA�F�X�ȕ]���헪���l�����Ă��܂��B
��ԁA�ȒP�Ȃ��̂�(a)�u�O���]�� outermost�v�ŕ]������헪��A (b) �v���O���}���x���]�������������I��������헪�A (c) �܂��v���O��������͂��āA�K�{���i�K���]�����K�v�Ȉ����j�ł��� x �� y �݂̂�]������u�K�{�]�� call by need�v�헪�Ȃǂ�����܂��B
����͊֐��^�v���O���~���O�̖{���ł͂���܂��񂪁A�����I�Ɏ��s���邽�߂̃e�N�j�b�N�̈�‚ŁA�֐S�̍����b��ɂȂ��Ă��܂��B

�g�b�v�ɖ߂�

(3) ���s�E���񏈗� - �X���b�h�Z�[�t�A���G���g�����g

�֐��^�v���O���~���O�͊�{�I�ɂ͕��s(Concurrent)����ƕ���(Parallel)���삪�”\�ŁA �܂��X���b�h�Z�[�t(thread safe)�ł���A���G���g�����g(reentrant)�ł��B
����̓O���[�o���ϐ����������A��Ԃ��������A�đ���Ȃǂɂ�镛��p�𐶂������Ȃ�����ł��B
�����������Ȋ֐��^�v���O���~���O�ȊO�ł́A�u�����v�̕���p�͎g���ł��傤����A �葱���^�v���O���~���O�܂ł͂Ȃ��ɂ���A���s�������”\�ɂ��邽�߂ɂ́A�����͐��䂪�K�v�ɂȂ�ł��傤�B
����͋t�ɍl����΁A���s�ɓ��삳�������ӏ��͏����Ȋ֐��^�v���O���~���O�����邱�ƂŁA �ςȐ����s�v�ɂ��邱�Ƃ��ł��܂��B

�g�b�v�ɖ߂�

(4) ����p�̓o�O�̉��� - �O���[�o���ϐ��Ƒ�����i����j

�{���ł�����p�̓o�O�̉����ł���A���̃o�O�����‚���͍̂����̒��̍��������‚��邭�炢����Ȃ��Ƃł���ƌ����܂����B
�������A�܂����������Ȃ��悤�Ɋ����Ă��܂��B
�����Ƃ����ƕ���p�̋��|���x��A�����A���ׂ������������m��܂���B

�g�b�v�ɖ߂�

(5) �Q�Ɠ��ߐ������Š֐��^�v���O���~���O�͌`����@�i���w�I��@�j�ƃ}�b�`����

�{���Ő��������悤�ɎQ�Ɠ��ߐ������Š֐��^�v���O���~���O�ł́A����p���l�����Ȃ��Ă����̂ŁA �����Ȃ��̂�P���ɒu�������邱�Ƃ��ł��܂��B
����ɂ��A�v���O�������`���I�Ɂi���w�I�Ɂj��舵���̂��e�ՂɂȂ�܂��B
�֐��^�v���O���~���O�͌`����@�Ƃ��܂��}�b�`���܂��B

�g�b�v�ɖ߂�

(6) �֐��^�v���O���~���O�̗��_�ƌ��_�̋�̗�

�{���́A�֐��^�v���O���~���O���̂��̂̋L���łȂ��ALisp ����̋L���ł����̂ŁA �֐��^�v���O���~���O�̗��_�ƌ��_���ӏ������ɂ��āA���_�ƕt���������@���ꌾ�ōς܂��Ă��܂��B
��͂�A�����͂����Ƌ�̗�����āA�֐��^�v���O���~���O�̗��_�ƌ��_�����������āA���]�A�����A���E�����������̂ł����B
����́u�֐��^�v���O���~���O�͖{���̂Ƃ���A�ǂ���Hkwsk�v�ł��傤���B

�g�b�v�ɖ߂�

(7) �`���[�`�E���b�T�[��

�`���[�`�E���b�T�[���iChurch-Rosser Property: CR���j�Ƃ́A�����������n�iTerm Rewiting System:TRS�j�ɂ����āA �� t1 �� t2 ���L����ŏ�����������Ƃ��At1 �� t2 ���������鍀 t3 ������Ƃ��������ł��B
�‚܂�ACR��������ƁA�����_�v�Z�̃��Ȗ�i�����������j���������������Ɋ֌W�Ȃ��K�p�ł���̂ŁA ���񏈗���œK���ɂ����āA�d�v�Ȑ����ɂȂ��Ă��܂��B
�ǂ̂悤�ȏ��������K���̂Ƃ��ɁA����CR�����ۏ؂ł���̂��́A�F�X�ƌ������Ȃ���Ă��܂��B�ȉ��ɂ��̗�������܂��B
Gomi,H., Oyamaguchi,M. and Ohta,Y.: On the Church-Rosser Property of Root-E-overlapping and Strongly Depth-Preserving Term Rewriting Systems, Trans.IPS.Japan, vol.39, No.4, pp.992-1005(1998).
Gomi,H., Oyamaguchi,M. and Ohta,Y.: On the Church-Rosser Property of Non-E-overlapping and Strongly Depth-preserving Term Rewriting Systems, Trans.IPS.Japan, vol.37, No.12,pp.2147-2160(1996).


�܂� CR���ƂƂ��ɁA�d�v�Ȑ����Ɂu��~���v������܂��BTRS ����~���邽�߂̏����A�‚܂胉���_�v�Z�̃��Ȗ񂪒�~���邽�߂� �����Ɋւ��錤���������Ȃ���Ă��܂��B

�����̍��ڂɊւ��āA�₳�������I�`���d����ł��܂���B����A����������悤�ɂ��܂��̂ŁA���҂����������B

�g�b�v�ɖ߂�

(8) �����ċA tail recursion

�����ċA�Ƃ́Aif ���̍ċA���i�ċA�Ăяo���������Ă��鍀�j�̃g�b�v���x���i�ō��j�̊֐����������g�ƂȂ��Ă�����̂ł��B
�‚܂�A(defun foo (n) (if (= n 0) ... (foo ...))�̌`�ɂȂ��Ă���ċA�ł��B

�����ċA�ɂȂ��Ă���ƁA�ċA�ŏ����X�^�b�N�T�C�Y���������A�܂��Ō�̍ċA�Ăяo�����P���� go to ���ɍœK�����邱�Ƃ��”\�ł��B
Scheme �ł͌���d�l�Ŗ����ċA�̍œK��������d�l�ɂȂ��Ă��܂��B �E�E�E�����ċA���͂͌���C���v�������^�̘r�̌������Ȃ̂ɋ`���ɂȂ��Ă���Ƃ��낪���B

�Ⴆ�΁A�K�� fact �̒�`�� (defun fact (n) (if (<= n 1) 1 (* n (fact (- n 1)))))�̂Ƃ��A�����ċA��
(defun fact-tail (n) (fact-tail2 n 1))
(defun fact-tail2 (n f) (if (<= n 1) f (fact-tail2 (- n 1) (* n f))))
�ƂȂ�܂��B

�܂��t�B�{�i�b�`���v�Z fib �̒�`�� (defun fib (n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2))))) �̂Ƃ��A�����ċA��
(defun fib-tail (n) (fib-tail2 n 0 1))
(defun fib-tail2 (n f0 f1) (if (< n 1) f0 (fib-tail2 (- n 1) f1 (+ f0 f1))))
�ƂȂ�܂��B

�����ċA�� go to ���ɕϊ����Ȃ��Ă��A�ċA�̃X�^�b�N�͌������܂��̂ŁA���ꂾ���Ō��ʂ�����܂��B
�Ⴆ�΁A�K�� fact �͌��̂܂܂ł���΁A(fact 153)�܂ł����v�Z�ł��Ȃ������̂��A�����ċA�ɂ���� 198�܂Ōv�Z�ł��܂��B

ISLisp>(fact-tail 198)
19815524305648002601818171204326257846611456725808373449616646563928629396065410
62613829859326594532422555809394270449322255383895082002776537504082796055103300
15793284111386240552007272342323020465242271420611379865359604881481118913950814
67526982493475408477527124840709196781511817187496273890924527108598562553359394
406400000000000000000000000000000000000000000000000

�g�b�v�ɖ߂�

(9) map �� reduce

mapcar �ɂ‚��Ă͖{���ŏЉ�܂������A����Ƒ΂ɂȂ��Ă��� reduce �ɂ‚��Ă� �y�[�W���̊֌W�ŏЉ�Ă��܂���ł����B������ map �� reduce �͍��K�֐��֗̕��ȗ�Ƃ��āA �����ĉ������֗��ȋ@�\�ł��B
���� Common Lisp �̊֐� map �� reduce �̗�������܂��B
(map 'list #'+ '(1 2 3) '(10 20 30)) �� (mapcar #'+ '(1 2 3) '(10 20 30)) �� (list (+ 1 10) (+ 2 20) (+ 3 30)) �� (11 22 33)
(reduce #'+ '(1 2 3 4 5)) �� (+ (+ (+ (+ 1 2) 3) 4) 5) �� 15
�܂��Areduce �̃G���[�`�F�b�N�����ł̎����͈ȉ��̂悤�ɂȂ�܂��B

(defun reduce (fun list)
   (if (= (length list) 2)
       (funcall fun (car list) (car (cdr list)))
       (reduce fun (cons (reduce fun (list (car list) (car (cdr list)))) (cdr (cdr list)))) ))

�g�b�v�ɖ߂�

(10) �萔���̎��O�v�Z --- �œK��

�v���O�������ɁA1 + 2 �������΁A�ǂ�ȃR���p�C���ł� �R���p�C�����Ɏ��O�� �v�Z���āA3 �̒l�𐶐�����R�[�h�ɓ����ł��傤�B

����Ɠ��l�ɁA�Ⴆ�΁Af(1, g(2)) �̂悤�Ȃ��ׂĂ̈������萔���萔������Ȃ鍀�u�萔���v�����O�v�Z�������Ȃ�ł��傤�B
�Ⴆ�΁Af(1, 2) �� f(g(x), g(2))�Afoo(1).bar(x) �ƂȂ��Ă���΁A���ꂼ�� f(1, 2) �� g(2)�Afoo(1) �̒萔�������O �v�Z�������Ȃ�ł��傤�B

�������A����p�����邩���m��Ȃ�����ł́A���̎��O�v�Z���s���ƁA���ʂ��قȂ��� ���܂��댯��������܂��B���̂��ߎ��O�v�Z�͐T�d�ɂȂ炴��𓾂܂���B
�Ⴆ�΁Af(g(x), g(2))�� g(2)���R���p�C�����Ɍv�Z����ƁA��Ŏ��s���� g(x)���v�Z���� ���ʂ̕���p���y�΂��A�Ⴄ�l�ɂȂ邩���m��܂���B

�œK���Ȃǂ̂��߂Ɉ����̕]��������ۏ؂��Ȃ�����ł́A�������A�萔���̎��O�v�Z�� �ł��܂��B���ʂ�����Ă��v���O���}�̐ӔC�ɂȂ�܂��B�E�E�E�������ł��B
�������瓾���鋳�P�́A(1) ����p���g��Ȃ��悤�ɂ��邩�A(2) �R���p�C��������悤�� �萔���̓v���O���}���������g�Ŏ��O�v�Z���Ă������ɂȂ�܂��B
�萔���Ȃ�āA�g��Ȃ���Ƃ��������A���\�g���Ă��܂��̂ŁA�����ӂ��������B

�g�b�v�ɖ߂�

(11) �֐��^���A�N�e�B�u�v���O���~���O Functional Reactive Programming (FRP)

FRP �͊֐��^�v���O���~���O�ƒ�������T�O�ł����A�֐��^����ŗ��s���Ă��܂��̂ŁA�����ŏЉ�܂��B
���A�N�e�B�u�v���O���~���O�Ƃ́A�l�̊֌W���ÖٓI�ȍČv�Z�ɂ���ď�ɓ����ɕۂ‚��̂ł��B
�Ⴆ�΁Aa == b + 1�Ƃ����֌W���`����΁Aa �� 3 �� 4 �ɂȂ����Ƃ��� b �� 4 �� 5 �ɈÖٓI�ȍČv�Z�ɂ���āu�����I�Ɂv�Ȃ���̂ł��B
��L�͊֌W�Ƃ��̎����𓯎��Ɍ����Ă��܂����A�����𖳎�����΁Aa �̒l�ɂ���� b �̒l�͂��‚� a + 1 �ɂȂ��Ă��܂��B
���ۂ̎����ł͍Čv�Z�͌����悭���{���܂��B

�g�b�v�ɖ߂�

2. Lisp �̓����ł����ƌ���������������

(1) ���́E�_��ȃ}�N��

C �Ȃǂ̃z�X�g����ƑS�����֌W�ȒP�Ȃ鏑�������}�N���łȂ��A Lisp ���ꂻ�̂��̂Ń}�N���W�J�𓮓I�ɂł��鋭�͂ŏ_��ȃ}�N���@�\�������Ă��܂��B
���̂��߁ALisp ���ꎩ�g�̊g�����e�Ղɂł��܂��B

����͕ʂ̖��������ł��܂��B
Lisp �ɂ͐F�X�ȕ����A���h������܂����A���̋��͂ȃ}�N���@�\�ɂ��A�݊��p�b�P�[�W���C�y�ɍ��܂��B
�Ⴆ�΁AISLisp �� Common Lisp �p�b�P�[�W�����̂��”\�ł��B
Common Lisp �� dolist �̃}�N����`�́AISLisp �ł͈ȉ��̂悤�ɂȂ�܂��B
���̑��� Common Lisp �݊��p�b�P�[�W���}�N����`�̃T���v���Ƃ��āA��ŃT���v���v���O�����Ƃ��āA�Љ�Ă��܂��B

(defmacro dolist (lists &rest forms) 
   `(let ((list ,(second lists))
          (,(car lists) nil) )
       (while list 
              (setq ,(car lists) (car list))
              ,@forms 
              (setq list (cdr list)) )))

�g�b�v�ɖ߂�

(2) ���I�֐���`

Lisp �͎��s���Ɋ֐��𓮓I�ɒ�`�ł��܂��B �I�u�W�F�N�g�w���@�\������ Lisp �ł̓N���X�����I�ɍĒ�`�”\�ł��B

�g�b�v�ɖ߂�

(3) S����M��

S��(Symbolic Expression)������ Lisp �̍\���ł���AEV-Lisp �̍\��(f x y)�̂悤�ɏ����܂��B
M��(Meta Expression)�̓}�b�J�[�V�[�������ALisp �̍\���Ƃ��čl���Ă������̂ŁAEVQ-Lisp �̍\���I�� f[x;y]�̂悤�ɋL�q���܂��B
S���͓����\���ł���A�Ӗ��_���L�q������̂Ƃ��čl���Ă��܂����B
���݂́A�\���������\�����Ӗ��_�� S���ŕ\�����܂��B

�g�b�v�ɖ߂�

(4) �֐��•�(�N���[�W���j�ƌp���i�R���e�B�j���G�[�V�����j

Common Lisp �Ȃǂœ������ꂽ�֐��•�� Scheme �ɐ̂��炠��p���͏d�v�ȊT�O�ł��B
���҂̊֌W���܂߂Ċw�ԕK�v������܂��B

�g�b�v�ɖ߂�

(5) ���l multiple value

�����̃v���O���~���O����ł͊֐��̕Ԃ��l��1�‚ł��B
2�ˆȏ�̒l��Ԃ��Ƃ��́A�u�ւ������v�Ȏ����ŁA����p�����҂���������n���Ƃ��A �q�[�v�̈���g�p���ă������𖳑ʌ������ĕԂ��Ƃ��̎����ɂȂ�܂��B
Common Lisp �ł͕����̒l��Ԃ��@�\������܂��B�������A�q�[�v�̈���g���܂���B ���S���đ��l��Ԃ��Ă��������B

�g�b�v�ɖ߂�

(6) Lisp �̃x���`�}�[�N�v���O���� tarai

Lisp �̃x���`�}�[�N�v���O�����Ƃ��ėL���Ȃ̂� tarai�֐�������܂��B
�|����Y��1976�N�ɍ쐬�������̂ŁA (defun tarai (x y z) (if (<=x y) y (tarai (tarai(1- x) y z) (tarai (1- y) z x) (tarai (1- z) x y)))) �ł��B�ċA�֐��Ő��������s����܂��B

�g�b�v�ɖ߂�

(7) �I�u�W�F�N�g�w���@�\

Lisp �̓I�u�W�F�N�g�w���@�\�̎����̎�����Ƃ��Ă��g���Ă��܂����B
Common Lisp �� CLOS �͑��̊֐��Ŏ�������܂������AFlavors �̃I�u�W�F�N�g�w���@�\���G�|�b�N�ł��������Ƃ��Љ���������Ǝv���Ă��܂��B

�g�b�v�ɖ߂�

(8) �K�p�”\���\�b�h�̗D�揇�ʂɂ��p�^�[���}�b�`

CLOS �� ILOS �̎��“K�p�”\���\�b�h�̗D�揇�ʂɂ���āAif ���Ȃ��v���O���~���O�i�p�^�[���}�b�`�j���g�߂܂��B
�Ⴆ�΁A������ 0 ���������ƒV���O���g���N���X���`����΁A�����̃N���X�Ɣ�r���āA������I�Ȃ̂ŁA�V���O���g���N���X���D�悳��܂��B
����ɂ���āA�Ⴆ�΁A�K���(singleton 0)�̃N���X�̃��\�b�h�i���̊֐��j��(integer)�̃N���X�̃��\�b�h���`����΁Aif�����s�v�ɂȂ�܂��B
�����ƌ����΁A�P���ȃp�^�[���}�b�`���������ƕ��G�ȃ}�b�`���O�A���S���Y�����g�߂܂��B

�g�b�v�ɖ߂�

(9) Lisp �̓}���`�p���_�C������

Lisp �͏����Ȋ֐��^�v���O���~���O����łȂ��Ƃ����]��������܂����A �t�ɍl����΁A�֐��^�v���O���~���O����̃p���_�C���Ǝ葱���^�i���ߌ^�j�v���O���~���O����̃p���_�C���� ���킹�������}���`�p���_�C�����ꂾ�Ƃ������蕶��������ƐϋɓI�ɏ����ׂ������������m��܂���B
�v�͖��ɉ������A�œK�ȃv���O���~���O�p���_�C���Ńv���O���~���O�ł���悤�ɁA�v���O���~���O����͂��̎d�|����񋟂���̂������Ǝv���܂��B
����A�p���_�C�����K�����邱�ƂŁA�쐬�����v���O�����𓝈�Ǘ�������@������܂����E�E�E�D�݂ł͂���܂���B

�g�b�v�ɖ߂�

(10) Lisp �͐��E�ő�̌���Ő��E�ŏ��̌���

Common Lisp �̌���d�l��1000�y�[�W���z������̂ɂȂ��Ă��܂����A����AScheme �̌���d�l�͐�10�y�[�W��������܂���B
�܂��� Lisp �͐��E�ő�̌���ł���A���E�ŏ��̌���ł�����܂��B

CLtL2��1000�y�[�W�ȏ゠��܂��̂ŁA�����ł��܂��B

�g�b�v�ɖ߂�

(11) �^�C�v�ƃN���X�̉������֌W�A����ɍ\���̂Ƃ̎O�p�֌W

Common Lisp �ɂ�����^�C�v�ƃN���X�A�\���̂̊֌W�͂�͂�I�[�o�[�X�y�b�N�̂悤�ȋC�����܂��B
�����Ƃ��܂��O�p�֌W�𒲐��ł��邱�Ƃ��ł����낤�ɁE�E�E�W���[�N�l�^�ɂ��H

�g�b�v�ɖ߂�

(12) Lisp-1 v.s. Lisp-2

�V���{�������’l��֐��A�v���p�e�B��1�‚݂̂ŊǗ����� Lisp-1 ���A2�ˆȏ�ŊǗ����� Lisp-2 ���̘b�ł��B
�ŋ߂� Lisp �� Lisp-2 �ŁA�l�Ɗ֐��Ȃǂ�ʂɎ��‚��Ƃ��ł��܂��B
����ALisp-1 �ł� (defvar automobile '��)�͂ł��Ă��A(defvar car '��)�͂ł��܂���B��ʐl����͕s�v�c�����܂��B
�������ALisp-1 �̕��̓������t�b�g�v�����g�͏������̂ł����A���ł͍��ׂȂ��ƂɂȂ�܂����B

�g�b�v�ɖ߂�

(13) Lisp �v���O�����̃p�t�H�[�}���X�`���[�j���O

�Ⴆ�΁Aappend �͕���p�𐶂������Ȃ����߂ɑ�1�����̃��X�g���R�s�[���܂��B ��������p�����Ȃ��Ƃ��͕���p�ł� append �ł��� nconc ���g�����ƂŁA�R�s�[�̖��ʂ��Ȃ��܂��B
���̂悤�� Lisp �v���O���~���O�ł̓p�t�H�[�}���X�`���[�j���O�̂��߂ɁA����p�ł̊֐����g�����Ƃ�����܂��B

�g�b�v�ɖ߂�

(14) GC(Garbage Collection)

Lisp �ƌ����� GC�BGC �ƌ����� Lisp�B�Ƃ������炢�ALisp �� GC �͈�̉�����Ęb��ɂȂ��Ă��܂��B
�����AGC �̎�����Ƃ��Ă̖������ʂ����Ă��܂����BGuy L.Steel �� SUN(Oracle)�� Java �� GC �̊J���Ɍg������̂����̗���ł��傤�B

�g�b�v�ɖ߂�

(15) �f�[�^���v���O����������S���ŕ\���i����j

�{���ł��G��܂������A�����f�[�^�\���ł��� S ���Ńf�[�^���v���O�������\�����邽�߂ɁA ���I�ȃv���O���~���O�A���Ƀ��t���N�V�����i�v���O�����̓��I�ύX�j�����̌���AJava �� Ruby, Python �Ȃǂ� ���t���N�V�����@�\�̂悤�Ȗʓ|�Ȏ������o����K�v�͂���܂���B���R�ȗ���Ŏ��s�ł��܂��B

�g�b�v�ɖ߂�

(16) ���������� bignum �̃T�|�[�g

��ʓI�� Lisp �����n�ł͖���������(bignum)���T�|�[�g���Ă��܂��B
�����ƃV�[�����X�Ɏg���܂��B�����Ő����Ɩ����������͎����I�ɕϊ����Ă��܂��B
�X�^�b�N�ƃq�[�v�T�C�Y�ɑ傫���͐�������܂��B �Ⴆ�΁AWindows �ł� OKI ISLisp �ł���΁A153�̊K�悪�v�Z�ł��܂��B
����� bignum �̐����ł͂Ȃ��A�K��v�Z���̃X�^�b�N�T�C�Y�̐����ł��B
�Ⴆ�Ό�q����Ă��閖���ċA�ɂ����K��v�Z�ł�198�܂Ōv�Z�ł��܂��B

ISLisp>(defun fact (n) (if (<= n 1) 1 (* n (fact (- n 1)))))
FACT
ISLisp>(fact 153)
20063439050956823947782887469891171856624614961616117193423109928484094602523809
23396132940626035884355303931450486630471730519135077116322163056671295549006202
96603188543122491838966881134795135997316305640071571629943041039657861120000000
000000000000000000000000000000

�g�b�v�ɖ߂�

(17) �ĕϐ� generalized variable

�ĕϐ��� Common Lisp ���瓱�����ꂽ�T�O�ŁA���܂ł� Lisp ���ϐ��ɑ������֐��� setq �ł������A ������g�����āA�ϐ������łȂ��A���ׂĂ̏ꏊ�i�ĕϐ��j�ɑ���ł���悤�ɂ��� setf ����������܂����B
�Ⴆ�΁A(setf (car (cdr list)) 10)�̂悤�Ɏg�����Ƃ��ł��A����� list ��2�Ԗڂ̗v�f��10�ɂ�����̂ł��B
�܂� defsetf �ɂ��Asetf �̓��삪��`�ł���悤�ɂȂ�܂����B������ȒP�Ȍ`�Œ�`������̂ƁA �}�N����`�Ɠ��l�ȕ��@�Œ�`����2��ނ��T�|�[�g����Ă��܂��B
Common Lisp �ȍ~�A���̔ĕϐ��̍l���͑����� Lisp �₻�̑��̌���ɉe����^���Ă��܂��B

�g�b�v�ɖ߂�

(18) ���^�T�[�L�����[�C���^�v���^ metacircular evaluator

���^�T�[�L�����[�͓��{��ł́u������I�ȁv�܂��́u���^����I�ȁv�Ɩ󂳂�Ă��܂��B
Lisp �֐��ł��� apply �� eval �́ALisp �C���^�v���^���̂��̂ł��B ���� Lisp �C���^�v���^�̈�‚̊֐��Ƃ��� apply �� eval ������Aapply �� eval �̓C���^�v���^�̈ꕔ�ł��B
���̂悤�Ɏ���������I�ɂȂ��Ă��邱�Ƃ����^�T�[�L�����[�ƌ����܂��B ���̂悤�ȃ��^�T�[�L�����[�� Lisp �̈Ӗ��_�͕s���_�Ƃ��ė^������ƍl�����Ă��܂��B

�g�b�v�ɖ߂�

(19) �N���[�W���͋�J����񂶂�

�{���ł��N���[�W���͊‹���‚����߂�ƌ����܂����B
�N���[�W�����‚����߂�‹��́A�ϐ����̂��̂�‚����߂܂��B�ȉ��̗�����Ă����܂��B

; ��‚̃N���[�W���͓��� x ��‚����߂܂�
ISLisp>(defglobal c (let ((x 10)) (cons (lambda () x) (lambda (y) (setq x y)))))    
C
ISLisp>c
(#<UFUNCTION 0026F636: #<LAMBDA>> . #<UFUNCTION 0026F436: #<LAMBDA>>)
ISLisp>(apply (car c) ())     ; �u�‚����߂� x�v�̒l�� 10 �ɂȂ��Ă��܂�                                                        
10
ISLisp>(apply (cdr c) '(20))  ; �u�‚����߂� x�v�� 20 �������܂�                                                    
20
ISLisp>(apply (car c) ())     ; �u�‚����߂� x�v�̒l�� 20 �ɂȂ��Ă��܂�                                                    
20

���ɂ��̃N���[�W���̎������l���Ă݂܂��B�������l���邱�ƂŁA���N���[�W���̂��Ƃ��������Ă��܂��B
��L��(car c)�̃N���[�W�����‚����߂��̂́A���̒l��10�ł��郍�[�J���ϐ� x �ł��B����� (x 10)�ƕ\�L���܂��B
����(cdr x)�̃N���[�W�����‚����߂��̂����� x �ł��B�����(x 10)�ƕ\�L���܂��B
���̓�‚�(x 10)���������̂ł���悤�ɂ���΁A�ǂ��炩����Œl��ς���΁A��������ł�����p�Œl���ς��܂��B
�N���[�W���̈�‚̎������@��(x 10)�̃��X�g�𓯂����́������A�h���X�̃��X�g�ɂ�����@������܂��B
����̓��X�g�Ő������܂������A���ۂ̓x�N�^�[�̕��������ł��傤���A�����ł̓t�@�[�X�g�N���X�I�u�W�F�N�g�ɂ���K�v������܂���B

�g�b�v�ɖ߂�

(20) �C���^�[�� - �V���{���e�[�u���Ɏ���ꂵ��

Lisp �̃V���{���̓V���{���e�[�u���ɂ���ăC���^�[������Ă��܂��B
�V���{���e�[�u���Ƃ͖��O�̎����ʂ�A�V���{�����Ǘ����Ă���e�[�u���ŁA���̎����̓n�b�V���e�[�u���ł��B
�V���{�����C���^�[������Ă���Ƃ́A�V���{���e�[�u���ɓo�^����Ă��邱�Ƃł��B

�V���{���́A�V���{���e�[�u���̎����ł���n�b�V���e�[�u���ɂ���āA���̗B�ꐫ��ۏ؂��Ă��܂��B
�‚܂�A�V���{���̖��O�������Ƃ��A�Ⴆ��(eq 'symbol1 'symbol1)�� t ��Ԃ��܂��B

�V���{�����C���^�[������邱�Ƃɂ���āA�V���{���̓������肪�����ɂł��܂��B
�������t�ɃV���{�����C���^�[������Ƃ��ɂ͎��Ԃ��|����܂��B
�C���^�[���̋t�̃A���C���^�[��������܂��B����̓V���{�����V���{���e�[�u������폜���邱�ƂɂȂ�܂��B

�����܂Řb�𕷂��Ε����邩���m��܂��񂪁A�C���^�[���� Lisp �����̑傫�ȃL�[�ɂȂ�܂��B
���̎����̃L�[�̓V���{���e�[�u���̎����ł���n�b�V���e�[�u���ł��BLisp�C���v�������^�ɂƂ��Ă͋�J�̂�����������Ƃ���ł��B

�g�b�v�ɖ߂�

(21) ���L�V�J���X�R�[�v - ���j����X�R�[�v

�܂��A�X�R�[�v�͎Q�Ƃ̗L���͈͂̂��ƂŁA�G�N�X�e���g�͎Q�Ƃ̗L�����Ԃ̂��Ƃł��B
���L�V�J���X�R�[�v lexical scope �Ƃ́A�R���p�C���^����ł���΁A���ʂ̃X�R�[�v�ł��B
�P���Ɏ����͂����ŋ��܂�L���͈�(scope)�ŁA�̂���̗��j����X�R�[�v�ł��B
�Ⴆ�΁A(lambda (x) (lambda () x)) �̂Ƃ��Ax �͊O���̃����_�Ő錾���ꂽ���̂ł��B�N���ǂ����Ă������ł���ˁI
���L�V�J���X�R�[�v�� Scheme �ō̗p����ACommon Lisp �ȍ~�� Lisp �ł́A���̃��L�V�J���X�R�[�v���̗p���Ă��܂��B���Ă��ꂾ�����Ɠ�����O�̂��Ƃ̂悤�ł���ˁH

�������A�̂� Lisp�A��ɃC���^�v���^�œ��삷�邱�Ƃ���ړI�ł��� Lisp �ł́A���L�V�J���X�R�[�v�łȂ��X�R�[�v������܂����B
�����ƈ������ƂɁA�̂� Lisp �ł̓C���^�v���^�̂Ƃ��ƃR���p�C�������Ƃ��̃X�R�[�v���Ⴄ�Ɉ��񓹂Ȃ��̂�����܂����B
�C���^�v���^�ł́A�_�C�i�~�b�N�X�R�[�v�i�����X�R�[�v�{���I�G�N�X�e���g�j�ŁA�R���p�C������ƃ��L�V�J���X�R�[�v�ɂȂ�Ƃ����Ɉ��񓹂Ȃ��̂ł����B
����̓C���^�v���^�ł̓��L�V�J���X�R�[�v�����̂��ʓ|����������ł��B����ɂ‚��Ắu�N���[�W���͋�J����񂶂�v���Q�l�ɂ��Ă��������B

���L�V�J���X�R�[�v�͏�q�������̂ł����A����ȊO�ɖ����X�R�[�v infinite scope ������܂��B
�����X�R�[�v�̓G�N�X�e���g�i�L�����ԁj���ł���΁A�ǂ�����ł��Q�Ƃł�����̂ł��B

�G�N�X�e���g�ɂ͓��I�G�N�X�e���g dynamic extent ������A����͓���̎��Ԕ͈͂ŗL���Ƃ������̂ł��B
Common Lisp �̗�ł� with-open-file (�t�@�C�����I�[�v�����Ă���ԗL��)������܂��B
����� Common Lisp �ł̓X�y�V�����ϐ��AISLisp �ł͓��I�ϐ� dynamic variable �̃G�N�X�e���g�������ł��B
�̂� Lisp �̃C���^�v���^�ŁA���[�J���ϐ��i�����j�̃G�N�X�e���g�������ł����B

[�̂� Lisp �̗�] (setq x 10), (defun foo (x) (bar)), (defun bar () x)�Ƃ����Ƃ��A(foo 20)�̒l�� 10 �łȂ� 20 �ł����B

�G�N�X�e���g�ɂ͂��̑��ɖ����G�N�X�e���g infinete extent ������܂��B���‚ł��Q�Ƃ��L���ɂȂ���̂ł��B
�N���X�̃C���X�^���X�Ȃǂ̈�ʂ̃f�[�^������ɑ������܂��B
Lisp �I�u�W�F�N�g�͎Q�Ƃ��Ȃ��Ȃ�� GC �ɂ���ăI�u�W�F�N�g�͏��ł��܂����A���̂Ƃ��������G�N�X�e���g�ƌ����܂��B

�g�b�v�ɖ߂�

(22) �[�������Ɛ󂢑����A���Ȃ��̍D�݂́H

�[������ deep binding �Ɛ󂢑��� shallow binding �������m�ł��傤���B
���t�ʂ�ɐ[�����‚��Ɣ��邩�A�󂭊ɂ����邩�ł��B

�E�E�E�ł͂Ȃ��āA���I�X�R�[�v�i�����X�R�[�v�{���I�G�N�X�e���g�j�̂Ƃ��̎������@�ł��B
�����ŗ���l���Ă݂܂��B(defun foo (x) (bar)) (defun bar () (baz)) (defun baz () x)���l���Ă݂܂��B
�������A���L�V�J���X�R�[�v�̂Ƃ��́Abaz �� x �̓O���[�o���� x �ł��B
�������A���I�X�R�[�v�̂Ƃ��́A(foo 10)�ƌĂяo���ꂽ�Ƃ��́Abaz �� x �� foo �� x �ɂȂ�A10�ł��B
���̂悤�Ɏ��s���� x �����肳���̂ŁA���I�X�R�[�v�i���I�G�N�X�e���g�j�ƌĂ΂�܂��B

���̓��I�X�R�[�v�̎������l���Ă݂܂��B �܂��A���̂Ƃ��̃X�^�b�N���ǂ��Ȃ��Ă��邩������ƁAfoo �̃t���[���̏�ipush ��������Ƃ����Ƃ��j�� bar �̃t���[��������A���̏�� baz ������܂��B
���ʂɍl����������Ƃ��ẮA���̃X�^�b�N�� baz �t���[������ foo �̃t���[���ɂ��� x �����‚���܂� �t���[���P�ʂŃX�^�b�N���ォ�牺�֒H���Ă����܂��B������X�^�b�N�H��ł��B
���ꂪ�[�������ł��B�X�^�b�N��[���[���H���Ă������߂ɁA���̂悤�ɌĂ΂�܂��B
���̎����͊ȒP�ł��B�T���͒P���ȌJ��Ԃ��Ŏ����ł��܂��B
�֐�����߂�Ƃ��ɃX�^�b�N����ނ̂��ȒP�ł��B�X�^�b�N�|�C���^��t���[���|�C���^��߂������ł��B
������x�̒T���� O(n)���|����܂��B�֐��̌Ăяo���̐[���ɔ�Ⴕ�܂��B�[�����܂��B�s���ł��B���C�̒�ɒ��݂܂��B

����ɑ΂��āA�󂢑����Ƃ͂ǂ�Ȏ����ł��傤���B
�󂢑����͂ǂ�ȕϐ��T����1��Ō��‚�����̂ł��B
���̎������@�́A���I�ϐ��i�_�C�i�~�b�N�X�R�[�v�����•ϐ��BCommon Lisp �ł̓X�y�V�����ϐ��j�� �O���[�o���ϐ��Ɠ����悤�ɃV���{���e�[�u���ɓo�^���܂��B
����œ��I�ϐ��̒T���̓O���[�o���ϐ��Ɠ��l�ɃV���{���e�[�u��������o�������ł��B
�V���{���e�[�u���̓n�b�V���e�[�u���Ŏ�������Ă��܂�����A�������O(1)�ł��B
�����������͕��G�ɂȂ�܂��B�֐�����߂�Ƃ��ɃX�^�b�N����݂܂����A���̂Ƃ��V���{���e�[�u���ɓo�^����Ă��� ���I�ϐ��̒l��ݒ肵�����Ȃ��Ă͂����܂���B�������ʓ|�ł��B�����Ď��s���Ԃ��|����܂��B
���������I�ϐ��̒T���������̂ŁA���ʂ͂�����̐󂢑����Ŏ�������Ă��܂��B

���Ȃ��͂ǂ���ő������܂����H

�g�b�v�ɖ߂�

(23) �X�y�V�����ϐ��܂��̖��𓮓I�ϐ��A���̍ߐ[���҂�

Common Lisp �ł̓X�y�V�����ϐ��AISLisp �ł͓��I�ϐ��i�_�C�i�~�b�N�ϐ��j�ƌĂ΂��ϐ��́A�_�C�i�~�b�N�X�R�[�v�i�����X�R�[�v�{���I�G�N�X�e���g�j�����•ϐ��ł��B
�_�C�i�~�b�N�X�R�[�v�ɂ‚��ẮA(23) �[�������Ɛ󂢑����A���Ȃ��̍D�݂́H���Q�Ƃ��Ă��������B
�ꌾ�Ō����΁A���I�ɃX�^�b�N�H������ĕϐ������‚�����̂ł��B���s���Ȃ��Ɖ��ɑ������Ă��邩������܂���B

���̃X�y�V�����ϐ��͂��̂悤�ɃJ�^�J�i�ŏ����ƁA�Ȃ񂩊i�D�����ϐ��̂悤�ɕ������܂��B�X�y�V�����ł�����B
�������̂ł͂���܂���B�����ƁA���Ȃ��̏����ɉЁi�킴�킢�j�������ł��傤�B�f�o�b�O����Ƃ��ɁE�E�E
�N�����̃X�y�V�����ϐ����󂵂��̂��H�i�}�U�[�O�[�X���Ɂj

�g�b�v�ɖ߂�

(24) Lisp �̝|���̈� - �l�[�~���O�K��

Lisp �ɂ͐F�X�ȝ|������܂��B�\���K���₻�̈Ӗ��_�����łȂ��A���K convention �ƌĂ΂��|������܂��B
�����͂��̒��ň�ԑ�؂ȝ|�ɂ‚��ď����܂��B��ԑ厖�ȝ|�Ƃ́A���΂薽���K���ł��B�l�[�~���O�ł��B���ꂾ���ŁA�ǂ�قǂ� Lisper ��������܂��B
�Ⴆ�΁AC# �� Pascal - Delphi �Ƃ�������ŁA�����K���� Pascal �`���iFooBar �̂悤�ɃL���s�^���C�Y����`���j����{�ł��B
Java �͂�₱�����āA�N���X���� Pascal �`���A���\�b�h�֐����� Camel �`��(fooBar �̂悤�ɍŏ��̒P��͏����� lower case �ɂ���`���j�A �萔�� Snake �`���iFOO_BAR �̂悤�ɑ啶�� upper case �ŏ����A�A���� _ (�A���_�[�o�[)�ōs���`���j�ł��B
���̂悤�ɁA�l�[�~���O�͊e�v���O���~���O����̕����ɂȂ��Ă��܂��B

Common Lisp ���n�߂Ƃ��� Lisp �̃l�[�~���O�͂ǂ��Ȃ��Ă���ł��傤���B��͂�A�����ł����̃v���O���~���O����Ɣ�r���āA�َ��Ȃ��̂ɂȂ��Ă��܂��B
�܂��͎g���镶�����Ⴂ�܂��B-(�n�C�t���A�}�C�i�X�L���ő��)�Ȃǂ��g���܂��B����̓v���O���}�ȊO�ł͈�ʏ펯�ł��傤�B���̈Ӗ��ł� Lisp �ȊO�����������̂ł��B
���ɐ擪��������������n�܂��Ă����v�ł��B�����Ƌ�ʂ��邽�߂̕������ǂ����ɂ���Α��v�ł��B�Ⴆ�΁A1.2e0 �͐����ł����A1.2e0x �͖��O�ł��B
Lisp �ł͑啶���Ə������̋�ʂ͂��܂����A�f�t�H���g�ł͑啶���C���^�[���ł��B�������ŃC���^�[���������Ƃ��̓G�X�P�[�v�������g���܂��B
�Ⴆ�΁A|aBc|��\ab\c �̂悤�ɂ��܂��B�������ʓ|�Ȃ̂ŕ��i�͑啶���C���^�[���ɂȂ�܂��B
�����܂ł͋����I�Ȏd�l�ł��̂ŁA������ Lisper �S�������܂��B

Lisp �ł̓n�C�t�����g���܂��̂ŁA�P��̘A���� foo-bar �̂悤�ɂ��܂��B�Ⴆ�΁AILoveYou �łȂ��Ai-love-you �ł��B���ꂪ���̋K���ł��B
���̝|�́A�O���[�o���ϐ��̃l�[�~���O�ł��B*global-variable* �̂悤�ɁA* �A�X�^���X�N�ň݂͂܂��B���ꂪ���̋K���ł��B
�Ȃ��A* �ɂ͓��ʂȈӖ��͂Ȃ��A�P�ɖڗ�����������ł��B�����ƌ����΁A�O���[�o���ϐ����g�����߂ɂȂ�܂��B* ���p����������΁A�g���ȁI�Ƃ������Ƃł��B
Common Lisp �̃X�y�V�����ϐ����O���[�o���ϐ��̈��ł��̂ŁA���i�~�j�̈Ӗ��� * �ň݂͂܂��B
�萔�͈�ʓI�ȝ|�͂���܂���B+foo-bar+ �̂悤�� + �ň͂��l�[�~���O������܂����A�S����ʓI�ł���܂���i�����ς�j�B
���������͂� SNAMKE �`���ł��傤�B�B�B
�q��֐��it �܂��� nil �̐^���l��Ԃ��֐��j�́A����ɏq�� Predicate �� P ��t����̂��|�ɂȂ��Ă��܂��B�Ⴆ�΁Aintegerp �ł��B �A�� Scheme �Ȃǂł͂��̌���ł͂���܂��񂪁A�������O�̋K���ł��B
���̓l�[�~���O�Ɋւ��ẮA�܂��܂��\�Ɨ��̝|������̂ł����A�����͂����܂łɂȂ�܂��B�B�B

�g�b�v�ɖ߂�

(25) Lisp �̝|���̓� - �v���e�B�v�����g�`�C���f���g�̐[����

Lisp �̌��߂ƌĂ΂����̂�����܂��B����͊��ʂł��B���ʂ̑����ł��BLisp �̊��ʂ��[�����āA���ꂪ Lisp �̐[���łɂȂ��Ă��܂��B
���̊��ʂ����₷�����邽�߂ɁALisper �̓z���C�g�X�y�[�X�A���ɃC���f���g���g���āA�����������Ă��܂����B
�������A���̃C���f���g���V���Ȑ킢�̖��J���ɂȂ��Ă��܂��B�‚܂�A�ǂ̂悤�ɃC���f���g�����邩�ŁA���h������܂��B�����ő���������܂��B

���̑����� Lisp �Ɍ��������Ƃł͂���܂���B�Â��� C ����ł����̐킢�͂���܂����B
K&R�h v.s. �z���C�g�X�~�X�h�̐킢���u�����܂����B
�ŋ߂ł́APASCAL - Delphi �̗����g�� C# �̃C���f���g�X�^�C���ƁA����AJava ���E�ŗ��s���Ă���X�Δh�ƌĂ΂�鑈��������܂��B
�v���O���������₷�����邽�߂̐킢�ł����A�݂ɂ��������ɂȂ��Ă��܂��B
Python �ł́A�������ł����A�t�ɑ傫�ȍ��͂Ȃ��A����قǐ킢�͂���܂���B

�c�O�Ȃ���ALisp �̐��E�ł��AC �� Java �قǂł͂Ȃ��ł����A���̃C���f���g�̐킢�͂���܂��B�X�Δh�Ƃ��ADelphi �h�Ƃ��̃X�^�C���ł͂���܂��񂪁A��͂�A���s�̈ʒu�ƁA ���s�̌�̋󔒂̌��A�‚܂�^�u�ɑ�������C���f���e�[�V�����̐킢������܂��B
����� Lisp �ł́A�‚����ʂƕ‚����ʂɋ󔒂�����ʒu�ɂ‚��Ă̐킢������܂��B

����A���`�o�́i�v���e�B�v�����g�j�͂��̃C���f���g�ɉe������܂��B
���l�ɐ��`���́i�v���e�B���[�_�j���e�����󂯂܂����A�ŋ߂ł́ALisp �v���O���������ʂ̃G�f�B�^�œ��͂��邱�Ƃ������A�G�f�B�^�Ɉˑ����܂��B
�Ȃ��A�G�f�B�^�ɂ‚��Ă͕ʂł��b�����Ă��������܂����A�������AEmacs �������߂ł��B

���̃C���f���g�ƃv���e�B�v�����g�ł̂����߂̃X�^�C���́A�����ł͏Љ�܂���B�@���푈�ɂȂ�܂��̂ŁA����ɂ��݂��܂���B
���ɓ����Ă͋��ɏ]�����Ƃ��A��͂�A�����ł��厖�ł��B�X�^�C���ɍS�肷���Ȃ��������������m��܂���B
�i�ڂ����j�ǂ����AEmacs �G�f�B�^��1���ŃX�^�C���͕ύX�ł��܂��̂ŁB

�g�b�v�ɖ߂�

(26) �ϐ��A���̖����ƏI��

�ϐ� variable �Ƃ́A�l value ���i�[�ł���ꏊ��񋟂�����̂ł��B
�ϐ��ɑ΂��鑀��͒l�Q�Ɓi�������Q�Ƃ��܂ށj�ƒl�ύX�i�����l�ݒ�Ɩ����������܂ށj�ł��B
�t�ɍl����΁A�l�Q�Ƃƒl�ύX�̊֐�����`����Ă���I�u�W�F�N�g�Ƃ݂Ȃ����Ƃ��ł��܂��B

����A���̍l���͕��ʂ̍l���ŁA�Ⴆ�΁A���r���[�Ȃ���AJava �� C# �Ȃǂɂ��A�Z�b�^�֐���Q�b�^�֐��Ƃ��āA�A�N�Z�b�T�֐�����`����Ă��܂��B

Lisp �͓�������A���� binding ����̂͒l�����łȂ��A�����_�������ʂ̒l�Ɠ��l�ɑ����ł��܂��B
�‚܂�ALisp �ł͕ϐ��Ɗ֐��͓������̂ł��B �������Ă�����̂������_���̂Ƃ��͊֐��K�p���s���A���ʂ̒l�̂Ƃ��͉E�Ӓl�ł���Βl�Q�Ƃ��A���Ӓl�ł���Βl�ύX���s���܂��B
�‚܂� Lisp �͖{���I�ɒl�w���ł���A�֐��w���i�֐��^�j�ł����B ���� Lisp-1 �ł͂��̃C���[�W��������₷�����̂ł��B

�ϐ��͂��͂�l�����łȂ��A�l���i�[����ꏊ�������B�؂��ł��܂��B�����҂Ɉ�C�ł��܂��B
�����҂͏����l�ݒ�A�l�Q�ƁA�l�ύX�A����������4�‚̊֐������܂��̂ŁA������g�������ł��B

�g�b�v�ɖ߂�

(27) Lisp �̌��� ��̍� - ���I�����R���p�C��

Lisp �ł̓R���p�C�����֐��ł���A���̊֐� compile �͊֐��P�ʂŎ��s���ɃR���p�C���ł��܂��B �‚܂� Lisp �͓��I�����R���p�C�����”\�ł��B
���ꂪ Lisp �̎��s���Ԃ��x���Ȃ錴�߂̈�‚ɂȂ��Ă��܂��B �����R���p�C�����ł����ÓI�����N�����錾��Ɣ�r���āA�����ŋ�J����_�ł��B
���ɂ��������������l���Ă݂܂��B�ŏ��͊ȒP�ȕ��@���l���Ă݂܂��B

(1) �V���{���o�R�Ŋ֐������s
�Ⴆ�΃V���{���o�R�Ŋ֐��Ăяo����������@������܂��B�V���{���o�R�ł��̂ŁA�������A�N�Z�X��1������Ă��܂��A�x���ł��B
�x���`�}�[�N�̂悤�ȃv���O�����ł́A����͒v���I�Ȓx���ł��BC �v���O�����ɂ͌����ď��ĂȂ��ł��傤�B
�����������I�ȏ����� Lisp �����n�ł͂��̎������̗p���Ă�����̂�����܂��B
�����Ŏ��ɗ]�v�ȃ������A�N�Z�X�������ɍςޕ��@���l���Ă݂܂��B

(2) ���I�R���p�C���œ��I�����N
���I�R���p�C���������Ƃ��ɁA�V�����R�[�h���Ăяo���悤�ɁA�֐��Ăяo���̔�ѐ�A�h���X���ڏ�����������@������܂��B �‚܂�A���I�Ƀ����L���O������@�ł��B
���̃����L���O�̎����ł́A�R���p�C�����s�������x���Ȃ�܂����V�X�e���̃����J���g�����@�ƁA�ʓ|�ł�������Ń����J�������@������܂��B ����͕ʂ� Lisp �̍߁u������C���^�t�F�[�X�v�̎����ł������Ɠ������ɂȂ�ł��傤�B

�g�b�v�ɖ߂�

3. Lisp �W���[�N - Lisp �Ɋւ���W���[�N���낢��

(1) �R�[�q�[�ł����ł����H - �n�b�J�[�Y�f�B�N�V���i�����

�E�F�C�g���X�u�R�[�q�[�ł����ł����H�v
Lisper�uT�v(yes �̈Ӗ��� Lisp �̐^�̒l�ł��� T �Ɠ�����)
�E�F�C�g���X�u�g��(Tea)�ł��ˁv

�g�b�v�ɖ߂�

(2) Lisp �ň�ԑ������ꂽ�v���O����

�l�H�m�\�}�V���łȂ��ALisp �̃x���`�}�[�N�v���O�����ł���B
���̏؋��� Lisp �����ΕK���Atarai(�܂���tak)�����s���Ă����B
��񏈗��w��̋L������������ł��A�x���`�}�[�N���J�Â���Ă����B

�g�b�v�ɖ߂�

(3) �^�╶�� P

Lisp �̏q��֐�(�^���l��Ԃ��֐�)�́Aintegerp �� subtypep �Ȃǂ̂悤�� post-P (����ɏq�� Predicate �� P ��t����)������ł���B
Lisper�u�R�s�[����̂ł������R�s�s�v�i�����͂��҂��[�҂��H�j
Lisper�u���̕����� P �ł������s�s�v�i�����͂҂��[�҂��H�j

�g�b�v�ɖ߂�

(4) ���u�L�@�̃��X�v

Lisp �𒆒u�L�@�ɂ��Ă݂�

(fact defun (n) ((n <= 1) if 1 (n * ((n - 1) fact))))

�ǂ��ł��傤���H���₷���ł��傤���H���ɂ����ł���ˁB��͂�A�O�u�L�@�̕��������ł���ˁB

(defun fact (n) (if (n <= 1) 1 (* n (fact (n - 1)))))

�g�b�v�ɖ߂�

(5) ��������

Lisper �͑��̃v���O���~���O����Ƃ̑����������D���ł���B
����͂ǂ�Ȍ���ɂ����Ă鎩�M�����邩��ł���B
�Ȃ�ƂȂ�΁ALisp �ɂ͐F�X�ȕ����A����������A�ނ�𖡕��Ɉ�������āA���‚̂ł���B
���񏟕��Ȃ�A�̂��炠��e��̕��� Lisp ��O���ɑ���o���A����������̂ł���B
�����ň�‚����łȂ������̍��킹�Z��p����̂����”錍�ł���B
����ł����������ȂƂ��ɂ́A�t�]�ł��閂�@�̌��t������B
�u�ł�����́ALisp �̉e�����󂯂Ă����ł��傤�v

�g�b�v�ɖ߂�

(6) �A���S���Y���{�f�[�^�\�����v���O����

����̓j�N���E�X�E���B���g�̗L���Ȗ{�̑薼�ł���A�v���O���}�ł���΁A�N����x�͖ڂɂ������Ƃ����邾�낤�B
�E�E�E���̖{��ǂ�ł��邩�ǂ����͕ʂɂ��āB

����A���X�v�̓f�[�^�ƃv���O�����͓������X�g�ŕ\���A�f�[�^�ƃv���O�����͓����ł���ƍl����B
����� Lisper �ł���΁A�N�����������v���ł��낤�B

����͂‚܂�A�u�f�[�^�\�����v���O�����v�ƕ\���ł��邾�낤�B����Ɠ�N���E�X�̎����Ƒg�ݍ�����ƁA�ǂ��Ȃ�̂��낤��

  �A���S���Y���{�f�[�^�\�����v���O���� --- (1)
  �f�[�^�\�����v���O����               --- (2)
  �A���S���Y�� = 0                     --- (3) = (1)�[(2)���v�Z

���̂悤�ɃA���S���Y���� 0 �ƂȂ�A����� Lisp �ł� NIL �ł���A�����ł���B��ʂɂ͖��p�̒����ł���B

�g�b�v�ɖ߂�

(7) Lisp �Ŋ當��������Ă݂�

(defun O_O () '1+1=?)         ; (O_O)
(defun ^_^ () '2!)            ; (^_^)
(defun @-@ () '10!)           ; (@-@)
(defun ^O^ () 'full!)         ; (^O^)

ISLisp>(O_O)
1+1=?
ISLisp>(^_^)
2!
ISLisp>(@-@)
10!
ISLisp>(^O^)
FULL!

(���) (@-@)�N���������̂͂������2�i���ł��B(^O^)�͋��e�ʂ𒴂����̂ł��傤�B
�Ȃ� Lisp �ł͖��O�� ^ �� -, @, !�Ȃǂ̋L�������R�Ɏg���܂��B

�g�b�v�ɖ߂�

4. Lisp �̗��j

(1) �t����

EV-Lisp �� EVQ-Lisp
(car '(1 2 3)) v.s. car(1 2 3)

�g�b�v�ɖ߂�

(2) �퍑����

InterLisp v.s. MacLisp
�퍑����̗��Y�̐킢�B

�g�b�v�ɖ߂�

(3) Common Lisp �̓��ꎞ��

���{�� Common Lisp �ψ���̎v���o�ȂǁB
�y�[�W���ɗ]�T������΁A��c���V�𒆐S�Ƃ��Ċ������Ă����d�q���i�d�q���Z�p�Y�Ƌ���̍����O�̋ƊE�c�̂̈�j �� Common Lisp �ψ���̎v���o�����܂��B
"generic function"�̖�ꂪ�ǂ̂悤�ɂ��Č��܂����̂��Ȃǂ̂��ڂ�b�����S�ɂȂ邩���m��܂���B

�g�b�v�ɖ߂�

5. Lisp ���� - Lisp �ŏ����ꂽ���낢��

(1) �A�v���P�[�V�����̃X�N���v�g����

Emacs, AutoCAD, Interleaf, GAT �Ȃ�

�g�b�v�ɖ߂�

(2) �A�v���P�[�V�������̂���

�l�H�m�\(AI)�G���W���A�G�L�X�p�[�g�V�X�e���A���������iREDUCE, Maxima�j�A��

�g�b�v�ɖ߂�

(3) �g���݌n�\�t�g�E�F�A

���{�b�g�FiRobot�Ђ̃����o�A���S �}�C���h�X�g�[��(XS)

�g�b�v�ɖ߂�

(4) �����V�X�e���A����

�e��

�g�b�v�ɖ߂�

6. �T���v���v���O����

(0) ISLisp �����n�̃_�E�����[�h

�{���ɂ��Љ�܂������A ISLisp ��http://www.islisp.org/jp/download-jp.html���� �_�E�����[�h�ł��܂��B
�~���[�T�C�g��http://www.islisp.com/jp/download-jp.html�ɂ���܂��B

�g�b�v�ɖ߂�

(1) Common Lisp �ł��lj�

(2) ���K�֐��̗� - �S��������lj�

(3) �����ċA�̗� - �����ċA�̊K��v�Z�ƃt�B�{�i�b�`���v�Z��lj�

Common Lisp �ŁA���K�֐��̗�A�����ċA�̗�Ȃǂ�lj������T���v���v���O����

�g�b�v�ɖ߂�

(4) �t�B�{�i�b�`���v�Z���C�� ((fib 0)�̒l�� 0 �ɏC��)

(defun fib (n) (if (<= n 1) 1 (+ (fib (- n 1)) (fib (- n 2))) ))
�� if ���� then �߂� 1 �� n �ɏC��
(defun fib (n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2))) ))

(fib 0) �̒l�� 1 ���� 0 �ɏC�����܂����B
�{���̓ǎ҂̊F�l�A�����f�����|�����܂��āA���݂܂���ł����B

�g�b�v�ɖ߂�

(5) �}�N����`�̃T���v���v���O���� - ISLisp �� Common Lisp �݊��p�b�P�[�W

�}�N����`�̃T���v���v���O�����Ƃ��āAISLisp �� Common Lisp �݊��p�b�P�[�W���}�N����`��������
�A���A1-�A1+�Ainc�Adec�Asecond�Athird�Apop�Apush�Adotimes�Adolist�Aprint�Aprin1�Aterpri�Aread-from-string �����ł��B
�܂��ꕔ�̊֐��� Common Lisp �̃T�u�Z�b�g�̎d�l�ɂȂ��Ă��܂��B

�g�b�v�ɖ߂�

(5) �T���v���v���O�����t�@�C���̃��[�h���@

�֐� (load �t�@�C����)�� Lisp �v���O�����t�@�C�������[�h�ł��܂��B
"samples.txt" �����[�h����Ƃ��́A(load "samples.txt")�����s���܂��B
�Ȃ� Lisp �t�@�C���̑������́A��ʓI�ɂ� "lsp" �ł��B"txt" �Ƃ��Ă���̂̓E�F�u�Ō��₷�����邽�߂ł��B
�܂��}�N����`�̃T���v��(Common Lisp �݊��p�b�P�[�W)�́A(load "cl.txt")�Ń��[�h�ł��܂��B

�g�b�v�ɖ߂�

(6) �T���v���v���O�����̎��s��

�T���v���v���O�����̎��s��͈ȉ��̂悤�ɂȂ�܂��B

ISLisp>(fact 50) �� 30414093201713378043612608166064768844377641568960512000000000000
ISLisp>(fib 11) �� 89
ISLisp>(append2 '(1 2 3) '(4 5 6)) �� (1 2 3 4 5 6)
ISLisp>(mapcar1 (lambda (x) (* x 2)) '(1 2 3)) �� (2 4 6)
ISLisp>(qsort #'< '(5 4 3 2 1)) �� (1 2 3 4 5)
ISLisp>(hanoi 5) �� 31��̈ړ�
ISLisp>(nqueen 9) �� 352�‚̉�

fact�̒l���番����܂��悤�ɁALisp �ł͈�ʓI�� bignum (����������)���T�|�[�g���Ă��܂��B
���Ȃ݂� Windows �łł� (fact 153) �܂Ōv�Z�ł��܂��B(fact ���g���X�^�b�N�Ɉˑ����܂��B)

�g�b�v�ɖ߂�

7. �₳���� Lisp �����n�̍���

(1) �₳���� Lisp �̍��� by Java and by C#

�u�₳���� Lisp �̍��� by Java and by C#�v�̋L���� �����ɂ���܂��̂ŁA�Q�l�ɂ��Ă��������B

�g�b�v�ɖ߂�

8. Lisp �������N�C�Y�i�܂��� Lisp �\�͌���j

(1) mapcon �͐^���X�g�����D���H�i���j

----------------------------------------------
��1. mapcon �͐^���X�g�����D���H

(mapcon (lambda (x) x) '(1 2 3 . 4))

��]������ƁA���̒l�͂ǂꂩ�H �ȉ�����I�тȂ����B

[a] (1 2 3 2 3 3)
[b] (1 2 3 2 3 3 . 4)
[c] (1 2 3 4 2 3 4 3 4)
[d] (1 2 3 4 2 3 4 3 . 4)
----------------------------------------------

������[b]�B
�^���X�g�łȂ� mapcon �̐U�镑����₤���ł���B
mapcon �� nconc �ŘA������Ă��邱�ƂɁumapcon �Ƃ������O����C�Â��΁vnconc �̃h�b�g�Ό����̖��Ɠ����ɂȂ�B
�‚܂�A(nconc '(1 . 2) '(3 . 4))��(1 3 . 4)�Ɠ������ł���B

�g�b�v�ɖ߂�

(2) ���k nconc �̉��O�i���j

----------------------------------------------
��2. ���k nconc �̉��O

(nconc '(1 . 2) '(1 . 2))��]������ƁA(1 1 . 2)
�ɂȂ�A���̒���(length (nconc '(1 . 2) '(1 . 2)))
�́A2 �ɂȂ�B

����ł�

(let ((x '(1 2 . 3)))
  (length (nconc x x)) )

��]������ƁA���̒l�͂ǂꂩ�H �ȉ�����I�тȂ����B

[a] 3
[b] 4
[c] 5
[d] Error
----------------------------------------------

������[d]�B
���̖��͐^���X�g�łȂ����X�g�ɑ΂��� nconc �� length �̐U�镑���� �₤�����U�����Ă��邪�A���� nconc �̔j��I�����₤���ł���B
��1���U�����邽�߂̑O�U����ł������B
nconc �ɂ���āAx �̖����͎������g�̐擪�Ɍq����A���̌��ʁA�z�ƒ��X�g�ɂȂ��Ă��܂��B

�g�b�v�ɖ߂�

(3) Lisp Skill Exams (JavaScript:Trial version)

Lisp Skill Exams������܂��B
�������ɂ͂��Ă��܂���BCommon Lisp �� ISLisp �̒m���ʼn�������ɂȂ��Ă��܂��B
�I���W�i���� Android �A�v�����p��ł̂݃����[�X���Ă���֌W�ŁA�p��łɂȂ��Ă��܂��B

�g�b�v�ɖ߂�

9. FAQ

���҂Ɋ񂹂�ꂽ����܂��̓R�����g�ɑ΂��āA�����ɉ񓚂����Ă��������܂��B
�������A��̓I�Șb�𒼐ڏ������A���ۉ������Ă��������܂��̂ŁA�����S���������B
�܂��A���ׂĂ̎���ɂ������ł��Ȃ������m��܂���̂ŁA���e�͂��������B

(1) ���ׂẴv���O�����͕���p�̂Ȃ��v���O�����Ŏ����ł��܂����H

�֐��^�v���O���~���O�̌����ł���Ɍv�Z�́A�`���[�����O���S�ł�����A �\�͎͂葱���^����Ɠ����ł��B�‚܂茴���I�ɂ́A�ǂ�ȃv���O�����ł��֐��^�v���O���~���O�ŋL�q�ł��܂��B
���������ۖ��͂�͂�A��Ԃ�ϋɓI�Ɏg�������������悤�Ȗ��ł́A��ԃ}�V���I�ȍ��������v���O�����̕��������Ǝv���܂��B
����p side effect �Ƃ������t����͈����C���[�W������܂����A�֗��Ȏd�|���Ȃ̂��m���ł��B �������A�킴�킴����p���g�킸�ɍċA�Ńv���O���~���O�ł���Ƃ��͎g��Ȃ��悤�ɂ������������ł��傤�B ����p��p����ƁA���ꂪ�o�O�̉����ɂȂ邱�Ƃ����X����A���̃f�o�b�O����ςɂȂ�܂�����B

�g�b�v�ɖ߂�

(2)�u���I�^�t���̎������ʓ|�v�Ƃ́A�ǂ������_���������ʓ|�ƌ����Ă�̂ł��傤��?

Lisp �̃V���{���ɂǂ�Ȍ^�̒l�ł��u���s���Ɂi���I�Ɂj�v�i�[�ł��܂��B �Ⴆ�΁A������ 1 �ł��A���X�g��(1 2 3)�ł��A�֐��� #'car �ł�����ł��܂��B
������u���I�^�t���v�ƌĂ�ł��܂��B
Java �Ȃǂł̓R���p�C�����Ɍ^�錾������ÓI�^�t������{�ł����A������������Ɠ��I�^�t�����ق�̈ꕔ�ł���悤�ɂȂ�܂����B
Lisp �ł͍������̂��߂ɁA�^�錾�����邱�Ƃ��ł��܂����A��{�I�ɓ��I�^�t���ł��B

���̓��I�^�t���̎������l���Ă݂܂��B
���ׂĂ𕶎���^�ɂ��āA�Ăяo���֐��ɉ����Č^�ϊ�����Ƃ�������������܂����A����ł͒x���ł��̂ŁA�^�ʖڂȎ������l���܂��B
���I�^�t�����������邽�߂ɂ́u�^���v���ǂ����Ɏ�������K�v������܂��B
���̌^�����f�[�^�ƕʂɎ�������ƁA�Ⴆ�΁A�\���̂ɂ��ĕʂɑ҂�����ƁA�g�p���郁�������傫���Ȃ�A�������鎞�Ԃ��|����A�x���Ȃ�܂��B
�������A���̎������@�͊ȒP�ł��̂ŁA������ Lisp �����n�ł͂��΂��΍̗p����Ă��܂��B
�����Ɛ^�ʖڂȎ������@�ł́A�Ⴆ�΁A32�r�b�g�}�V���ł���΁A32�r�b�g�̂ǂ����ɐ��r�b�g���g�p���āA�^�����i�[������@������܂��B
���̌^�����u�^�O�v�ƌĂ�ł��܂��B�����̎�ނƂ��āA�^�O���Œ蒷�ɂ���̂��A�•ϒ��ɂ���̂��A�^�O����ʂɒu���̂��A���ʂɒu���̂��Ȃǂ�����܂��B
�܂��ʂ̎������@�Ƃ��ẮA�A�h���X�ɂ���āA�^����ʂ�����@�Ȃǂ�����܂��B
���̎����ɂ���āALisp �̎��s���x���ς�邾���łȂ��AGC �̃A���S���Y���ɂ��e����^���܂��B

�g�b�v�ɖ߂�

(3) ������������Ȃ��v���O���~���O�Ȃ�Ă���̂ł��傤���H

���ׂẴv���O���~���O�͐�ΓI�ɓ���Ƃ��A�t�ɂ��ׂẴv���O���~���O�͐�ΓI�ɊȒP�ł���Ƃ��A �܂��֐��^�v���O���~���O�����A���̃v���O���~���O�Ɣ�r���āA���ΓI�ɓ���Ƃ�������ł��傤�B

�����(1)�u�֐��^�v���O���~���O�͓���̂��H����A����Ȃ��Ƃ͂Ȃ��B�ȒP���i����j�v�Ƃ����Ӗ����A (2)�u�֐��^�v���O���~���O�͓���̂��H�������A����B����Ȃ��Ƃ͓�����O���i����j�v�Ƃ����Ӗ����A (3)�u�֐��^�v���O���~���O�́A���̗Ⴆ�΁A�葱���^�i���ߌ^�j�v���O���~���O��I�u�W�F�N�g�w���v���O���~���O�A �_���^�v���O���~���O�ȂǂƔ�r���āA����̂��H�i���̉��l�̑f�p�Ȏ���j�v�̈Ӗ��ő����邩�ɂ���āA ���߂͈���Ă��܂��B
�܂��e�v���O���~���O�p���_�C���ŁA�ǂꂪ��ԓ�����A�܂��͋t�ɂǂꂪ��ԊȒP�����c�_���Ă��A���܂�Ӗ����Ȃ��ł��傤�B
�����ł́u�Ȃ��֐��^�v���O���~���O�͓���̂��H�܂��͂����v���Ă���̂��H�v���e�[�}�ɂ��Ă��܂��B

�g�b�v�ɖ߂�

(4) �֐��^�v���O���~���O�͌��ǁA����������ł��傤���H

�{���Ɋ֐��^�v���O���~���O�̃����b�g�͉ӏ������ɂ��Ă��܂����A��‚ɍi��΁A��–ڂ�(1)�v���O���������剻���Ă��钆�A �v���O�����̐M���������コ���邱�Ƃł��B
�v���O��������K�͉����Ă�������̒��ŁA�v���O���~���O�̐��Y�����オ���߂��A�Ⴆ�΁A�I�u�W�F�N�g�w���v���O���~���O���g����悤�ɂȂ�܂����B
�������ÖٓI�R�[�h�i��.�X�[�p�[�N���X�ւ̃A�N�Z�X�⃁�\�b�h�K�p�����Ȃǁj�̂��߁A�o�O�����v����₷���A�f�o�b�O����Ƃ��͋t�ɐ��Y���𗎂Ƃ����ʂɂȂ�܂����B
����A�֐��^�v���O���~���O�͕���p�����܂�g��Ȃ����߁A����ɂ��o�O�����Ȃ��Ȃ�܂��B ����ɈÖٓI�R�[�h���Ȃ��V���v���Ȍv�Z���f���ł��邽�߁A�o�O�̖��v��f�o�b�O�����ɂ����Ƃ������Ƃ�����܂���B
���Y�������M�����ł��I�E�E�E���Ԃ�B

2�Ԗڂ̊֐��^�v���O���~���O�̃����b�g��(2)���s�����Ɍ����Ă���Ƃ������Ƃł��B
����͑��̕��s���f���A�Ⴆ�΁A�A�N�^�[���f���Ɣ�r���Ă݂�ƁA�u����p�v�̑��݂��ǂ�������������Ă��܂��B ���s�v���O�����́i���Y���łȂ��j�M�����Ƃ����ʂŌ��āA����p�͎ז��ȑ��݂ł��B
�Ɍv�Z�����ɓ��삷����s���f���̕����A�N�^�[�Ȃǂ̑��̃��f�������A�V���v���ŐM�����̍������f���ł��B�E�E�E�Ǝv���Ă��܂����A�ǂ��ł��傤���H�i��C�H�j

���͐́AAI ���V�������̂Ƃ��ė��s���Ă����Ƃ��A�u�Ȃ� AI �}�V���� Lisp �Ȃ�ł����H Lisp �͉���������ł����H�v �Ƃ���������Ⴂ�l����A���炢�l�܂ŁA�F�X�Ǝ��₳��Ă��܂����B
�����Ŋw�񂾋��P�́A�^�ʖڂɓ�����Ƃ𓚂�������A�ꌾ�œ����������ǂ������o�����L��܂�(������ Lisp �� Prolog �ɕς��Ă������ł�)�B
�Ȃ��ALisp �����������āH�����A���܂��Ă��邾��B�u�������v�������炳�B--- ���݂܂���A�I�`�܂���ł����B

�g�b�v�ɖ߂�

(5) �Ȃ��֐��^�v���O���~���O�͓���̂��H

�{���ł����������̂��A30�������ʼnߌ��Ɍ����؂�ƁA
(i) �ċA�v���O���~���O����������Ƃ��Ȃ�
(ii) �������� lambda ���Ĕ����ł��Ȃ����B���ăɂ͉���H�啶���̃��́��Ɏ��Ă��邵
(iii) �O���[�o���ϐ��͍D�������A�g���܂����Ă邵�iJava �ł���΃t�B�[���h�ϐ��̎g���܂��肾���j
(iv) �������3�x�̔т����D�������A3�s��1�‚͎g���Ă邵
(v) �J��Ԃ����͂�������D���Afor �������ɑ�D��
(vi) �֐��������ɂ�����ĉ��H�֐���Ԃ����āA����ȃL���C���̂���Ȃ���
(vii) �e�Ɋp�A���i�ƃv���O���~���O�̕��@���Ⴄ�񂾂�
�Ƃ��A�v���Ă���̂����m��܂���B������A�֐��^�v���O���~���O�́u�H�킸�����v�œ���Ǝv���Ă���̂ł��傤�B
���̂悤�ȑ����̃v���O���~���O�����E�ł����A�L���N�E�c�N�V�C�֐��^�v���O���~���O�̐��E�͎����ɂ͓���Ǝv���Ă���̂ł��傤�B�i�R�ł��A��k�ł����Ă΁j

�ł����ۂ͓������܂���̂ŁA���S���Ă��������B�C�s����K�v����E����K�v������܂���B�݉Ƃ̂܂܂ł����̂ł��B
���i�h�Ȃǖ��Ȃǂ���܂���B�����_���y�ł��B�ċA�ȂǍŋ߂Ȃ�ȒP�ɂł��܂��B
�������A�d�v�ȃA�h�o�C�X��������1�‚�������܂��B
�܂��� Lisp ����n�߂Ă��������B����΋~���܂��B

�g�b�v�ɖ߂�

(6) �֐��^�v���O���~���O�͑�K�͂ȃ\�t�g�J���ł͎g���Ȃ��̂ł́H

��������������܂��ƁAPerl��Python�ACurl �Ȃǂ̌y�ʋ�����(Lightwight Language, LL)�Ɗ֐��^�v���O���~���O����������ɂ���Ă���悤�ł��B
�֐��^����� LL �͏d�Ȃ镔��������܂����A�֐��^�v���O���~���O�́iLL������ᔻ�I�Ɏg����j�d�ʋ�����ł��A�”\�ł��B
�‚܂�ALL �Ɗ֐��^�v���O���~���O�͒�������֌W�ł��B���̂��߁A�uLL ����K�͊J���Ɍ����Ă��Ȃ��v�Ƃ���ᔻ�́A����̌��ł͐����������m��܂��񂪁A �֐��^�v���O���~���O�Ƃ͒��ڊ֌W����܂���B

����A��K�͊J���ɂ�����I�u�W�F�N�g�w���̗D�ʐ��������āA�֐��^�v���O���~���O����K�͌����łȂ��Ƃ���ᔻ������܂��B
�m���ɃN���X�x�[�X�̃I�u�W�F�N�g�w���ł́A��K�͊J���ɑ΂����‚̉����Ƃ��āA�u�N���X�ɂ�镪���v�u�J�v�Z���v�u�����v���O���~���O�v�Ȃǂ������Ă��܂��B����͊֐��^�ɂ͂Ȃ����̂ł��B�F�߂邵���Ȃ��ł��傤�B

�������A���l�Ɋ֐��^�v���O���~���O�́A�K�͂ƕi���̊֌W�ɂ����āA����������@��񋟂��Ă���̂��m���ł��B
�֐��^�v���O���~���O�͋K�͐��Y���ł͂Ȃ��A�K�͐M�����ɂ����āA���͂𔭊�����ł��傤�B

�g�b�v�ɖ߂�


(*) �y�[�W���͕ҏW������̗v���łȂ��A���҂��ǐS�̙�ӁH�I�ɑς����˂āA����K���������ʂł��B
�t�ɓ����\������呝�y�[�W���Ă��������A���ӂ��Ă���܂��B����ł������؂�Ȃ������̂������ł��B


visitors from 2015/7/26
visitors on today

Lisp �̒���  Android �̒���  �����̒���  �S���̒���  �r�[���R���N�V����

Copyright © 2015 GOMI Hiroshi All Rights Reserved