�O��Ɉ��������AScheme����̏����n�AGauche���J�����Ă���썇�j�N�����A�N���[�W���̋@�\�������A���^����ƃI�u�W�F�N�g�w������̊W�ɂ��ĉ�����Ă����܂��B����́A�N���[�W���ƃI�u�W�F�N�g�̂��[����T�����܂��B
���̘A�ڂ̃o�b�N�i���o�[�͈ȉ��̒ʂ�ł��B�����Ă��y���݂��������B
�A�ڑ�1��F�T���ł�������v���O���~���O����̐V�����y�O�ҁz
�A�ڑ�2��F�T���ł�������v���O���~���O����̐V�����y��ҁz
��l�̂��߂̃u���b�N�{�b�N�X�lj��u���\�\�N���[�W���ƃI�u�W�F�N�g�̔����ȊW
�@C++�I�ȃI�u�W�F�N�g�̐��E�ł́A�I�u�W�F�N�g�̎��̂Ƃ́u�ЂƂ����܂�̍\���̂Ƃ��ă�������ɒu���ꂽ�C���X�^���X�ϐ��̒l�v�ɂ����܂���B�I�u�W�F�N�g�̃|�C���^�����A����͎�����A���̍\���̂ւ̃|�C���^�������Ă��邱�ƂɂȂ�܂��B�N���[�W�����u���v���S�Ō��Ă���ƁA���̎��̂́u�I�u�W�F�N�g�v�̎��̂Ƃَ͈��Ȃ��̂̂悤�Ɏv����ł��傤�B
�@�m���ɃN���[�W���̃i�C�[�u�ȁu�����v�́A���|�C���^�Ɗ��ւ̃|�C���^�������������̂ł��B�������A�N���[�W�������̂悤�Ɏ�������u�K�v�v�͂���܂���B
�@C++�I�I�u�W�F�N�g�́A���̗��j�I�������i�[�I�Ɍ�����C����Ƃ̌݊����m�ہj�̂䂦�ɁA�C���X�^���X�ϐ�����������ɂЂƂ����܂�ő��݂��A�܂����̎������I�u�W�F�N�g���g�̎����ƈ�v����K�v������܂��B���Ƃ����̃C���X�^���X�ϐ����A�ق�̈ꕔ�̃��\�b�h���炵���G����Ă��Ȃ��Ă��A���邢�͈ꎞ�I�ɂ����g���Ȃ��Ă��A�ł��BC++�̊�ɂȂ���C�̍\���̂��A���ۓI�ȕ����^��\�����邾���łȂ��A��������̃��C�A�E�g�̎w��ɂ��g���Ă������c�ƌ����܂��B
�@����ɑ��N���[�W���́A���̒�����Q�Ƃ��Ă���ϐ����ǂ��ɑ��݂��Ă��\���܂���i�N���[�W�����g�������Ă���ԁA�{�̂��猩����������j�B�Ⴆ�A��������ɕύX����Ȃ��ƕ������Ă��郍�[�J���ϐ��́A���̏������l���N���[�W�����ɃR�s�[���邱�Ƃŏ����\�ł��Bmap�ɓn���N���[�W���̂悤�ɁA�������Ԃ����[�J�������Z�����Ƃ��͂����肵�Ă���ꍇ�́A���[�J���X�^�b�N�ɒu�����Ƃ��ł��܂��B�����ĉ����A�N���[�W�����g��������ÓI�Ɂi�܂�A����ǂݍ���œ����c���[�ɓW�J�������_�Łj���ׂĔ������Ă���ꍇ�́A�{�̂��C�����C���W�J���Ă��܂����ƂŃN���[�W�����̂��̂̑��݂��������邱�Ƃ����\�Ȃ̂ł��B
�@�����N���[�W���̍œK���헪�́A���^���ꂩ���킢�ł�20�`30�N�قǑO�ɐ���Ɍ������ꂽ���ƂŁA���܂ł͈Öق̗����ƂȂ��Ă��܂��B���̂��߁A���^����̃v���O���}�[�̓N���[�W���������Ƃ��ɁA�I�u�W�F�N�g���u����Ă���v�Ƃ������o�i�Ⴆ��C��malloc��AC++/Java��new���ĂԂ悤�Ȋ��o�j���قƂ�ǎ����܂���B���ʂƂ��āu�����v���A���P�[�g����Ă��܂����Ƃ͂���܂����A����́i1�j�ǂ�����Ă��������Ȃ��A���P�[�V�������A�������́i2�j�R���p�C��������Ă��邩�A�̂����ꂩ�Ȃ̂ŁA�C�ɂ��Ă��d�����Ȃ�*�̂ł��B
�@���^����̃v���O���}�[�ɂƂ��ẮA�N���[�W���Ƃ͂ނ���u���̋��R�[�h�̃u���b�N�v�ł��B���͉������ł���A�p�r�ɉ����Ď��ۂ̒l�ߍ��ތ��ł��B�R�[�h�Ɏ����悤�ȃp�^�[����������ƁA�ω����镔�������ɂ��āA���ʕ��������Ƃ��Ă�����o���܂��B�����ĕω����镔�����A�������Ƃ��ė^���Ă��̂ł��B
�@��������Ă݂܂��傤�B�^����ꂽ���̏W��numbers�����ׂđ������l��Ԃ���sum-of-numbers�́A���X�g1�̂悤�ɏ����܂��B����A�^����ꂽ���̏W������A���鐔�l���傫�����̂�����I�Ԋ�more-than�́A���X�g2�̂悤�ɏ����܂�*�B
(define (sum-of-numbers numbers)
(define (loop sum nums)
(if (null? nums)
sum
(loop (+ (car nums) sum) (cdr nums))))
(loop 0 numbers))
(define (more-than n numbers)
(define (loop out nums)
(if (null? nums)
out
(loop (if (> (car nums) n)
(cons (car nums) out)
out)
(cdr nums))))
(loop '() numbers))
�@���̂悤�ɁA���[�J����loop�ōċA����͔̂��ɂ悭����p�^�[���ł��B���҂�����ׂ�ƁA���X�g3�̂悤�ȋ��ʍ\��������ƕ�����܂��B�{�̓��ŕω����镔���́A<�����l>��<�o�߂Ɓicar nums�j���g������>�̕����݂̂ł��B���������Ƃ��Ĉ����œn�����Ƃɂ���A���ʍ\�������Ƃ��Ă�����o�����Ƃ��ł��܂��i���X�g4�j�B
(define (���O numbers)
(define (loop �o�� nums)
(if (null? nums)
�o��
(loop <�o�߂�(car nums)���g������>
(cdr nums))))
(loop <�����l> numbers))
(define (fold proc seed lis)
(define (loop seed lis)
(if (null? lis)
seed
(loop (proc seed (car lis)) (cdr lis))))
(loop seed lis))
�@���̕��ifold�ɁA�ω����镔�����O����^���Ă�邱�ƂŁA����sum-of-numbers��more-than���č\���ł��܂�*�i���X�g5�j�B����͂ق�̈��ɉ߂��܂���B���l�ɂ��āA�N���[�W���Ƃ͂�������Ŏ����u���i���v���Ă䂭��i�Ȃ̂ł��B
(define (sum-of-numbers numbers)
(fold (lambda (sum elt) (+ sum elt)) 0 numbers))
(define (more-than n numbers)
(fold (lambda (out elt)
(if (> elt n) (cons elt out) out))
'() numbers))
�@���������A��{�I�ȕ��i���̎�i�ł��郍�[�J���ϐ��Ƃ����T�O���̂��AScheme�̌���d�l�̓N���[�W����p���Ē�`���Ă��܂��B���[�J���ϐ�x�Ay���������X�g6�̎��́A��`��Ax�Ay���������Ƃ���N���[�W��������Ē����ɏ����l10�A20���������Ƃ��ČĂяo���Ă���̂Ɠ����Ƃ���Ă��܂��i���X�g7�j�B
(let ((x 10) �� �ϐ�x��10�𑩔��ix���`�j
(y 20)) �� �ϐ�y��20�𑩔��iy���`�j
(sqrt (+ (* x x) (* y y))))
((lambda (x y) (sqrt (+ (* x x) (* y y))))
10 20)
�@�������A������Scheme�����n��let�\�����������邽�߂ɃN���[�W���̎��̂��A���P�[�g������͂��܂���i���������������Ȃ邽�߂ł��j�B�������A���̂悤�ɃN���[�W���������`���s���Ă����A�N���[�W���œK���̃A���S���Y������l�ɓK�p�ł��܂��B
�@�N���[�W���ɂ��I�u�W�F�N�g�̎��������l�ł��B�v���O�����̎��ʒʂ�ɃN���[�W���̎��̂����������K�v�͂���܂���B�u�N���[�W���ɂ���āi�I�u�W�F�N�g�Ȃǂ��j��`����A��ʓI�ȈӖ���͂�K�p�ł���悤�ɂȂ�v�Ƃ����������A���^�̃A�v���[�`����͋ɂ߂ėL�p�Ȃ̂ł��B
Copyright © ITmedia, Inc. All Rights Reserved.