�����ȥ�ɤ�����Ȥ����顢�ⶶ����˰�ɼ��

Matz�ˤä�(2007-02-05)
�ⶶ(Maki)����ˤ��:=���ڥ졼���ؤ�ȿ�аո���
�פäƤ�����⤺�äȤ��äȿ�����û����
��:=�פ�ɤ������Ȥ��˻Ȥ��Ф�������������Τ��񤷤������ä˽鿴�Ԥˡ�
����å���ɥå� ����ѥ� | �ޤĤ�Ȥ椭�Ҥ� ������
�ޤ���Ruby�Υ��������ѿ��Υ������פ����˵����Ĥ�����[���Ѽ���:Larry Wall]�Ϥ�äѤ�ȤƤ�Ԥ��ͤ��Ȼפ��ޤ�

��ˤȤäƤ⡢Ruby�Υ������ץ롼��ϰ��ְ��´�������Ȥ����Ǥ��ơ�

�㤨�С��ʲ��Υ����ɤϡ�

foo = 1
loop do
   puts foo
   foo = 2
   puts foo
   break
end
puts foo

1,2,2�Ƚ��Ϥ��ޤ������ʲ���Perl Code��1,2,1�Ǥ���

$\="\n"; # so print does puts
our $foo = 1;
{
    print $foo;
    my $foo = 2;
    print $foo;
}
print $foo;

JavaScript�Ϥޤ��ü�Ǥ��ơ�var������줿�ѿ���lexical scope����¦����ϸ����ޤ���

// double-click to execute
var foo = 1;
(function(){
   alert(foo); // undefined
   var foo = 2;
   alert(foo); // 2
})();
alert(foo);    // 1

��äƸ�̩�ˤ�function local�Ȥ����ޤ���

�ä�Ruby���ᤷ�ޤ�����������ʤ�ޤ������ΤǤ�����Perl��$scalar,@array,%hash,&subroutine,*typeglob�ȷ��ΰ㤤�򼨤��Τ˻ȤäƤ��뵭��(Perl���sigil)����local,$global,@instance,@class�ȥ������פΰ㤤�˻Ȥ��Ƥ���Ȥ������̿��餦�Ȥ����Ǥ�����äȤ�Perl 6�Ǥϡ�twigil�Ȥ��äơ�$*ARGS, &?BLOCK, �Ȥ������ˡ������ܤε�����ü��ѿ�����̤���褦�ˤʤäƤ���ΤǤ���ä�RubyŪ�ˤʤäƤ��ޤ���������Ǥ�$.instance�Τ褦�ˡ����Ӥ�ľ��Ū�ˤ狼�뵭����������򤷤Ƥ��ޤ����ޤ����������󤱤�椨�����ʤΤǤ�����

�ǡ�:=�Ǥ���Matz�ƤǤ�

foo = 1
loop do
   puts foo
   foo := 2
   puts foo
   break
end
puts foo

�Ȥ����1,2,1�Ƚ��Ϥ���롢���ʤ��:=�����������ѿ��ϡ�Perl��my�ѿ���Ʊ�������ˤʤ롢�Ȥ������Ȥ����ꤷ�Ƥ���ΤǤ��礦��?���ä�ή�줫�餹��Ȥɤ��⤽�Τ褦�ʤΤǤ������ʲ����������Ȥ����ä�ʤ�ޤ���

���졢���¤򤵤�˿������ˤʤ�Ȼפ��ޤ����������פ򵭹���ڤ��ؤ���ΤǤ⤹�Ǥ˰��´��礭���Τˡ����٤ϱ黻�ҤȤʤ��...Perl����my��ѥ���ʤ�JavaScript����var��ѥ���ʤꤷ������ RSL (Ruby as Second Language) �Υ桼�����ˤ䤵�����Ȼפ��ޤ���

����ˡ�Perl 6��:=��binding operator�Ȥ��ƻȤ��Ƥ��뤳�Ȥ⤢��ޤ����פ��ѿ�����̾����黻�Ҥǡ��㤨�аʲ��Υ����ɤ�1,2�Ƚ��Ϥ��ޤ���

my $a = 1;
my $b := $a;
say $b;
$a = 2;
say $b;

�ޤ��������ä���Pascal�Ǥ�:=�������Ǥ������̤θ�������黻�Ҥ��̤ΰ�̣�����äƤ⤤���Ǥ��������饹����˴餬���ä��äƷݽѤ���ȯ���Ƥ��뤫�餤���ΤǤ���(�ʤ�Τ��ä���)��the principle of least surprise����Ԥ��ȡ�too surprising�ʤΤǤϤʤ��Ǥ��礦����

....�ԤƤ衢

|foo| = 1

�Ȥ����ΤϤ������Ǥ��礦?����������гμ¤�block local��iterator variable�Ȥ�����������ޤ�����foo := 1����Rubyish�˸����ޤ���|foo|�Ȥ����Τϰ���ruby�餷��construct�Ǥ������������ȥ�������������Ȥ����ո��⤢��ޤ�����

|foo, bar, baz| = 1, 2, 3

�Ȥ��Ф���ⵤ�ˤʤ�ʤ��Ǥ��礦��

Dan the Broken Ruby Speaker