�����������ƥ�Ȥϡ�
�����������ƥ�Ȥϡ��ץ������¹���˺��줿�ͤ����ٻȤ�줦�뤫�ˤ�ä�
������̤���褦�ʷ������ƥ�Ǥ����㤨�С������η���ML�η������ƥ�Ǥ�ñ��"int" �Ǥ�����
�����������ƥ�Ǥϡ��⡹��󤷤��Ȥ��ʤ������η���"int<��>", ����Ǥ�Ȥ�줦��
�����η���"int<��>" �Τ褦�˶��̤���ޤ������Τ褦�˷��γ�ǰ���ĥ���Ƥ�
ML������Ʊ���褦�˼�ưŪ�˷��������Ԥʤ���
�ʤ����ǤϷ��γ�ǰ����ĥ����Ƥ��ޤ����顢
�ƥǡ���������Ȥ��뤫�⼫ưŪ�˿�������뤳�Ȥˤʤ�ޤ��ˤ��Ȥ��Ƕ�ˤʤä��Τ��Ƥ��ꡢ
�㤨�С�fn x=>x+1 �η��ϡ��ϣ�>=1, ��.(int<��> -> int<��>) �Τ褦�˿����Ǥ��ޤ���
�������äƲ������Ω�ĤΡ�
�ץ������¹���˹⡹���٤����Ȥ��ʤ���ʬ���äƤ���ǡ����ˤĤ��Ƥϡ�
����ѥ�����ˤ��ޤ��ޤʺ�Ŭ����ܤ����Ȥ��Ǥ��ޤ���
�㤨�С�����Ū�ʥץ�����ߥ󥰸���Ǥϥ���β����ϥ��١������쥯���Ȥ���
��󥿥��ॷ���ƥ�����Ū�˵�ư����ʥ��١������쥯�������뤳�Ȥϡ�
�ޤ�ɬ�פ��Ȥ狼�äƤ���쥸�����䥹���å���Υǡ�������ݥ��󥿤Ǥ��ɤ뤳�Ȥ�
�Ǥ���ǡ����򤹤٤ƻĤ�������ʳ��Υ����ΰ��������뤳�ȤǤ��ˤ��Ȥˤ�ä�
�����ƥब��ưŪ�˹Ԥʤ��ޤ��������٤����Ȥ��ʤ��Ȥ狼�äƤ���ǡ����ˤĤ��Ƥϡ�
�������Ѹ��¨�¤˲������뤳�Ȥ��Ǥ��ޤ���
����ˡ����Τ褦��append�ؿ��ξ�硢
fun append([], l) = l
| append(x::l1, l2) = x::append(l1, l2)
��������cons cell ��¾�Ǥޤ��Ȥ����ǽ��������Τ��̾�Ϻ����Ѥ��뤳�Ȥ��Ǥ�����
��̤Ȥ����������Ȥ����Ϥ����ꥹ�Ȥϥ��ԡ�����뤳�Ȥˤʤ�ޤ����������������������ƥ�
���Ѥ���ȡ��������������������ʤ�����٤���������������ʤ��ꥹ�ȤǤ����
�狼�ä���硢���ԡ��ò¤»¤ï¿½ï¿½ï¿½ï¿½Ë²ï¿½Åªï¿½ñ¤´ï¿½ï¿½ï¿½ï¿½Ë¤ï¿½Ã¤ï¿½append ��Ԥʤ����Ȥ��Ǥ��ޤ���
����
���β���Ǥϡ��ޤ������������ƥ�˴ؤ���Ƕ����ʸ���㤨�м��Τ褦����ʸ�������
�ɤ�Ǥ�餤�����ξ��;�Ϥ�����Ф���˴�Ť���ñ�ʷ������ץ�������񤤤Ƥ�餤�ޤ���
- Turner, Mossin, and Wadler, "Once Upon A Type," FPCA'95
- Kobayashi, "Quasi-Linear Types," POPL'99
����Υۡ���ڡ��������
[email protected]