Ruby �� Array#inject �ɂ‚���

Ruby �̔F�莎�����󂯂��y���� Array#inject �� �킩��ɂ����Ƃ����b�𕷂����̂� �ȒP�ɂ܂Ƃ߂Ă݂����Ǝv���܂��B

Array#inject �͔z��̒l�����v�����肷��̂Ɏg����֗��ȃ��\�b�h�ł��B

$ irb
irb(main):001:0> [1,2,3,4].inject(0) { | sum, i | sum + i }
=> 10

�����I�ɂ͎��̂悤�ȏ����ɂȂ�܂��B

[1,2,3,4].inject(0) { | sum, i | sum + i }
                  `-------,
        loop: 1           0, 1     0 + 1
                                   ~~|~~
                          ,----------'
        loop: 2           1, 2     1 + 2
                                   ~~|~~
                          ,----------'
        loop: 3           3, 3     3 + 3
                                   ~~|~~
                          ,----------'
        loop: 4           6, 4     6 + 4
                                   ~~|~~
                                     `----> �o��

2�‚߂̃u���b�N�����ɂ͔z��̒l���͂���̂ł��� 1�‚߂̃u���b�N�����ɂ́A�O��̃��[�v�̍Ō�̏������ʂ�����܂��B

1���� (loop:1) ��1�‚߂̃u���b�N�����́A �O��̏������ʂ��Ȃ��̂ŁA�����l�Ƃ��� inject ���\�b�h�̈������ݒ肳��܂��B

�u���b�N�����킩��₷�������Ǝ��̂悤�ɂȂ�܂��B

irb(main):001:0> [1,2,3,4].inject(0) { | sum, i | sum += i }
=> 10

�����܂ł͊ȒP�Ȃ̂ł����A���� inject ���\�b�h�� �������ȗ����邱�Ƃ��ł��܂��B ���̏ꍇ�̓������v���ӂł��B

��Ɠ����z��Ŏ����Ă݂܂��B

irb(main):001:0> [1,2,3,4].inject { | sum, i | sum + i }
=> 10

���ʂ͓����ł����B

�����ŁA�u���b�N���̏�����ς��Ă݂܂��B

irb(main):001:0> [1,2,3,4].inject(0) { | sum, i | sum * i }
=> 0
irb(main):002:0> [1,2,3,4].inject { | sum, i | sum * i }
=> 24

�܂������قȂ錋�ʂɂȂ�܂����B

�܂��A����������ꍇ�̓������������Ă݂܂��B

[1,2,3,4].inject(0) { | sum, i | sum * i }
                  `-------,
        loop: 1           0, 1     0 * 1
                                   ~~|~~
                          ,----------'
        loop: 2           0, 2     0 * 2
                                   ~~|~~
                          ,----------'
        loop: 3           0, 3     0 * 3
                                   ~~|~~
                          ,----------'
        loop: 4           0, 4     0 * 4
                                   ~~|~~
                                     `----> �o��

���ɁA�������Ȃ��ꍇ�̓������������Ă݂܂��B

[1,2,3,4].inject { | sum, i | sum * i }
  `--------------------,
        loop: 1        1, 2     1 * 2
                                ~~|~~
                       ,----------'
        loop: 2        2, 3     2 * 3
                                ~~|~~
                       ,----------'
        loop: 3        6, 4     6 * 4
                                ~~|~~
                                  `----> �o��

���̂悤�� �����l�Ƃ��� �z��� 1�‚߂̒l�������Ă��܂��B �܂��A1���� (loop:1) �� �z��� 2�‚߂̒l�������Ă��܂��B ���[�v�̐��� 1���Ȃ��Ȃ�܂��B �������ȗ�����ƁA �z��� 1�‚߂̂�l�������l�Ƃ��ė��p����킯�ł��B

�‚܂�A���� 2�‚������ƂȂ�܂��B

irb(main):001:0> [1,2,3,4].inject(0) { | sum, i | sum * i }
=> 0
irb(main):002:0> [0,1,2,3,4].inject { | sum, i | sum * i }
=> 0

Ruby �C���X�g�[���[ Rumix �������Ă݂�

Windows �‹��ɊȒP�� Ruby �̎��s�‹������t���[�\�t�g���Љ��Ă����̂� �����ɃC���X�g�[�����Ă݂܂����B

Windows�ŃX�N���v�g����gRuby�h�𓱓����邽�߂̘a���C���X�g�[���[�uRumix�v

�܂��A�ȉ��̃T�C�g���� Rumix ���_�E�����[�h���܂��B

Rumix - Ruby Starter Package with Installer

����������Ă��鎞�_�ł́u Rumix 1.00�i�ʏ�Łj�v�u Rumix 1.00�iruby 1.9.1�Łj �v�� ����܂����A�ǂ��炪�ǂ����킩��Ȃ��l�́u Rumix 1.00�i�ʏ�Łj�v�𗎂Ƃ��܂��傤�B

�_�E���[�h�����t�@�C�����𓀂��āA���̒��� rumix_install.exe �����s���܂��B

�u���ցv�{�^���������܂��B

WRITE_0197_01

�u���ցv�{�^���������܂��B

WRITE_0197_02

�u���ցv�{�^���������܂��B

WRITE_0197_04

�u���ցv�{�^���������܂��B

WRITE_0197_06

�u���ցv�{�^���������܂��B

WRITE_0197_07

�u���ցv�{�^���������܂��B

WRITE_0197_08

�u���ցv�{�^���������܂��B

WRITE_0197_09

�u�C���X�g�[���v�{�^���������܂��B

WRITE_0197_10

�I���̂�҂��܂��B

WRITE_0197_11

�҂��܂��B

WRITE_0197_12

�҂��܂��B

WRITE_0197_13

����ŃC���X�g�[���͏I���ł��B

���� ruby �X�N���v�g������Ď��s�����Ă݂܂��B

�f�X�N�g�b�v�� test.rb �Ƃ����t�@�C��������� �e�L�X�g�G�f�B�^�� �X�N���v�g�������܂��B

puts 'hello world!'

�X�^�[�g���j���[����
�u NYACUS (�R�}���h���C���V�F��) �v���N�����܂��B

WRITE_0197_14

[d:\]
$ 

NYACUS �� Linux �̃V�F���̑��삪�ł���֗��ȃc�[���ł��B

cd �� ls, pwd �Ȃǂ̃R�}���h���g���܂��B �E�B���h�E�Ƀh���b�O���h���b�v���ăp�X���w�肷�邱�Ƃ��ł��܂��B

[d:\]
$ cd d:\desktop
[d:\desktop]
$ pwd
d:\desktop

��قǏ������X�N���v�g�����s�����Ă݂܂��B

WRITE_0197_15

"ruby test.rb" �ł� ���ڎw��ł����s�����邱�Ƃ��ł��܂��B

�ȒP�� ruby �̃X�N���v�g�����s�ł���̂� Ruby �̎����׋��Ȃǂɂ� �ƂĂ����ɗ����܂��B