120901fp key
DESCRIPTION
函数プログラミングの集いで発表したスライド. 後半についての詳細を知りたい方には, Hudak らの A History of Haskell をお薦めします.TRANSCRIPT
®Ðę�������m´ő��ŋ�
!04=?60�$,6,9:���6=69,.�ŕÐ�������mùP��� ��49�):6A:�� ���� �M�SŎmÔ�Á�¼Á«���ĸğ
�������Ŗŀ�Á¥À��ÐÁĨ�����(.?0.9�ou
�Áæ¥À��ÐÁHмäōĥĮ�*052:2��(><9<4��'$./9��'�.:9����¬Ųƈü¼���²ĕäċ®ü¼�Ń¹mïĀîü¼���ŻøŏƑƐü¼�
����¥À��мå×ÁĥĮ�'�.:9��)A/E�� .?8299�����ħÊð®ü¼���ƌőŔü¼
Ìún�Áì¶�
Ŕ
ĥČ������mßïHûħńěùĸÜġ�Řĺ^hØÝÙ
®Ðę�������Ċėmz}�©�¥ ĠřųÁõĠř�©����
`mijF»��üóu���M��§jËó�©�¥�ª�ŢşŪÒj�£�¦ª�mgUhżŦpЫo�(><<3�*A::6@�i
お知らせ2012年9月1日
これからお話しする内容は、あくまで一個人の主義・主張および見解であり、所属機関・所属団体を代表して発言するものではありません。「○○○をお辞めになってから批判してください」というのはお控えください。
�Ök¢z§kJ
Y{TxľŁ}Õ²[s]
�
�
®ÐęÙċ}
ñcfnPXjP
®ÐęÙċni{I
�
�,=6077
�70,9
%�,87
(.,7,
�7:5?<0
�:88:9�"4=;
Qƒ��±Éo©�mpJĝÅoĤÜŖo©�yËÚĚŵißÝ^hUt`
(>,9/,</�#"
(.3080
�<7,92
�
,@,
��
��� &A>3:9
'?-A
&0<7
®ÐęÙċni{I
�
�,=6077
�70,9
%�,87
(.,7,
�7:5?<0
�:88:9�"4=;
Qƒ��±Éo©�mpJĝÅoĤÜŖo©�yËÚĚŵißÝ^hUt`
(>,9/,</�#"
(.3080
�<7,92
�
,@,
��
��� &A>3:9
'?-A
&0<7
®ÐęÙċni{I
�
�,=6077
�70,9
%�,87
(.,7,
�7:5?<0
�:88:9�"4=;
Qƒ��±Éo©�mpJĝÅoĤÜŖo©�yËÚĚŵißÝ^hUt`
(>,9/,</�#"
(.3080
�<7,92
�
,@,
��
��� &A>3:9
'?-A
&0<7
®ÐęÙċni{I
�
�,=6077
�70,9
%�,87
(.,7,
�7:5?<0
�:88:9�"4=;
Qƒ��±Éo©�mpJĝÅoĤÜŖo©�yËÚĚŵißÝ^hUt`
(>,9/,</�#"
(.3080
�<7,92
�
,@,
��
��� &A>3:9
'?-A
&0<7
®ÐęÙċni{I
�
�,=6077
�70,9
%�,87
(.,7,
�7:5?<0
�:88:9�"4=;
Qƒ��±Éo©�mpJĝÅoĤÜŖo©�yËÚĚŵißÝ^hUt`
(>,9/,</�#"
(.3080
�<7,92
�
,@,
��
��� &A>3:9
'?-A
&0<7
®ÐęÙċni{I
�
�,=6077
�70,9
%�,87
(.,7,
�7:5?<0
�:88:9�"4=;
Qƒ��±Éo©�mpJĝÅoĤÜŖo©�yËÚĚŵißÝ^hUt`
(>,9/,</�#"
(.3080
�<7,92
�
,@,
��
��� &A>3:9
'?-A
&0<7
®ÐęÙċmã÷nI®ÐUěh[fĝ_zI½Ŝ_xlUjËóŇ_xlUoL
ýʼnŊøÊUOz�Ŭó¼ëějXoĢŹźĜêpL
ĵè½UŇŗ��ĢZ{fPzIcwcwţąÝjpL
ęġümÄð}ØdIŇYĦUjËóŇ_xlUoL
お知らせ (2)2012年9月1日
問題文にあった「関数型」は、「言語」に対する形容詞として適切ではありませんでした。従って、この問題につきましては全員正解 (3点) として扱います。
®ÐęÙċ}
ñcfnPXjP�
�®ÐęÙċ�hPQĴċ
®ÐęÙċ}
ñcfnPXjP�
`u`uK®ÐLhn
�����gPQ®ÐhnĶjzvoid inc (int* x) { ++*x; }
ēņhuPQĂ{l[hwO�¡e�¨PjpùUtb�
�
*¨Ą +��Tx�pm®ÐnFѲmÊĈ}Ĥa]�D�m«�ù����gOzGK¾fm�,�N���k£[FE�,�-��N���jz�-�N���U�dbXĠú]zL
®ÐHį®ÐmĒ��B ����C����B�����C�mhVôÏpËó����G�� �������������H����G�� ����� ����� �HôÏpŞËó����G�� ������������������H����G�� �������H��ɸËójUV�
®Ðni{I
�
int random(int p) { return (rand()%p);}
void putchar (int c); /* 標準出力へ 1 文字書き出す */
int getchar (void); /* 標準入力から 1 文字読み込む */
void inc (int* x) { ++*x; } /* x の指す値をインクリメント */
お知らせ (3)2012年9月1日
「どれが関数か」という問題において、入力および出力の集合が明示されておりませんでした。従って、この問題につきましては全員正解 (各1点) として扱います。
®ÐTķTnù�êÓ�� �
��į®Ðk�Rz�������S�>.;1<:���� ��S�>.;1<:
¢°ù�}�í_o®Ðkjz�����=oʼn��ûėãoľĹ��oж�����DDD������S�>.;1<:�����EEE��� ��S�>.;1<:
�
int random(int p) { return (rand()%p);}
®ÐTķTnù�êÓ����
¡\�.�jx¡\âòjmg®ÐI����B<61��S�=A@05.>����B<61��S�=A@05.>
ÛõÄĐč}ëń]zhį®Ð�����ûėãoľĹ��oж����DDD��S�=A@05.>����EEE��S�=A@05.>
�
void putchar (int c); /* 標準出力へ 1 文字書き出す */
®ÐTķTnù�êÓ����
��į®Ðk�Rz�B<61������S�42@05.>�B<61������S�42@05.>
¢°ù�}�í_o®Ðkjz�����¿Í`}®KÂÄ��oж��DD�@�������S�42@05.>��DD�@��������S�42@05.>
�
int getchar (void); /* 標準入力から 1 文字読み込む */
®ÐTķTnù�êÓ����
¢°ù�U�49>��jx®Ð�D��B<61��S�6;0�D��B<61��S�6;0
�°mĐč}ëń]zhį®Ð������M�oĪı��oж
¢°uĐč}ëń]zh®Ð�����Doʼnj�M�oĪı��oж
�
void inc (int* x) { ++*x; } /* x の指す値をインクリメント */
®Ðºm¤µnŃÐ
ĴŌknį®Ð�B<61��������B<61�����S�42@05.>
¢°å×}Ýv[f®Ðº�����¿Í`}®KÂÄ��oж
�°å×}®Ðk[f®Ðº���¿Í`}®KÂÄX{ʼnroËó�oж .?8299o¢��oĈWÁr»Ō
�
int getchar (void); /* 標準入力から 1 文字読み込む */
ŐaÒ����,=6077ĵè½üĆ
20>�3,<�nĵè½UjP42@�5.>�cowopţąÝYĦUĠřÃoسňmţąÝYT}
20>�3,<�nĵè½UOz�5.>�Ňil[�!'��5.>�Ň�ĵ`
��
�.;<%<6�j� .?8299�5@@=���CCC�8:<;<?�;2@�C9<4����5@:9�-� ���� .?8299mpţąÝYĦUoX5@@=���1�5.@2;.�;2�7=�8.FA�E.:.:<@<������5@@=���1�5.@2;.�;2�7=�;</?A;�����
®ÐºmĊÈÍijm®ÐUį®ÐkjzS`{3���4�jUVě�ĈWzV4�oËóÙi¿ÍжYĠ�}
3�o°Íж�ĠW}ğçYT}��Xw�
3�YŞËóÙ`}ĥĐêYT}
đĞ}ëRf®Ðº]zqV��
®ÐęÙċIÙċU®ÐęI�©�¥ Çoko¹íZwËóL
¢�°mù�nIŇęZùĸl{c~YжLŇĦ^ùĸl{kVÅij`}oL
âĂmhY|¨ĄUď[PkoùĸiwÎ_}ùŀiķÐiZlU
�
gn®ÐęhnI���������~�pmĕîsj�kYËóiT}zVlăŒŞËóoŁōpiZ}Į|Û][
Ùċk®ôjW¹Ìþðñóyĵ|ʼn�Ŀ÷^hËóÙľĹroŁō��¡ª�iįĬƎ^ŅģyđZy`]pùĸmŰœ
��
dsyÙPaPYhnJ
��5@@=?���@C6@@2>�0<:�8?8;.0�?@.@A?����������� ���
dsyÙPaPYhnJ
��5@@=?���@C6@@2>�0<:�8?8;.0�?@.@A?����������� ���
5@@=?���@C6@@2>�0<:�8?8;.0�?@.@A?�������������
hnPQummJ
¹àk®ÐęÙċhÙQ�UÜPU[gXoĉŚđmwŮº3A;0@6<;.9�9.;4A.42�jUVŐĸw
��
5@@=?���@C6@@2>�0<:�0.:9<2/.�?@.@A?�����������������
œqiuœqiuăĘÆıºð^[pOIJņŝq°^åŠÙP
lzrO&A99PpO�§Plom
�ĪĔŨƍłoƁøſYO´śPåĄpƏvd{^U
��
�®ÐęÙċ�hPQĴċ
®ÐęÙċ}
ñcfnPXjP��
�®ÐęÙċ�hPQĴċ
®ÐęÙċ}
ñcfnPXjP��
®Ðę�������U[v]PhPQÈģÑÉg
Ò}ļ[fJ
®ÐºnÙċkwx^¹Ìþð
�
®Ðºkwzėò
�
®Ðºkwzėò
�5@@=���CCC�>21/A99�0<:�0?�*.@2996@2�2;-!&+�)21��A99��;2>4E��>6;8�� ���������
®Ðºkwzėò
�5@@=���CCC�>21/A99�0<:�0?�*.@2996@2�2;-!&+�)21��A99��;2>4E��>6;8�� ���������
®Ðºkwzėò
�5@@=���CCC�>21/A99�0<:�0?�*.@2996@2�2;-!&+�)21��A99��;2>4E��>6;8�� ���������
®Ðºkwzėò
�5@@=���CCC�>21/A99�0<:�0?�*.@2996@2�2;-!&+�)21��A99��;2>4E��>6;8�� ���������
®Ðºkwzėò�����m�±[mÞĩ¿°Í�M�oĨ~oƅŷYČŧko�M�YŁō�ò\}XYÐĖ
�����m�öHâ�UîĻ¢�¤M§Ùmz}ĩʸīďøÝmz}Ô»Ņģoõ¯
��
®Ðę�������m´ő
s^nÙċmŀĭTx �����=���Ûõ���mŏ �¤M¦ª���ª���¥ �ûė
���=���&"mĀĜjÎīãƃĸR��ª�¦R½ŗùĸ$!*(��"��%0�.>@5E��oŽ¼
���=����&"mŏ ĴŭK³ŭoŶąoŸƋlăŒß¿oèÞYÃo�(mŁō
�
λx.λy.xÁĎ©IJć
ÙċkSXz���ÛõmÚÇÊ!*,!%oŶąÆéŕġ���ƆĶãƃ
�(��$.;16;���� �âćÆéŕġ���ĽļÜġ
����*0<@@�.;1����*@>.052E�����¬[P�����Äą��Mª���j�©�¥ Ġř
�)���A>[email protected]�.;1�"���.>96;4@<;������*052:2�oũÆ��M�oĭ¿
����*A??:.;�.;1����*@2292������
(�("�mŏ ���������������+A>;2>�������
Γ ⊢e : τü¼ÁTx s{aÙċ"����������������������������*0<@@������$<460�<3��<:=A@./92��A;0@6<;?
"����#"����������������)��%69;2>������$<460�3<>��<:=A@./92��A;0@6<;?ÀöÆ·áĎÐ�×Æj^dĤÜŖ
&��������������������������(><@86;������(><4>.::6;4��<:=A@./92��A;0@6<;?ŇęZ¥ �ûė�Řĺ^dùĸ
��
FORTRAN&BNF
®Ð�������mŅİ�&����"��������������������.08A?��������ªě�©�¥�ª�X{űš
ØÝÆĒčX{ĔÝê���M§
�(�·ÕpĝmƂ^UùĸiplU
�.08A?�oĂýÓY¬ZlžŴ
��
ĿĬĦçm��ąËªmÏÐmĦçnÃÇ� �����>621:.;�.;1����,6?2������ĿĬĦçĚh`mÂé©Èģü� �(�� 2;12>?<;�.;1�"��%<>>6?������
(�("�mĦçÅłmûĹh�!'�� ����+A>;2>����������
���ň¿kãeW¹ĺ� ����+A>;2>������ā������ ���A>>E�.;1�)���2E?������
��
®Ðęk®]z�à�¸ ������ =>�"4=;�.:910<09.0ƇÔť
�� ��� =>��&���A;0@6<;.9�(><4>.::6;4�$.;4A.42� .;1��<:=A@2>��>056@20@A>2ƇÔť
¦k�ÿ[f����&�hjz��
®Ðę���mŒĖ�mÙċmĽ¯ĻŋYē»iT}Ďū¾_Ļŋµiwůóoùĸ�Ćÿ
ĿĬĦçbXguÜÐ*�*$�R�#)��R�%6>.;1.��+A>;2>��� $.FE�%$���A4A?@??<;�.;1�"<5;??<;��� '>C299��,.192>����9I�� A1.8��� !1���>B6;1����92.;��(9.?:2672>��� (<;12>���.6>/.6>;����.6?E�� .99������
�,=6077�mŏ ÜWmÙċ}ā�]zatk·��(�������iæmÖġÖġmÖġ�únhŎŊ�ĖÌæĨefd+A>;2>o%6>.;1.�İì
á§n��,=6077��?<<A�Txþ¶Èûėoƀ���¥�ŸÞjËÚ��A>>Eml}paefdYN
sht®Ðęm¨Ą}ĉ³[aduyóàÆléŕiËóXŤXYúçùĸil[ăŒmÀ`}ńČƉ
®Ðę�������m´ősj�kOƄPoöi`utb�OÑPoöpZfjƊXYö`pa
�
�
������������������� ����������������