pugs logo

����äƲ���Perl 6?

Matz�ˤä�(2007-04-14)

��ΰո��Ϥ���ʴ�����

  • Functional programming over OOP and Imperative programming
  • Strong typing over weak static typing or dynamic typing
  • Mathematical foundations for concurrency over ad hoc models (i.e. threads)
  • Parsing over regex hackery
  • Implicit parallelism

��äȤ⡢����Ū�ʰ㤤����Ĥ��äơ�Perl 6�ξ�硢������battle�ǤϤʤ�reconciliation�ʤ����͡��ʤˤ�Reconciling the Irreconcilable�Ǥ����顣�Ѥ��񤭤��Ѥ�������񤭤����������Ѥ��������򤤡�

Functional programming meets OOP and Imperative programming

�Τ��� Functional Programming ���������ڤ����ɡ�ï�⤬������ΤȤϰ㤦��OOP�Ǥ�����������ʤ��ͤ����뤳�Ȥ�ͤ���Фʤ��Τ��ȡ�

http://www014.upp.so-net.ne.jp/tetryl/llw2004/ll-samurai.txt
��Hello world�����֥�å��ܥå����� �¤�

��LL���˻¤���Τ��٤ʤ뤫�ʡ�

���ΰ�̣�Ǥϡ�Imperative(̿�᷿)�˸�����OOP�Ȥ���Ruby�μ�ˡ�ϡ�Functional�ˤ�Ȥ���ΤǤϤʤ�����������Perl 6���ȡ�$object.>>op�Ȥ����Τ�OOP�˸�����Functional�Ȥ��ä�������᤮�����������������Ƥ��ޤ������ƤΥץ�����ߥ󥰸���Ϲ�ʸ����ʤΤ�����

�¤�Ruby�⤽��˶ᤤ�������褿�Ȼפ����ʤΤ�Proc���֥������Ȥ�.call���ʤ��ȻȤ��ʤ���proc.call(whatever ...)�������proc[whatever ....]��Functional�ˤ�OOP�ˤ⸫���ʤ����Ǥ�call/cc��yield�Ϥ�����ʤ����ɤ����Perl 6�ˤ�ɸ�������ʤΤ�������ϰϤ����ɴ򤷤���

Strong typing meets weak static typing or dynamic typing

����˴ؤ��Ƥϡ�������ˤ��� weak static typing �� strong typing ���֤��������ƹԤ��Ȼפ���������Strong typing�����Ǥ�̵��������Τϡ��ʤˤ��Haskell���������Ƥ��롣Y Combinator��Haskell��ư���ʤ��Ȥ����Τϡ�����ˤ�����ǹ���������Ȥۤ�Ȼפ���

Perl 6�Ǥ�Dynamic��Static�����˺��ߤ������롣�¤Ϥ�����ʬ��Larry���������ֶ줷��Ǥ�����ʬ�ʤΤ����ɡ�multi(Ʊ̾�δؿ��������˱����Ƹ��̤μ������ƤФ����)�μ��������ʤ�ǤޤäƤ����Τǡ��ܽ�Ϥ��äƤ��롣

Mathematical foundations for concurrency meets ad hoc models (i.e. threads)

����Ϥɤ��餫�Ȥ����ȸ���Ȥ��̤Υ쥤�䡼��°����褦�ʵ������ʤ��Ǥ�ʤ��Τ����ɡ���������ǥ��ݡ��Ȥ��Ƥ����Ķ�������Ϥʤ�������Ū�ʤΤϡ�concurrent�˽�����Τϸ�������Ǥ褭�˷פ�äƤ��������������ˤ����Ƥ⡢Perl 6�Ϥ��Ǥ˥��ݡ��Ȥ�Ϥ���Ƥ�Τ�404 Blog Not Found:Parallel Scripting Now!�˽񤤤���

�ȤϤ�����ΤΡ���������ǰ����񤷤��Τϡ���߰�¸�μ�ư���С����ΤȤ��������Τ�������Ǽ������Ū�˲�褷�Ƥ��ɬ�פ����äơ����ΤȤ���Haskell�ˤ���Perl 6�ˤ�������ǽ�ʤ鼫ư������������Ƥ����Τϡ�@array.>>sqrt�Τ褦�ʡ���߰�¸���ʤ���礰�餤�ǡ�����ʳ��ΤȤ������Ǽ�ǻ��ꤷ�ʤ���Фʤ�ʤ���

��Ϥꤳ�Τ������ư�����ܳʲ�����ˤϤޤ�����˽����Ǥ���ϡ��ɥ���������ä���ڤ���ɬ�פ�����Ȼפ����ϥå����Ȥ����ΤϤ�������ʤ���ΤϤ��ޤ궽̣�򼨤��ʤ���Τ�����

Parsing meets regex hackery

�Τ��ˡ�regexp�����Ǥʤ���Τޤ�regexp�ǽ������褦�Ȥ��Ƥ����㤬�����regexp�����Ѥ��줬�����Ȼפ��ޤ���Parsec��������͡�

�¤Ϥ�������Perl 6�κ���Υ���ΰ�Ĥǡ���Ϥ� regexp �ǤϤʤ� rule �ȤʤäƤ��ơ�Perl 6��syntax���Τ�Τ�����ǽ񤫤��櫓�ʤΤǡ����� parse �ˤ�Ȥ��롣

Ʊ���ˡ�ñ��� regexp ��ɽ�����䤹���ʤäƤ��롣�Ŀ�Ū�˴򤷤��Τϡ�(?:I|need|no|capturing)��[I|need|no|capturing]�Ƚ񤱤�褦�ˤʤä����ȡ��Ȥ�����(?-xism:...)���ѻߤˤʤä����ȡ����졢�㤷��(��|���ˤ�)���ä��Τǡ��ܤ�������������Υ��饤���ǡ�

Implicit parallelism

�����concurrency�ΤȤ��������������Ȥ��ꡣ

�ޤȤ�

Notes on Haskell: Fight the next battle
Haskell may not be the next thing, but whatever the next big thing is, it's probably going to have Haskelly fingerprints all over it.

�����������Ȥ��ʡ�

borg

Dan the ��camel