+ All Categories
Home > Documents > Functional Programming Using Calm Light

Functional Programming Using Calm Light

Date post: 11-Sep-2021
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
140
Transcript
Page 1: Functional Programming Using Calm Light

����������� ����������� � ����������������������������� ��"!#�

$&%('*)�+-,.$0/2143�5

6�/73�18/79:5<;-=>=@?

Page 2: Functional Programming Using Calm Light

A BDCFEHGICFEKJ

L MONPRQOS8TVUXW-PRYZS8N [

\ ]_^a`cb@dfehg8`ai�j�kcl7g8m8l7i�nonKep`am qr sVU.N8W-PRYZS8N�tu uZt�N4vwU4t�v�xzy {|�}Z~ ���������7�����-�8�(����:�����7��O�����-���7��-�2�R��������������������������������������������������������������~R�|�}�| ��������� �p�-¡��¢���£������������������������������������������������������������������������������~R�|�}�¤ �������¥���¦�-�§��¨�©�-¡ª�«��� ������������������������������������������������������������������������~7~

¬ ­�tyRY®W�W-S8N8W-x�¯8PRy L@¬¤�}Z~ �w�7°@���*±7�:�8���@�7°²��������������������������������������������������������������������������������~R¤¤�}�| ³V±´�O����-�����7�8µV�(���7¡��:¶z°��·�R���h���7��"����±´�´�¸���R������������������������������������������������������~*¹¤�}�¤ �c�@°�R�º����������������������������������������������������������������������������������������~R»¤�}¼¹ ½¾����:�����7���������������������������������������������������������������������������������������~-¿¤�}�» À#�:Á�@�������7��#������������������������������������������������������������������������������������~-¿¤�}� Ã_�-�·�����O�.�-°�°@�¢�Z�*�f�����7�����������������������������������������������������������������������������~RÄ

Å ­�tyRY®W P¦Æ�¯�xzy r�L¹}Z~ Ç"��¡�È�*�¦�#�������������������������������������������������������������������������������������É|�~¹}�| Êc�@�-���R�-�˱-�O�����R�£�����������������������������������������������������������������������������É|-¹¹}�¤ Ì7���Í�¸���@� �-�§Ë�·��-�¦�2�:���*�¦�Î���������������������������������������������������������������������É|7¹}¼¹ �w��°@���R�o���������������������������������������������������������������������������������������É|@¿¹}�» Ã_�-�·���*������-�§�°�-���·�*����Ï(¡ �-�¦�·�@�����D�����������������������������������������������������������É|7й}� ½¾����:�����7��������������������������������������������������������������������������������������ɤ7�

[ ÑcY�yÒPRy ¬�¬»�}Z~ Êc�@�¢��§2�¸�����¢�����¦�º�������������������������������������������������������������������������������ɤ7¤»�}�| ³Ó¶z���:�7�:���������:�¸�*¡��*�>�¦���(���7¡��¢�����¦�*µV°�-�����*����Ï(¡��-�¦�·�@�¸�������������������������������������������ɤ-¹»�}�¤ ½¾����:�����7�� �-±7�*�c�¢�����¦� �������������������������������������������������������������������������ɤ7»

Ô Õ�yÒxzQOÖ�T8x2×�N4x�T0P:Æ.¯�x�y ¬XØÂ�}Z~ ÃV���z§@��:�"�Ù�@°�R���������������������������������������������������������������������������������ɤ@¿Â�}�| Ì7��¡É���@°�R�������������������������������������������������������������������������������������ɤ7ÄÂ�}�¤ Ì7��¡�¡��-��� ������������������������������������������������������������������������������������¹>»

~

Page 3: Functional Programming Using Calm Light

| Ú Û�Ü�Ý.ÞaÜ�Ý_ß\7\ à i4nKjâá#epm8ãwdËä-k åb�e©æ�b�ä ç�qØ èéU�P*tê.uZxëTwt�P*tëy*PRQ2U8W-P-U8QRx�y Å�{¿>}Z~ ì#���*��Ïp§@�:Á���R§¥¡¨���:�-È@���¨§��-�¦����������:�����·�R� ������������������������������������������������������¹>Ä¿>}�| ������í�î-ï ���@°�ð�������������������������������������������������������������������������������É»7�¿>}�¤ ñ#���¦�O���ò���������������������������������������������������������������������������������������É»�~¿>}¼¹ ���@�7°�*µVó7ô8õ´ö¾î¨�-�§¥ïz÷2í����������������������������������������������������������������������É»7|¿>}�» Ã��-���@¡��7��°��@����¡ø�-�§�¡����¦�-È@����§��-�:����������:�·�����R�����������������������������������������������É»-¹

ù ú#yRW-t¯�Y©N4v0û�QRSwüýW-Swüþ¯VU�P*t�PRY�SwNXy2ÿ�x��.W-x�¯8PRYZS8N8y [�[Ð�}Z~ ³Ó¶¾�:�*°������7�� ���������������������������������������������������������������������������������É»7»Ð�}�| � �´�Z�Ù�¸�����-���:¶�:�*°������7�������������������������������������������������������������������������É»7ÂÐ�}�¤ �w�¦�-°�°@�������:¶¾�:�*°������7�� �����������������������������������������������������������������������É»@¿Ð�}¼¹ Ã��-���@¡��7��°��@����¡ø�-�§��:¶�:�*°������7�� �������������������������������������������������������������É»7Ð

{ ­�tyRY®W�Y(N8¯VU4P��@S8U�PR¯_U�P [�{Ä�}Z~ ÃV�����>�¦�fÈ@�¸�����>°��R� �����������������������������������������������������������������������������É»7ÄÄ�}�| � ����°���� �������������������������������������������������������������������������������������ÉÂ�~Ä�}�¤ �h��°���� �����������������������������������������������������������������������������������������ÉÂ7|Ä�}¼¹ �a��f�����:�Z�"�7��Á����R�ø���������������������������������������������������������������������������ÉÂ7|

L���PRQOx>t�üòy�t�N8T ¯wtQ-y*x�Q-y ÔX[~R�¾}�~0Ì7���·�R�-¡ ���������������������������������������������������������������������������������������ÉÂ7»~R�¾} |�Ì7���·�R�-¡�¡ �-�¦�·�@����� �-�§�°�f�¦���*�¦� �������������������������������������������������������������ÉÂ@¿~R�¾} ¤<Ã_�-�:�-¡��*���*��� �*�R§�°�-�:���*�¦�����������������������������������������������������������������������ÉÂ7Ä~R�¾} ¹ ½¾���������*� ���R�2§2�¸���o�����������������������������������������������������������������������������ø¿´Â

LL��P*t�NXTwtuZS8N�x ¯�QOSv4QOt�üòy�t�NXT�y*x�¯wtQRt�P*xòW-Swüþ¯�Y®u�t�PRYZS8N Ø�{~7~2}�~0Ì7�¦�f�§��O���7����°����2�7�¦�-¡ �������������������������������������������������������������������������ø¿´Ä~7~2} |<ÃV���7�7�¦�f¡ ����� �Í�*±7�*�¦�O�8Á����R���������������������������������������������������������������������ÉÐ7�~7~2} ¤0ñ#È�����¦�2�:�����7� ���������������������������������������������������������������������������������ÉÐ7|

\7\7\ �Fb�g8nKkajpå¾d7å å��ai�nokajhå ���L�r���8Ñ ÿ���.ü�tu®u Ñ_t�N�v8U�t�vx ùXØ~R|¾}�~òñ�Ì>�ë�fÈ�����¦�7�:� ���@�@�¦�O¶ ���·�*�R�<�����������������������������������������������������������������ÉÐ@¿~R|¾} |<Ã_�-�:�h������ñ�Ì>� °����7�2�¦�-¡ �����������������������������������������������������������������������ÉÐ7Ð

L>¬�Õ NP:Æ.¯�x�T<yÒxü�t�NPRY®W7y�S�û���8Ñ ¯�QOSv4QOt�üòy {�¬~R¤¾}�~0Ì7�*¡ �f�>�����#±-�O�����R� �����������������������������������������������������������������������������ÉÄ7¤~R¤¾} |�Ì7�*¡ �f�>�����"�(����:�����7�� �������������������������������������������������������������������������ÉÄ-¹~R¤¾} ¤<³Ó¶¾�-¡�°@�¸�R�������������������������������������������������������������������������������������ÉÄ7»

L7Åòú NXWfSXT�Y©N4v�QRx�W@U8Q-yRYZS8N {XØ~*¹�}�~ë½w�¢¶�°�-���@� �:�7¡�È@����-���2�¦�������������������������������������������������������������������������ÉÄ@¿~*¹�} |����R�:���:�h���7� �7�"��°�����¡�������±7���:�7������·��:�£�������������������������������������������������������ÉÄ7Ð

Page 4: Functional Programming Using Calm Light

Ú Û�Ü�Ý.ÞaÜ�Ý_ß ¤

L�[��P*t�PRY�W P:Æ.¯�Y(N�v��a¯�S�u�ÆVü S�Q´¯��8Y�yfü£t�N8T<P:Æ.¯�x�y*Æ_NP���x�yRY®y {�{~R»¾}�~ë���������@°�����������*¡ ���������������������������������������������������������������������������ÉÄ7Ä~R»¾} |<�������´�¸�2�7��������¡ð��������������������������������������������������������������������������������~R�7¤~R»¾} ¤<������ñ�Ì>� �Ù�@°�*Ïp�Í�>�@�����R�h� �*�*� ������������������������������������������������������������������~R�7»

L>Ô� �Swüþ¯�Y®u�Y©N4v���8Ñ�P*S&t�N0tê.yÒPRQRtWfP�ü tW!�8Y(N�xòW-S8T8x LL¾[~R¾}�~ë������ñ#È�����:�7�:�â���7�·�@�¸���Î����������������������������������������������������������������������~7~R»~R¾} |"�a�2¡�°@�¢�«������ñ�Ì>� °����7�2�¦�-¡ �V���>�·���añ����:��§@�D������������������������������������������������~7~RÐ~R¾} ¤<³Ó¶z�R�:�������7� �-�#�añ ���:�z§@����������������������������������������������������������������������~R|7�

L�Ø�� N8y%$�x�Q´y P*Sëx��8x�Q-W7Y�yÒxzy L�r�¬L>ù� �SwNXW2u(U8yRYZS8N8y�t�N8T û�U8QOP��4x�Q [email protected]©N�v L>¬X[

Page 5: Functional Programming Using Calm Light

¹ Ú Û�Ü�Ý.ÞaÜ�Ý_ß

Page 6: Functional Programming Using Calm Light

& ')(+*-,/.10 2

3 CFE+4oB 5 6 7 E98cBDC

���@����§@�z�:��¡��*�>� �Z���������·�7�����O�_���>�·���z§@��:�Í�¸�2�ë�����(����:�����7��O� °����2�7�¦�-¡�¡ª�¸���;:8�-�§<:�¡��7����°����R�·�����:���=:c�������������-�2� �-�����-¡��4�����7�@�R}��p�c��7�_È��*�*� ����R§ª�������R�7�·�>���-¡ª�4�����7�>�@?c��� §2�BAX�*�·�*�>�����@��±7�*�¦�h�������R���-�§����V���>�·�*�§@�R§�(�7��È�*�-�������*�¦�*}C�p�#�:�7�>�:�O������>��¡��*���7����:¶�-¡�°@���R� �-�§��:¶��*�¦�·�����R�%:��-�§��-È�Í�-��������È�*�-�������*�¦�#�����7�@��§¥���R�7§����D �@�¢�����h�����������������(���7�@�a�-�.�E���-¡��8�����7�@���·�7°@���*±7�:���¸�@�7°F:��·�R�����������:¶¾�-¡�°@�¸�R���-�§�±´�f�����-�����7���È@�������*¡ �Í�:�¸±2�R�*}ñ"�(���*���7�*���*�¦�O�¢�������R���-È�2�����(����:�����7��O�¨°��·�7�7�¦�-¡�¡������G:����7¡�� �(�R�-�������R����°��R�·�¢Á4�&���"���-¡��¨�4�¸�2�>���-���

§@�R���:����È��R§�}����&�Ù�@°�����@�>�����R�Ù�Z���f�§ ���h��¡�°@�����:¶��R�:�������7��¡���§@�:���-����°��·�R���*�>�·�R§����ò���:�7¡�°@���*�����:¶¾�f¡�°@����-�_°����7���2�Ù�@°@������������È���*�#�-�Ó���_}Ã_�f���H�JI�����-°��·�*�¦� |LKzÂ�M�¡ �O�ëÈ��ò�ON7��°�°��R§<È@�0����*�¦�ª�p�-¡��¢�¢�Z�f� D ����� ���_}aì#���*�¦� D ����� �:¶z°��*�����*��:������(����:�����7��O�.°����2�7�¦�-¡�¡ª�¸���;:7È���� ���@�p�-¡��¢�¢���-� D �¸�·������� ���ò§2���O���R�:�¦�"¡ �O���ON2�¸° �����#±7�*����Á�¦�Í�â����f°����*�¦���-�§���¦�f���¨�-������f°����*��ÂP:w�¸�R�f���@�����ò���������-¡�� �����7�>�����>�@�¦�O¶��(���7¡������ �:¶�-¡�°@���R�*}òÃ_�f���Q�����:�-���¦� D ����� �Í�7¡�����>�·�@�¸�Í�¸�2� �-È��7���#�(����:�����7����-�§þ�Ù�@°�R���f�§��-��±7�R���-���-±7�*��±2��� D �-�����<�f�§Ë�2�����*�#� ����:�Í�¸�2��O�a���-���7��f�7�R�IÙ�·��-°����*��|�M¦}��a��f°����*��¤Ë�2�����¢�¸���R�ª���������@���*�¦�7�:�Í�¸�2� D �����&���������-¡�� �����7�@�¨�·�7°@���*±7�:���¸�@�7°0�-�§þ�¸�:��È�2�h����7ÈPR��R�:�¦�*}�Ê��7�h�������@°�R���-�§0���7¡��Ë�-�������:��� �2�������·�Z�f���R§0°�����¡�������±7�R���f����°����R���*�@���R§ ��� �·��-°����*��¹}��������¦�

IÙ�·��-°����*�â»SM��-�§¥����*��Ïp§@�:Á���R§ ���>°��R�TI�����-°��·�*�âÂ�M �-���������·��:�������R§Ë§��f�¦���O�¢��� D ������� �7�"���������*°��·�R���*�>�:�-�����7��-�a�:�7¡�°@���:¶Ë�7ÈPR��R�:�¦���-�§¥�����:��� �R�7�����:���R�-�����7���-�§�§@�R�����·��:�����¦�-�����7�8}U �@�¢��� �:�2��:�*°��¦�_°����R�Í�*�>���R§¨�¸��°�-���V�_�-��� �:�7¡�¡��7�/Ip���§@�*�a�2����� �2��¡Î�7�a�-���7�·���*�%M8����¡��-�>� � ����:�Í�¸�2��O�

���-���7��-�2�R�%:�°�-���¨ÊWI�����-°��·�*�¦��¿%K�~7~�M�����§@�R§2�Z�*�f���R§ò�·���(�R�-�������R����°�R�·�¢Á4���������-¡��������7�@�Rµ�¡����¦�-È@����§��-�¦������·��:�������R�XIÙ�·��-°����*��¿=MY:@�:¶�:�*°������7����-�§2�¢�����ZIÙ�·��-°����*�âÐSMY:@����°����%[R�7���·°����QIÙ�·��-°����*�#Ä�M��-�§ �������R�-¡�� �-�§°�-�¦�Í�*�¦��IÙ�·��-°����*�ò~R��M �Í��� D �&¡��7��� ��¡�°�*�¦�f����±7�ë�h��§@�&�-�¨����� ���-���7��f�7�7}øÌ7�¦�-�§��O���7��� °����7�7�¦�f¡ ���-�§���*°�-�:�-���¨�:�2¡�°@�¢�Z�f�����7�\IÙ����f°����*��~7~�M �O�¢��� D �(�7� ¡���§@�@���-��°����7�2�¦�-¡�¡������ �f�§Ë�·���¨�:���R�-�Í�¸�2�Ë�-�����:�-�§��O���7����-°�°@�¢���*�-�����7��*}]�a�7��·�������:¶¾�f¡�°@���R� �-�#���-¡ª�w�4�¸�2�>�"� �R�f�������R� �-�·������È���(�7���§ �¸� ���@����°�-���O}Ã_�f�����1IÙ�·��-°����*�¦�c~R|^K�~RÂ�M�����¡��R�-�@�w� �7�_�O�����R�7§@���:¶z°��*�����*��:�R§>���-¡�������7�>�_��Í�*�¦� D �«�¢�¢����������N@��� D ¡��7����-È��7���â��� D �����_���-¡��Ó�����7�@���:�7¡�°@�¢���*�¨�Í�>�@�����R�h� �*�R�#�������Ù�@°�R�"�-�a�:¶�°����R���h���7�ò�-�§ ��� D �:�7¡�°@�«���-�Í�¸�2�ë�-�§�*±´�´�¸��f�����7�ë°��·�z�:�*�R§��*}¥Ì7�7¡��_N@��� D ���R§@�7���-È�7���#Á�:����Ï(�7�¦§@�*�����@�¢Á4�*�-�����7� �Z���7������¡��R§�} ������°��·�R���*�>�:�-�����7������:�-�����*���¸�@�(�7��¡��O�`: �-�§&�������7¡��*����¡��R�����*�¦�Í�ZIÙ��°��R�·���O�¢�¸� ��� �·��� �·��-°����*���-È�7�����Ù�@°�����@�>�����R�Ù�Z�aM¦} U �

°����7�·�7���>°�� ����¡ �O�¢���f�§0�h��¡�°@����� ����:�����7��´�����-���2��-�7��IÙ�*�O�¢���R§&ñ�Ì>��M:µ D ���-��±7������� �:�2¡�°@���*����°����7���2�Ù�@°���¡�°@���*¡��*�@�¦�-�����7�F:f� ���2¡ ������ñ�Ì>��°�-�:���*�.�·�â����� ���@¡�È�-�¢�����:¶��R�:�������7���-�8�:�z§@�7}_���:¶@�����¨�-�§�°�-�:�h�������-�ñ�Ì>�°����7�2�¦�-¡ �#�-����°����R���*�@���R§ ���ò����-°��·�*��~R|P:�°����-±7��§2�����Ë���R�´�«�����Í�Z������-�2�R� �-� �������R�f¡ �â�f�§Ë°�f�¦���*�¦�*}b�a��f°����*�~R¤�°����R���*�@�¦� �f�����>���@°�R§��*�O�¢��Ï(È>�@Ï(±´�´�¸�������*¡��-�>�Í�Z�*���-�.ñ�Ì>�ò°����2�7�¦�-¡ �V�������7���2��������§@�:Á�@�������7�Ë�-�a�-��ñ�Ì>����>�·�*��°����*���*�R}&�������*��:�z§2�����&�-�â���R�:���¦�Ù�¸�2�&�¸�0���@���>°��R§&ñ�Ì>� �Z�ª°����R���*�@���R§ ���<����-°��·�*� ~Ò¹G:_����� D �����ò�����cedFfhg�iejFkmlVnGo%prqrs@thu@vxw@gOqry{z|sYtTsm}GprfhgOyrg�ths@prgOyFz|y�kOwYk~z�n�k���n|g�k�y�k�tT�r��������prg��efht�z|�~k~nGqrgO��sYqrpC� �@�O�{�

»

Page 7: Functional Programming Using Calm Light

 Ú����X��Ý�ÞV���=���ÙÜ�Ý���Û#�>��Ú#Ý�� Û�Ü�:¶�°����R���h��±7��°� D �*���-� ���������-���7��f�7�7}����������>°�� �Í�>�@�����R�h�����f���(����:�����7��O��°����7�7�:�-¡ �"����§@�*¡��7������:�-���R§¥����·��-°����*��~R»P:@��h����� §@�R���·����:����±7�����@�¢Á4�*�-�����7��Ip�2��Á�¦�Í��Ï(�7�¦§@�*�����*��¡��a�·�*°����R���*�@�����������>°��R�@Ma�7���¨�:�*�@���¦�´�4���@�-�p}�a��-°��·�*� ~OÂ����@������§@��:�R�����������-���*�2�7�����*�O��ñ#È�����:�7�:�¨���7�·�@�����7µ ���h��¡�°@��� �:¶z�R�:�������7�0¡��z§@�:���(�7���*�O�¢�¸Ï(È@�@ϱ´�´�¸���¥� ����:�Í�¸�2��O� °����7�7�¦�f¡ �*}�ñ"�¸�·���7���7�0���������-¡�� �����7�@���:¶z�R�:���Í�¸�2�<¡���§@�:���Z��§2��A8�*���*�@���(���7¡��������7���°����R���*�@���R§¥���*���=:4�f���¸�@���@�������7�ò�-È��7���â�·���¨�h��¡�°@�����:�7¡�°@�¢���-�����7� �-�_� ����:�Í�¸�2��O�8���-���7��-�2�R�â�*�-� È� � �7���§ ������@���#����-°��·�*�R}

� tQ2N8Y(N�v.ÿ ������°����7�7�:�-¡ �#�-�§����*¡ �f��Nz�bIh�R��°�R�·���O�¢��� �:�2�>�¦�´�¸���R§ �¸�&°�-���:��Ê �-�§��xM ¡����7�@�����7��È��±´�´�«��§¥���Z���f¡��.�����7�>�#±7�*�¦�Ù�¸�2�� §2�BAX�*�·�*�>���(���7¡ø��}¢¿>}

Page 8: Functional Programming Using Calm Light

  (90¡, ¢

£ 6 C 7éE98cBýC ¤¦¥ § 4KB¦¨©49¤«ª ª 8�C ¨

¿

Page 9: Functional Programming Using Calm Light
Page 10: Functional Programming Using Calm Light

& ')(+*-,/.10 ¬

£ 6 C 7 E98cBDC ¤¦¥ ¥V¤ C ¨©6 ¤­¨ GIJ

Ã_�·�7�7�¦�-¡�¡��������Z�f���7��-�7�R���-�������O��§���� È�T®%¯�°G±h²r³{´=°;µ=¶ D ���*�ë������È�7�Ù�Z� D �O�Ë�-� ��������:�����Í�¸��� °����7�7�:�-¡ ���Z����������2�����7�ë�f�·®%¯�°G±h²r³{´=°Ë�f�§ò�����:�����R�����*�@�����O� �:�7�>�·���-�������·��:�����������#®%¯�°G±h²r³{´=°1µ@¸!¸¹¶B³�±@µ=²r³{´=°}�½��2���:¶¾�-¡�°@�¸�=:������������°&���-���7��-�2�»º |2|h¼e:Ó�f�§&¡��7����°��·�R�·�Z�Í�:�¸�&���¦��¡���§@�*���0����*�:�R�����2� Ì>�·���*¡��Zº ¤¾~L:�~@¼`:���7��È�*�*�<�*�´�«���R§�(����:�����7��O�.È��R�*�-�������� °�>�·���R�����R���·���R����� D ��°����7°�*�·�����R�*}�"� D �*±7�*�h: D � D �-�>�#������°����7�2�¦�-¡�¡����������7�Í�¸�2� �f�_� ����:�����7� ����È���7���·���>�����7�#°��>���h��È@������� �·���¨��Í��O�¡ �-�·���*¡ �-�����*�O�.���2�����7���-�_� ����:�Í�¸�2�8}x�p��¡ �f�����*¡ �-�����*�%:¾�(����:�����7����-���>½·Á�¦����Ïp�·���7�·��¾��7ÈPR��R�:�¦�*µ��·���*�Ë�*�-�ËÈ���-��È@�����:�-���¢���¨¡��-�@��°��@�Z�f���R§�}�½¾�7�_�:¶�-¡�°@���=:@�����*�¨�*�-��È���:�7¡�°�@���R§<:>�-�§ª�����â�:�7¡�°��>�h�������7���(����:�����7���������¦���:�¢����(����:�����7�8}

�h��¡ �-�����*¡��-�����*�%:��7��� D �7�@��§¥°����R���*�@� �����H¿%¯±@±YÀ�¿Y¿%´=Á��(����:�����7�¥�¸� �����#�(�-�¢�¸� D ����� D �R��µ¿%¯±@±YÀ�¿Y¿%´=ÁcµÃ Ä;Å Â

ÆÈÇÄ<Å Æ_É ~�����#�(����:�����7��O�a�:�7¡�°��>�h�������7� �:�2�@�Z§¥È��°����R���*�@���R§Ë�7�Òµ

Ê µËI�Ì"ÍÏÎHM#Ð�I�ÑÒÍÓÌÔMÕÄ<Å I�ÑÒÍÓÎÖMI�×;ØOÙ<M Ç Ä<Å I�Ú Ç Ä;Å ×�IrÙ¡Ú<MmM

D ���*���HIOÌ9ÍÏÎHM §@�*���7���R���������Í°�7�:���-�w� ����:�����7����(���7¡-ÌK���JÎ�}U �����*¡ �-��N����*���������#��¡�°��7���¦�f��:���-��µ~2}������ ���7�����7���-�·²rÛm¸SÀ^Ü��#¡ �-�����*¡ �f�����*�O��� ����:�Í�¸�2� �O� D �O�z��°��>�����R�·���R�a�EÝ=´=ÞHµ=³{°¨�-�§��_±@´hÝ=´=ÞHµ=³{°}_�����*�D �¢�«�_�:�7�����R��°��7�§��·��������°����7�2�¦�-¡�¡����������7�����7� �-�_�Ù�@°�7}

|¾}c�¸�:¶@���*�O� È@���§2�¸����µ D ���*� D � D ���2����������¡��-�����*¡ �-�Í�Z�*�´��§@�:Á�@�¸�Í�¸�2�0�-��¿%¯±@±@À%¿@¿a´=Á@: D ����O±7� �7�·����¡��R§����-�_�����â�2§�§2�¸�Í�¸�2��� ����:�����7� É ��7§ªÈ�*�*��°����*±2���7��h��� §@�:Á���R§<:�¡ �f°�°@�¸������°�O�����-�8��-�����:�O��>��¡�È��*�¦���� ����-�����:�O�Ó�@��¡�È�*�hÜw������¡��R�-�@�������-�������/¿a¯�±Y±@À%¿@¿%´=Á_�(����:�����7������§@�:Á���R§���Ù�¸��� �����>ÞHÀYµ=°;³�°�ß��-������ �2§�§2�¸�Í�¸�2�8µ D ��-���*±2�*� É §@�*���7���R�c��������� �(���������=:@���@���]¿%¯±@±YÀ�¿Y¿%´=Áw�(����:�����7� D �¢�¢�X�·�*¡ �O�������������-¡��7}

¤¾}������É���7�����7� �-��®%¯�°G±h²r³{´=°;µ=¶àµ�á@¿%²rÁ�µ!±h²r³{´=°G: �O�¢�¸� D �����º�����:¶z°����R�·� �·���ðÈ��*��R±2���7���-�â× Ê Ù£�7�I�Ú Ç Ä<Å ×�IrÙ�Ú<MmMY:2�©}¼�7}_�����#�(����:�����7� D �@���·�F: D ���*�Ë�-��±7�*�Ë���2¡��QÚF:��·�*��������x×�IrÙ¡Ú�M¦}

���<§2���O���R�:�¦�/I��·�Í}�È�:��� D M����R��°��R�:�������R�������7�����7��*}�Êc���������*�ë�O�������O�¢�¸� D ���7��Ï®�(����:�����7��O� °����7�2�¦�-¡�¡�����������2�¸�R��:�-�§<:@���Ë�·�@�Z�#���*����=:¾�����*� �f���#� ����:�Í�¸�2��O�.È����#���7�#¸¹¯�ÁOÀh¶BÛ#®%¯°;±h²r³{´=°Gµ=¶¢}Ä

Page 11: Functional Programming Using Calm Light

~R� Ú��X��� Ý.ÞV�9ã���äT�.Ü�Ú#ÝF�*Û�Ü��Xå\åF�âÜHæ_���Qæ"Þ�ßçQèYé ê-ëYì;íFîXï<ð¦îXñàñóò_ôöõ�í�ëYîÔôö÷Xø�øY÷XôöùÔòö÷xùXú#ìÌ7�7¡����@�����·�7�����*�O�_°�-���@�¦�*µ

û ~RÄ7¤7��µwñ ���7�P�*�ü�a�>���:����§@�*±7�:���7°�R§¥�����býzÏp�*�´�Z�:�@����bº Â^¼8�7���-� �f�����*¡�°�������°����-±7��§@����È�7�h���c�(�7�a¡��-����Ï�*¡ �-�����*�*}������>ý�Ïp�*�O���:�@���������� � �2��¡ �O�a�����*�2��� � �7�#�(����:�����7��O�¢�����7}Ë�������������*��È�2�h��� �:�7��Í������:�¦�#�-������Hý�Ïp�*�O���:�@�¸����f���7µþ ±´�-�����-È@������-¡��R�XIp�7}¼�}�ÚF:Gÿ;:��R�O�OMYÜþ �-°�°@�¢�Z�*�f�����7�ZI���� �¢��� �-�§�� �-�����·�*��¡ �@MYÜþ � ����:�����7��´�Ó�-È�����:�7�:�����7��I�ýGÚ8����M¦}

�8�*��¡��#�-�a�����>ý�Ïp�*�O���:�@��������*°��·�R���*�>� � ����:�Í�¸�2��*}¨������°������/ý�Ïp�*�O���:�@�¸�����7�#È��*�*�ò°����-±7�R§¥����:�7��h����Ï���*�>���2�������7�f�Z�*�´���·���*�7���7} Ì7�7¡���²rÛm¸PÀ/¿aÛ^¿%²rÀhÞb¿���R±2�¨È��*�*�<�7§�§@�R§ �����������&�7�¦§@�*�����Ë���*¡��R§@�ò���@����¸��:�2��h�������*��:�7}

û ~RÄ7»7Ð�µ����7�/���-�����@�����@±7�*�>�·�R§ë������°"º |7|^¼ D ���>����°��·�7�7�¦�-¡��#��R±2� ���7¡����h��¡��¢�Z�f���������R� D �����&���*��¡ �#�-�������ý�Ïp�*�O���:�@�¸��Ò} ������°�§2���O���R�:�¦����O±7� È��*�*�����R�:�*�>�Í�¸�&�*±7�-��±2�����ò���<�2�¦§@�*�����òÈ�� �·���>���*�����ò¡���§@�*���� ����:�����7��´�8���-���7��-�7�R� I�Ì>�����*¡���MY:�È����#�����*� �Í���¢�«�_§@� ���7��°��>�����R���#�����@°�����������*¡Ë}

û ~RÄ7Â7»�µcÃ.}��8�-�§2����°����7°��>���R§¥�����Q�·Ì U ��� ºZ~RÐ^¼8���-���7��f�7�_I(�(�7�ö½a�(���_�7� Ì7�*� U ��-�X��� �R�-�G¾SMY: D �@���·��Z��������°����R�:���:���7� �-�����-���7��-�2�R���-�_��������� �©�f¡��¢�¸�7}û ~RÄ@¿´Ð�µ�}�Ê��7��N@��V���>���·�z§@��:�R§�½_Ã"µ>� ���-���7��-�7�#�-�Ó�:�2¡¨È@����-�·�7�¦�xº�¤h¼8�-�§�� � �:�-¡�� D �7��N �¸� D �@�Z�·�����c�Z�°�>���Ù�¸È@�����������R�2���7���-È�7����°����2�7�¦�-¡ �Ò}.������¡ �´�¸��°�-���Í�Z�:�@���-�Í�¸�����-�Ó½_Ã&°����2�7�¦�-¡ �Ó��������-�c�����*����O±7�����±´�-�Í�Z�fÈ@�¸����-¡��R�*}

û ~RÄ@¿´Ð�µ���}����¢�����*�#°����7°�@���R�â�¨�Z�f���7��-�7���*�O�¢���R§����1º�~7~@¼`:@���@���*�§@�R§ ����È�������JÞHÀh²rµ!¶�µ!°ß=¯�µhß!À �-�_���������½&°����@�-�a�7���h�����¦�f�>�XI(�p} �7}_�·�������-���7��-�2������R§�����°����7�7�¦�f¡ �·�������R�-�¦�·�Ë�-��°����>�f�©�@M:}a���@�������-���2��-�7��Z���¸��Í°@�¸�·�R§ËÈ@�>��Ì U ���­I��·�¸�@�������/ý�Ïp�*�O���:�@����@Mâ�-�§�°��>�����R���Í�R� �-�Ë�2�����-����O�.���>°������������*¡Ë}

û ~RÄ7Ð7»�µ�À�}>�w�������*��°����7°��>���R§��������¥�¸�:�-�§��/º ¤7Â^¼�°����7�7�¦�f¡�¡����������-���7��f�7�=: D �@����������R���¥�¢�����*��� �����@°����z�Í���*¡�È���� D ���*�·��°����7�7�¦�f¡ ���-��������È�¡������·�R§�����¶Bµ� %ÛHÀ��^µ=¶B¯µ=²r³{´=°�}�a�����·�*�>�����=:��·����� D ��¡ �O���¥�©�-¡ª�«�¢���R�#�-�8�(����:�����7��O�����-���7��-�2�R� �-�������������ò�f�§��������¥���¦�-�§����p�-¡��¢�¢���R�*}

çQèOç ���öú�� � ñh÷���ë%ø�ð���&���-���7��f�7�R���-����È�7�Í�R§ò�7�&� �Í���>�-���R§ ? ±2�*�¦�h���7�ò�-�Tý�Ïp�*�O���:�@����*}������:�����*±´�O����-�Í�¸�2�ë���*�f�¸¡������/±Yµ!¶�¶��~á�Û���hµ!¶�¯�À]I(�p} �7}_�����â�f���7��¡��*�@�����a�*±-�O����-���R§�È�:�(�7���#È�:������°�7�����R§������ � ����:�����7�<M@:z�f�§������*����������¢�����*��� �c���@°����������*¡Ë}�����þ�·��½é°����>�f�ª���������*¡F�-°�°��R�-���R§ ��� ~OÄ@¿´|&�-��Ì7�¦�-�@�(�7�¦§ I�Ì7�¦�-�@�(�7�¦§�����½CM:}V�h�Ë��7��È��*�*��� ���·�����*�

§@�*±7�:���7°��R§ �f�����-¡�È�����§@�7�_I����-¡�È�����§@�7� �·��½CM D ���*������������� ���-���7��-�2� D �7���7§�§@�R§��·�����R}½¾���7¡ø~RÄ7Ð�~#����~RÄ7Ð2ÂP:>��±7�*�¦�Ù�¸�2���-�Ó���ò�-�§����¦� �:�2¡�°@�¢�¸�*� D �2��§@�*±2�:�¸�2°�R§������¨�:�f�«���-È��7�¦�-�Í�¸�2�ËÈ�*� D �*�*��ÙÇX�#�hñ �-�§����f¡¨È��Í�Z§@�2��È>���¨}<�c�7��h�����R�-�F:���}� ���*�#�-�§Ë�_}�Ã_�-�@�����7�8}c z � g@���<z|prfQkCl#sYqrg��^yrgOq! } q{z|g�t�"%n$#Ty%#%t%p`k'&��

Page 12: Functional Programming Using Calm Light

ãP�)(�� Ý��âÞ+*��O�x�#Ü��X� äP��*���å-, ~7~

�h� ~OÄ7Ð�~=:_�_}C���-�:§@�:�«�¢� ��¡�°@���*¡��*�@���R§ �˱2�*�¦�h���7�&�-� ��� D ���>�����:�7¡�°@�¢���*� �2�*���*�¦�-���R§ ��-����±7��¡ �7�·�@������:��§@�7}�h� ~OÄ7Ð-¹G:�� �:�2¡�¡��������*���-�â���R�Í�R�-�¦�·���*�¦�#�(���7¡������ ���@��±7�*�:�h�������R���-��³a§2���>È����·�7�<�-�§����-¡�È�����§@�7�=:_Êc�:�«�

�8�-È��7�¦�-�·�7�����R�a�-�§Ö�ÙÇX�#�pñH:@���R�7§@�R§�È@�Ö� }>�¥�¢�¸���*� D �7��N2�R§��2� ����� D �:¶z���*�§@�R§ª���-���7��-�2�â�*�O�¢���R§�Ì7�¦�f�§��-�¦§���1º |7Ð^¼p}c���@���â�:�7�·�#�Z�f���7��-�7� D �7���:�7¡�°@���*���R§ È@� �ª¡��z§@�@��� �©�7�·�¢�¢�����˧@�R�h���7���R§ È>��À�}�� �2��. ���*�*�ຠ|7¤ó¼p}Ì-����:��~RÄ7Ð-¹;:�����ü���-¡������-���7��-�7����7��È��*�*�ò���§@�*�¨§@�R�h���7� ���ë�Ë�:�f�«���-È��7�¦�-�Í�¸�2�òÈ�*� D �*�*�Z�ÙÇX�#�hñð�-�§�<��³aÇ Ì0/�M¦}^�p�¦�wÁ�:���_���:���R�7���â�f°�°�R�-���R§¨�¸� ~RÄ7Ð@¿>}�������¡ �O������¡�°@���*¡��*�@���7�¦�V�-�F���-¡ª� D �*����ñ�����1�-�§@�*� Ì7�21�f���%�=:Ã����*���·� U �:���#�-�§��¥�Z�·���:�Ó���-���@�7}�h� ~OÄ7Ð7Ä��f°�°�R�-���R§¥Ì7�¦�-�§��f�¦§ ��� �-�ÓÇ"� D Ï3-�*�:���*�=:§@�*±7�:���7°��R§�È>��ñ#�§@��� D ñ#°�°�:�VIÙÃV������:�*���7��ì �@��±7�*�·Ï�h�����GM��-�§�À��O±7��§����7��. ���*�*�ZI�Êa�:�¢�a�8�-È��7�¦�-���2�����R�@M¦}���-¡��Ó�����7�@�#��������¡ �O�¢���*�h:�¡��2����°�7���:�-È@������¡�°@���*¡��*�@�¦�-�Í�¸�2�ò�-�a�������:�7���/���f¡��8���-���7��-�2�=:8§@�*±7�:���7°�R§

È@�54��O±7���*�â���*�·�´���h����:��~RÄ7Ä7�¾}

çQè76 ���öú�� ëYïF÷Xô98E÷Óñ^÷��­ë%ø�ðñ"�«�w�Z�f���7��-�7�R�c�������@���c�p�-¡��¢��������_¶Bµ� %ÛHÀ��hµ!¶�¯�µ=²r³{´=°/I(�p} �7}_�·�����-���7��¡��*�@���-�Ó� �(����:�����7�������*±-�O����-���R§��¢�a�-�§D ���*�������"�(����:�����7� ���*�R§����¸�:��±´�O�����;: �-�·�7��¡��*�@�¦���-���#°�7�����R§������*±´�O����-�·�R§���� � ����:�����7��aM¦}a�����*���O�����������¥�¢�¸���*��� � ���@°�����������*¡ }�w�-���7��-�7�R��È�:���7���-�����������·���¨�¥���¦�-�§����p�-¡��¢����Á�§¥�����:���â�7�Í�¸�f�¸�¥��� �·����Ì7ñ�Ì>� ���-���7��f�7�Jº ¤f¹L¼�I¦~RÄ@¿´ÂSM

§@�*±7�:���7°��R§ËÈ@�ËÀ�}�w�������*�R}"Ì7ñ�Ì>�0�f�§����¦�#����*�:�R�����7�:�XI�<T�]�âº�¤7»^¼a~RÄ7Ð�~!:�¥�¸�:�-�§��>º ¤7Â^¼�~RÄ7Ð7»��-�§ �â�2�ON7�:�¢�º�~R»^¼�~RÄ7Ä7�SMa����/¿aÀ^²{¿ö´O®HÞH¯²r¯�µ=¶{¶�Û�ÁOÀY±^¯Ám¿a³!�hÀEÀ>=^¯µ=²r³{´=°�¿â�7� °��·�7�7�¦�-¡��*} �����R������?2��-�����7����-��� D ���������*� ���ò�¿%±hÁ@³�¸¹²�IÙ�:�-�¢���R�:�����7� �f�w§@�R�·���-�:�-�����7��@M_�-�§������ ��Í�*�a¡ �O���*±-�O����-���#�:¶z°��·�R���h���7��c��h������±-�O�����R��§@�:Á���R§��������@������:����°��R} �8���9I��8���*�ò����M���7��È��*�*� §@�*±7�:���7°��R§&���+�9@�7���*È��7����I�Ì D �*�R§@�*�<MYÜÓ�¸�:�¨�Í�>�@�¦�O¶������·���>�����·�Ë� �A� ����@�>�:�O¶ �-�§ �¸�"����R�â�¨�©�7�Í���:¶��R�:�������7� ¡��z§@�:�pµc�����B�âÏ(¡��7���@�����/º�~RÂ^¼p}

CEDkm��sYq`kmprs�z|qrgF"HG �{t%} sYqrlxkmp{z$IJ�hgK"hg�nLG M��Os�n|gx��sYqrlxk~n|gVoJ�h��NgOq{z|g��^qrg;O0PJQ �R�hg�"HG S�n|l�OUT;Q>V;V;Q2WPk�q{z|y

Page 13: Functional Programming Using Calm Light

~R| Ú��X��� Ý.ÞV�9ã���äT�.Ü�Ú#ÝF�*Û�Ü��Xå\åF�âÜHæ_���Qæ"Þ�ß

Page 14: Functional Programming Using Calm Light

& ')(+*-,/.10 X

Y ¤£J"8 7 7�BýC 7�G § EoJ

U ���:¶�-¡������c�¸�����@���_����-°��·�*�a���7¡��V� ���§��-¡��*�>�¦�´�¾�:�7��:�*°��:� D �@���·� D � D �¢�¢����� �-�§������§@� �¸�������c�(�-�¢��� D �¸����·��-°����*�¦�*} Ì7�7¡�� �-�������*¡D�-��� �Í°�R�·�¢Á4�ò�·�ò����� ���>���*�Í�©�7�:� D �����������Z���-¡��#�Z�f���7��-�7��Ip���7°@���*±7�:�`: �f�¸�2È�O�§@�:Á�@�������7��@M D �@�¢�����2�����*�¦� �-�·���-°�°@�¢�Z�*�fÈ@�¸�������-�>���(����:�����7��O�8���-���7��f�7�7}

6QèYé ��î[Z/øYúK\Tú]ø�øYîQî�Z������Á�:�����:�7�@�¦�7�:� D �����>���f¡������a�·�����7���7�����¦�Ó���>���*�:�7�:����±7���7��°�R�:� ? } U ���*���������@�����/���-¡���7�����:�7¡�°����·�*�h:D ���*�@���*�¨��²r´@¸<¶�À��hÀ^¶V¶B´h´@¸ D ���*���>���-¡�� D �O���¦�"�(�7������°������ �·�7¡�����������*�^:Ó�f�§������*�ò�-��±7�R�������R�Í°�7��������D ��-�"��7��È�*�*� �*�>�·�*���R§�}�����¨È��*�-�����@�����ò�-�������-¡��a�����7�>�����R���h���7�þ�¸�@�=N��#�¢� N7�����@���ÖIÙ�7������¡ª�¸���^]������·���ª�Í���:�«� °����2¡�°��â�2�ò��������>���"¡ �7�·�@�¸����M:µ]`_0aJb4ö@ö�õ�c2ôedf g aJb4ö+h�õ�c2ôedji�î´ílk�õ´÷Umon�p7qr� �Ë�·����Ã#�<±7�*�:�h���7�F:��������:�7¡�¡ �-�§����â�*�´�«���R§^_`asb�ö}�����Ö½ r ¾��·��-�¦�2�:���*�c�Z�]���f¡��3� �c°����7¡�°��R} U ���*�����@��� ����f�¦�7�:���*���-°�°�R�-�:���f���·���âÈ��*�-�����@�¸�����-�Ó� �¢�¸��� ���

�-�Ë�7�:�·��O�����-¡��Ó�4�¸�2�>�â�Í�R���h���7�F:����������7°@���*±7�:�8���@�7°���� D �O����������� �2�â����� D ���2°@�¸�*±2�:�.°����¦�7�����·��È���*�>���*�·�R§�}�������7���7���7�������@����§@���:��¡��*�@�h:�������°����¦�2���R�����¦�f����������È>�&����� r ����-�:�7�:���*�����*°����R���*�@�����*�>�O�"�¸��°�����������-¡ª�©} Ì-����:�ë�·�@�Z� §@�z�:��¡��*�>����7��È��*�*� °��·�*Ï(°����z�:�R�·���R§�È@�9���-¡ª�¨�����7�>�Ë�f�§������R��� �¢�����R�Ë��O±7��È��*�*��@A8�R�:����±7�:���ò�-��±7�*�ë�2�#����°��������Ë�����-¡����4�¸�2�>��°������:�R���%:w���������R�7§@�*��¡ �O�Ë���*°��·�z§@��:��È>���@��¡>[R���*�:���:�¢�â��������R���Ù�¸�2�ª�:�2�>�¦�´�¸���R§¨�¸���R�7�·������f°����*�#Ip�R�7�·�¨�·��-°����*�_�-��·���aÁ�:���.� D �#°�-���¦���:�7�@�¦�O����_�â§2�BA8�*���*�@�a���R���h���7�F:2��������@���¦§�°�-�����������h�����-�������R���h���7�<M:}a�������R�����¦�-���Í�¸��� D �����������ö½ f ¾�����f�¦�7�:���*���-���T���f¡��4�����7�@�a�*�����2�a¡��R���·�-�7�R�*}�������R�����¦�-�·��������È@�¨�-���7�·���*���·��-�¦�7�:���*�a�f��� �:�������*�x���-¡�����R��°��7����R�V�7�xIp°��>���h��È@���;M.�¢�¢���*�>�O������°����R}a�������¸��°��������°������@���R§��������@°� D �������*�c�(�7�@�xIÙö�õ�t�îud7ô8õHkMY:@�-�§��7����°����c��� D ���������*����h����� �h���-�@���R§����>°�� D �������*�c� �2�>�]I3v)wyxez{3|l}0{ M¦}MOüò¯�S4QOP*t�NP7ÿ ���.�:�7���¦���=: D ���*��§@�*±7�:���7°@���������7��Ï(������±2���O�8°����7�7�¦�f¡ �%:O���c�Z�c°����:�(�*�¦�-È@���#�����R§2����°����7�2�¦�-¡ ���� Á��¸�R���f�§<�·���*�<��� ����·�¸�§@� ����� Á��¸�R����������� ���7°@���*±7�:�`:���������R�2§<�f���*�>���*�Í�¸���0�·���Ë°����7�2�¦�-¡ ��§2�����R�:�Í�¸�7}cOjFk�lCneDóz|u@f%p<z|l#�%n|gOl#g�t%p`kmp{z|s%thyVk~n|yrsx��s@yryrg�yry�k���k�pr�ef��Os@l#�%z�n|gOq��hy`km�%n|gCprsV�OsYl#��z�n|g�~^n|gOy�k�t�"��^qrsJ"��^��gCyrp`k�t�"Lk~n|sYt^gxk��^�%n�z� ��k�p{z|s@thy7�=prf�z|y���z�n�nS��g�"�z|yr�7�hyryrg7"Tz|tT�efLkm�hprgOq��;�Y�

~R¤

Page 15: Functional Programming Using Calm Light

~*¹ Ú����X��Ý�ÞV��(�+� � ß=� Ú Ú Û�Ü�Ú_ÞV� Ý_ß½����·�����*��¡��7�·�=: D ���*� §@�*È����7�-�����G:2���_���V±7�*��������:�(�@����_²rÁOµ=±YÀ����7¡��a�(����:�����7��%:@�����Í�*� D ����� D ��f�a�-���7��¡��*�@�¦������*�ë�f��� �*�´�«���R§<:��-�§ D ��-�����R���@���������*�ò���*�·�����8}òÌ7�*���·��� ���:�(�*���*��:��¡ �f�>��O�Tº |�~@¼c� �2�¨��§@�R���:����°������7�0�-������R���#�p�7�·�¢�¢�������R�*}

6QèOç ��\x÷Xø%òö÷#í�ëYîÔô���ñ^ïFî�� úK�9Z_ï�ú ì<ì�ëYîÔôöìÒíFî�\x÷Xø%òHú ì���*� ��"�*�@���*�â�-�Ë�-�Í�¸�·��¡��*�������:¶�°����R���h���7���-�§����*� D ��-�c���T���f¡��3� �����R��°��7����7µr����`���`��������R������������:¶z°����R�·�h���7�Õ½ ���0� ¾���7�"È�*�*���*�@���*���R§<:��(�-�¢��� D �R§¥È>�འ�`� ¾ D �@���·�����*°����R���*�@�¦�"�������*�§ �-�a�������:�������*�@����7°@���*±7�:��°����¦�7�Í�7} U ���*���*��:�7���@���*������� ½ �`� ¾�:X���-¡��â�*�@���*�¦�����������>°��*Ïp�����R�mN2�¸���"Ih¡��7��� °����R�·�����:���â²rÛm¸PÀ¿%ÛL°;²!�À%¿%³ ¿YM�°���7���=:_�-�§�°��Í�¸�@�¦�����������@�(�*�����R§ ���>°���� �2������� �:¶�°����R���Ù�¸�2�8} �����*�F:8�����:�7¡�°@�¢���R���:�z§@�ª� �7��������:¶�°����R���h���7�F:��:¶z�R�:���·�R�����â�-�§<:zÁ��O�¢�¸�=:�°������@�¦� �·�������R���@���R}

�h��������°����*±7���7��#�:¶�-¡�°@���=:����������R�Í�@�¸���f�a�*±´�O����-�����7�þ�Z�#°��Í�¸�@���R§ò�2�ö½J��¾��-�§ ���������@°�����_½-õJm�dP¾�µ���������>°����-���¸�@���*�7�*�:�*}������°����z�:�R�·���-�â�*±-�O����-�����7�<�f� �����-¡ª���:¶�°����R���Ù�¸�2� �*�-�0È�� ���*�*�<�7�ª���¦�-��h�(�7��¡ª�¸�������@�����:¶�°����R���Ù�¸�2�

���@���¢�����¥� ���·�����*�����¦�-��h�(�7��¡��-�����7� ���¨�´�«��� D �R§�} �����R��� �·�¦�-��h�(�7��¡ �f�����7��#¡������°����R�Í�*��±7�����*¡ �-�@�����*�*}�½��7��:¶�-¡�°@���=:��¢���������:¶z°����R�·�h���7��½ ���`� ¾���7�"������¡ �f�����*¡ �-�����*�O�_�7ÈPR��R�:�â¤��7�#���*¡ �-�@�����*�%:������*�����������R�Í�@�¸�J½��¾¡����� ��O±7�#�����¨�·�-¡������*¡ �f�>�����*�*}c������§2�BAX�*�·�*�>� °���2���R� �f�Ó�����H���-¡��8�*±´�O����-�Í�¸�2� °��·�z�:�R���"�-���7µ

û °�-�¦�h�����>IÙ�·���R�mN7���������������@�>�¦�2�:�����"�¸�*�@�O�¢�¸�����-������°����%MYÜû �Ù�@°���Í�>�@�����R�h���%Üû �:�7¡�°@�¢�¢�¸���;Üû �¸�@�7§2�����GÜû �:¶z�R�:���������GÜû °������>�����������������R���@���#�-�.�:¶��R�:�������7�8}

���*� ��"�:�7��h��§@�*� �f���7�����*� �:¶�-¡�°@���7µ_�������f°�°@�«���*�-�Í�¸�2� �f�.����������*�:�R���Í�7���(����:�����7�Ë��� �0� �}_�������:¶�°����R���Ù�¸�2�� ï��`m _�d�õ´÷Um�¡o¢ f ¡ � �H£ �����7�@��§ È�����R�7§ �7�ö½ �����#� ����:�Í�¸�2� �·��-�h:��-��±7�*�¤¡<:����*�����·��2¡ � � ¾�} �����]RÙ�@¶��¦�-°��7Ï�h�������7� �-�Ó�·�@�Z���:¶z°����R�·�h���7�Ë��� � �`� � £ ����®a¯�°G±^²r³�´=°�µ@¸!¸¹¶B³�±@µ=²r³{´=°}r � ïH�0m�_�d4õ-÷�mj¡¥¢ f ¡ ���H£ � �`� � £¦�`��������R���¨§�����*�����-�������*±7�*�¦�´� D �O��� �·�����R§@��:� �·��-��±´�O������È�:�(�7�����7È��¦�´�¸�@�������������·�R���@���9q�}¨�"�*��� �-�·��� D ���-�������*¡Ip�������:¶�°����R���Ù�¸�2�ËÈ�:���������R§@��:�R§ �-���R�7�·� �����*°����"���§@�*���¢�����R§;M¦µ

� ïH�`m _�d4õ-÷Um�¡©¢ f ¡ � �H£ � �`� � £ � ïH�0m�_ªd�õ-÷�m�¡�¢ f ¡ ����£ � �0� � £« «

� ïH�0m�_ªd�õ-÷�mj¡¥¢ f ¡ ����£u¬ � �`� � £ �­�« «¬`� � ¬0���« «q q

Page 16: Functional Programming Using Calm Light

(�)(�� Ý®,·�cÞ�ß ~R»

�����â���:�-��h�(�7��¡ �-�Í�¸�2�������R§�È@�>���f¡��X§@�����������*±-�O����-�����7�Ë�*�-�����2�aÈ��§@�R�·�:����È�R§��������@��������-°��·�*�h:��h����:������*� ��¡�°@���ZN@��� D �¸�R§@�2� �-È�2�����:�7¡�°@�¢���-�����7�&�-�����f¡��a°����7�7�:�-¡ �#�-�§�¡ �7�·�@���������*°����R�Í�*�>�¦�f�����7�ò�-�X���-¡��±´�´�¸���R�Ò} �"� D �*±7�*�h:��h����:��������È�7�h�����:�7�@�����f�Ó��������:�·�������-�x���-¡��8����� ����:�����7�ò�-°�°@�¢���*�-�����7�F:X��� ����?7�@�������R�7��������-��±7� �f����§@�R���-�8�����#���¦�f��h� �2��¡ �-�����7��Ó���>±7�f�¸±2�R§����������b���-¡����*±´�O����-�Í�¸�2��°����z�:�R�·�aÈ@����h�����������XN7���§��-���� D �Í�¸�Í�¸��� D � ����R§ª���������"�Z�2���a�:¶�-¡�°@���7}a�����#�*±´�´�¸��f�����7���-�8�����bI D �:�«��Ï(���@°�R§;Ma�-°�°@�¢���*�-�����7�°¯ ? I7¯ / MY: D ���*���¯ ? �f�§�¯ / §@�*���7�����-��È@�����¦�f�����:¶�°����R���h���7��%:��:�7��h�����:�����Ë�·���#� �-�¢��� D ����� �Í���*°�*µ

û ³_±´�´�¸��f���±¯ / :��2È��¦�O���@���������¦��±-�O�����³²}û ³_±´�´�¸��f����¯ ? ���@���¢�����¨È��R�:�7¡��R��� � ����:�Í�¸�2��O� ±´�O�����7}ëÊc�R�*�-��Í� �-�#����� D �:�¢��Ï(���>°@�����ò�@�>°��7�����R�h���%:K¯ ?¡¨��Í�_���*°����R���*�@� �#�(����:�����7���(���7¡ �Í�7¡�� ���@°��´ ? �������7¡��®´ / :>�f�§������"�Ù�@°�#�-�¦²����K´ ? } U � D �¢�¢� D �������Ipï��`m�_ªd�õ´÷Umµ¡©¢ f ¯óM�� �7���������·�R���@��� �-�.�������*±-�O����-�����7���-��¯ ? }��h��§@�*���2���R��������¡ �f�����*¡ �-�����*�O�8�7È�RÙ�R�:������O�¢��� D ���������*�Ë�7�Òµ

×�µ­´ ? Å�´ /Ú ÇŶ¯HI D ���*���=:��-�Ó�:�2���¦���=:�¯�¡ �O� §@�*°��*�§Ë�2��Ú<MÇ�} Ê#}�µ U ��§@�����7� �*±´�´�¸��f���9¯�È�:�(�7��� D �TN@��� D ������±´�´�¸�����-�VÚ8}

û ³_±´�´�¸��f���±¯ D ���*�·�·²���7�cÈ�*�*������È�������������R§��(�7� �O�¢�.���*�:�������*��:�R���f��¡4} U �������*���7�*� �����"Á��O�.±-�O������-�.�������7�����-����O�.�:¶�°����R���h���7�8}����������R�Í�@�¸�"�����-�_���>°��±´ / }�p� ������°����*±2���7�� �:¶�-¡�°@���=: D ���*±´�O����-���7µ

û �0� ����� ¬ Üû � ïH�0m�_�d4õ-÷�mj¡¥¢ f ¡ ���H£ �������¦���:�¢�xI(�������#�O�����R�7§@�����(����:�����7�ËÈ��z§@�;MYÜû ¡ ��� D ���*��� ¬ ���#����È�����������·�R§�� �7�®¡¹:@�p} �7}V�*±´�O����-��� ¬0��� :>�2�*���������5q��7�����R���@���R}

�p�#�����7�@��§�È�����7�����:�R§�����-�X���-¡ª�X��Í�R� �*�O�¢��Ï(È>�@Ï(±´�O�����7µ#�-���7��¡��*�@�¦�c�-�����*±´�´�¸��f���R§�È��:� �7�·��È�:����� °�2�����R§�����(����:�����7��*}_���������:���-����±7���*±´�´�¸��f�����7���7�¦§@�*�_�f������_�(����:�����7��O��:¶�°����R���h���7���-�§��-���������f���7��¡��*�@�.�:¶�°����R���Ù�¸�2�������¡�°@���*¡��*�@�¦�-�Í�¸�2��Ïp§@�*°�*�§@�*���h:��-�§0�����2�@�Z§ ���7��È�Ë�·�:�«���R§���°��7�8}������Z���f¡�� �����7�@����¡�°@���*¡��*�@�¦�-�Í�¸�2��*±´�´�¸��f���R�â�f���7��¡��*�@�¦��È��:� �7�·���(����:�����7��TIh�����7�>�·Ï(���7Ï®���:� �#�*±´�´�¸��f�����7�<MY:��7� ����� D �Ë�-È��-±7�=Ü�·�����7�����-����O�#���-¡����¡�°@���*¡��*�@�¦�-�����7� �*±´�O����-���R���(����:�����7�� È��:� �2���¨�-�·�7��¡��*�@�¦�]I(���:� ��Ï(�·�7Ï(�����7�@� �*±´�O����-�Í�¸�2�<M¦}

6Qè76 �1ðBZ>ú ì�c�>°��R���-�§��·���:�¸� �·���R��N2�����P[´���@�@�����R�h��� �-�����:����·���O�8��� � ����:�����7��´�X°��·�7�7�¦�-¡�¡������µ8�����*��°����-±7��§@���-�����§2���*�-Ï�����7�Ë�-È��7��� �������:�7�����R�:�·���R�����-�_°����7�7�:�-¡ �*}���������@�¸±2�*�¦�����-�#���-¡��.±-�O�����R�"��� °�-�·���������7���R§����@���»²rÛm¸PÀ%¿*}_ñÎ���>°������*°����R�Í�*�>�¦�"� �:�-�¢���R�:�����7���-�_±´�O�����R�*}

½��2� �:¶¾�f¡�°@���=:8õJm�d��Z�"�������Ù�@°���f�.���@���*�7�*� �@��¡�È�*�¦�%:��-�§�ï�ö>÷¸a�d��������������>°����-��¹�@�-�������7Ï(°�f�¸�@�#�>��¡�È�*�:�*}�w�������ò±-�O�����R��È�:���7���ò�·�������³º÷@÷>ö ���>°��7}��a��-�¦�7�:�·�*�¨�����Í�¸���@��È�:���7��� ���Ë�����»kªd@í4õ�m�c ���@°�7}Ë�c�@°�R���-���§2��±7��§@�R§¥���>�·� � D �¨�·���7���Í�R�*µ

û Ê��2�h���#�Ù�@°�R�ÔI¦õ�med<:Hº¾÷@÷@öG:lk�d>í�õJm�c<:4�O�R�mM¦}

Page 17: Functional Programming Using Calm Light

~R Ú����X��Ý�ÞV��(�+� � ß=� Ú Ú Û�Ü�Ú_ÞV� Ý_ß

û �a�7¡�°��7���§����@°�R�#��������7��� ����:�����7��´�Ó���@°�R�*} ½¾�7�â�:¶�-¡�°@���=:����������@°���-�_� ����:�Í�¸�2��"� ���2¡����>���*�2�*�¦����#���>���*�2�*�¦�w����§@�*���2���R§�È@� õ�med¥¢ f õJm�d�}Ó����� ���>°�� �-��(����:�����7��Ó� ���2¡ÎÈ�@�-���R�-� ±-�O�����R�c��������f�¦�7�:���*������������>� �Z� D ���������*�¤º÷@÷>ö�¢ f kªd@í�õJm�c4} ����� ���@°���-�â°�O���¦� D ���@����Á�¦�����:�7¡�°�7���*�@���Z���-� ���>�·�*�7�*��-�§ D ���>�����Í�R�:�7�§Ë�:�7¡�°�7���*�@�����â�ªÈ�@�-���R�-�˱-�O��������� D ���������*�òõ�med¥¼½º÷>÷@ö�}

�p���p�7�:�h:>�f�>���:�7¡�È@����-�����7���-�8�����"�Ù�@°�R���-È��-±7�TIÙ�-�§��*±7�*��¡��7����¾BM#���c°�>���Ù�¸È@���7}����@�����:�7�@��§�È� D ���������*���7�*µÊ��2�h���*�a�@°� µZµ)¿ õJm�d

À º¾÷@÷@öÀ kªd@í�õJm�c

�a�@°� µZµ)¿ Ê��7�h���*�c�>°��À �c�>°��B¢ f �c�>°��À �c�>°��B¼ª�c�@°�

� ��:�¨�E���f¡��8���7°@���*±7�:�.°����¦�2������7�cÈ�*�*� �*�>���*�·�R§��¸� �������:�7¡�°������*�h:¾�����H���-¡���°������:�R��� ���¦�f���¦���-��O�����:�¸������R} ½w���¦��� �f�V�O�¢�`:¾�¸�#°�*�Í� �7�·¡ �T¿%Û�°G²rµ�Á_µ=°;µ=¶BÛ^¿a³ ¿a: D �@���·�ò�:�7��h�����¦����� �·���R��N2����� D ���*�����*� ������°����¦�7����È�:���7���>������·���#�Z�f���7��-�7���7�"���7�R}_½��7�"�:¶¾�-¡�°@�¸�=:����*���#���#�����@�>�¦�´¶ �*�����7�;/TIÙ�ª°�-���*�@�����R�h��������¡ª�Z�·�h�����PM¦µr � ïH�0m�_�d4õ-÷�mj¡¥¢ f ¡ ��� � �`� � £-�0�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���ÉÊ�Ë È ��ÌH�0� à ��ÍÎ� É Í�Ï�Ð Ê�Ñ ÏH�eÒ�Ó0ÓÉ Ô0ÔÕHÖ �¦�0×�Í Æ�Ø`ØlêØFÙ�������*�-�·�*�¦�Q½�Ú`Ú0Ú�¾����§@�*���¢�����������#���z�*�f�����7� D ���*�·���������*���·�7� D �2� §@�*���R�:���R§�}�����ª�Í�R�:�7�§��-��O���z�Ù�Z� °�*���(�7��¡��R§����H²rÛm¸SÀ/µ=°;µ=¶BÛh¿%³ ¿ µ����������������*¡��-���·�*¡�°��¦�"��� �2���h���7�ò�����>°��¨�·� �R�7�·�����È��:¶z°����R�·�h���7�ò�-�_������°����:�7���=:��-�§ ��� ���@�>�·���R�h� �*�¨�·�������>°����-�a�·��� D ���-����°����¦�7���7}]�(�a���>°��¨�-��´�¸���h���"�p�O�¢�Z�I(�p} �7}c�¢���·���¨���������*¡����#����-È@������� �2���h���7� �����*��h��È@�������@°���·��������°����:�7����MY:������*� �����>°����*���·�7�����#���*°�2�����R§�-�§����-¡ª� D �O���¦���(�7���-���7�����*�"����°����h:8�·�ORÙ�R�:���������������:�������*�@��°����¦�7���7}#� �*�·�����������>°��¨�*�·���7�bIÙ�*�-�����7���7§�§���@��¡�È�*� ������È�@�-���R�-�<M¦µr � ïH�0m�_�d4õ-÷�mj¡¥¢ f ¡ ���H£ � �`� d@í���î £¦�`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���ÉÊ�Ë È ��ÌH�0� à ��ÍÎ� É Í�Ï�ÐHÒ Ê7Ñ Ï0� Ø�È�Æ Ò Ó`ÓÉ Ô`Ô0Ô`ÔÂsÛ �HÜ Æ Í Ä Ø�Æ Ü0Ü�� à � Û ×HÜ�� Ö�Ä�ÆjÝ0Ã`ÃHÅRÞÝHÈ �j�HÜ È Ü ÆHßµà �`� Û � Ö�ÄáÆ ���R� Ù�����#���OR��R�:�����7� �f�4�¢�¢��Ï(���>°��R§�°����¦�7�Í�R�_�����*�O�¢���R§�¿a²rÁO´=°�ßH²rÛm¸¹³�°�ß7}C�a�7¡�°@�«���*�¦��� �7� D �R��N7�������>°��R§����-���2��-�7�R�]I���:�(�7���:¶¾�-¡�°@�¸��M D �7�@��§���������R�2§��Z�·�����¨� D �-�·�@�¸����¡��R�����-�2���-�§��:�7�@�����>���������:��� D �7��N �-�"�����������ON��-�Ó�2�*�����������½;âH��k î-í@íz÷2íS¾��7�H½�ãfö@ö¾îªclafö õ�m k�d@í���_ªd�õ-÷�mG¾�¡��R�·���-�7���-��������Ï(�Í�¸¡��7}

� ��:�������*��h��È@�������>°�����7��È�*�*�ò§@�R§@��:�R§¥�(�7���������:¶�°����R���h���7�F:¾�����*�Ë�������*±-�O����-�����7��°������:�R���XIÙ�:�2¡�°@��Ï���-�����7�F:@���>�2§2�¸���Ë�f�§��:¶z�R�:�������7�<M�¡ �O��È��*�-���8}Ì7�·���7�������@°@�¸�����*�@�(�7�¦�:�R� D �����������Ë�·���R�-���-�§ D �:�¢��Ïp��������:�����·�R§Ë°��·�7�7�¦�-¡��*}â� �7���*�-±7�*�^:7�����7§�§����Í�R�:�������Ù��-�§ª����:���R�7���R���·��� ��°��*�R§��-�8°����7�7�:�-¡ §@�*±7�:���7°�¡��*�>�h:��h����:��¡��>���c�Ù�@°�@�a�-�§�¡ �f�>���:�7��:�*°�����´�X�*�·���7�¦�c�-���CO���Op%�Lk~n�n$#;O=n|g7&@z|��kOn�kmtLk~n$#%y{z|yVp`k'äYgOy��%n�km�Og ��ge} sYqrg#y%#%t%p`k'& kmtLk~n$#%y{z|yxk�t�"Bå$æ3çJè)é3ê;å`æEë3ë!ìJë%í<lxk7#�s%�O�7�hq7O�"^gOprg��Op{z|t^uX} s@q<z|t^yrp`k�t^��g�Lk'"%n$#X} s@qrl#g�"X�`f�k�q`km�OprgOqF�OsYt^yrp`k�t%pryO�

Page 18: Functional Programming Using Calm Light

(�$î���äT��Ü�Ú#ÝF� Û�Ü ß ~-¿

���¦�f°�°�R§��-�§ �Ù�¸�2��O���R§�È>���·���â���@°�â�-��´�¸���h���*}�½w����O�¢�¸�=: D �:�¢��Ï(���>°��R§�°����7�7�:�-¡ �a§@�����7�����*�R§ §@�@��-¡����#���@°����R���:�CIp����� �7§�§2�������7��� ����:�����7��§@�@�R�_���7�_���*�R§��������R��� D ���*�����*�a�7�_���2���¸�:�a�-���2��¡��*�>�:�_�-�����>��¡�È��*�¦�@MY:2���*��:����¦�f�����#�Ù�@°���f��O���z�h���#�O�¢��� D ���(�7��¡��7�����;ï��·�¸�*�@�#¡ �7�·�@�¸�����:�z§@�7}

6Qè3ð ñHò_ôöõ�í�ëYîÔôöì������¡��>�Í����¡�°�7�·�¦�-�@��N2���§��-�a±´�´�¸���R� ���Ë�(����:�����7��O�a°��·�7�7�¦�-¡�¡������ �-�·���(����:�����7��O�_±´�O�����R�*}����-�·���*¡ �-����Ï�*�O�¢���=:.�ª� ����:�Í�¸�2� ×þ�-�a���>°��ÖÌ Å¦Îé���������@���¨�f���:�7�����R��°��7�§@�*��:� D �@���·�ò�7�������·���-���R� D �������R�7��� �:���*¡��*�>��-�_���>°��QÌ �����@�ò?2����¡��*¡�È�*� �-�_���>°��QÎ�}

�©�·Ú�§@�*���7���R�"�-� �:���*¡��*�@� �-��ÌQ:@�����*� D � D �¢�¢� D �Í�¸�·�Q×FIOÚ<M8�(�7���������-°�°@�¢���*�-�����7�Ë�f�·×����_Úw}ÓÃ_�f���*�>�·���R���R��-���#�-�(���*������:���R���XIp�����*���-���#����R§��7�@�����(�7���7���2��°@�¸��������È��:¶z°��·�R���h���7��@MY:���� D ���:�7�@��§Ë�´�Z�Í� D �������QIO×FIOÚ<M�M_�7�D �:�¢�V�7�ÔI�×�I�I�Ú�M�M�Ma�2� �h��¡�°@����×àÚw}â������±´�´�¸�����-� ×\Ú¥���#���������@�ò?2�����:���*¡��*�>���f� ÎÉ�7�������·���-���R§ D �����ZÚ È>����������@�����-�V�:�2�����R��°��7�§@�*��:��� �7�x×�}����� ���7�:�-�����7�1×FIOÚ<M �����·��� �7�������2��¡ �O�¢���ò�*¡�°@���-�7�R§ ���0¡ �-�����*¡��-�����*�����ò§@�*���7����� ����:�����7��´�"�f°�°@�«��Ï

�*�-�����7�8}��"� D �*±7�*�^: D ������´�«�aÈ�� �*�-���:�(�@�a���7�����Ë�:�2�@� ��������(����:�����7� D �����þ�¸�:���-°�°@�¢�Z�*�f�����7�8} U �����O�à½:������(����:�����7�»× D �����¥� �7�·¡ �O�8°�-�¦�-¡��*���*�xÚG¾P:�¡��R�-�@����������-��× ��7��È�*�*�ò§@�:Á���R§�È@�4µ×˵�Ú ÇÅó¯

�7�h:Ó�¸�"���-¡��`:a�·��-��������È��z§@�&�-� × �������2¡��*���@�������¢� N7� � ï��`m�_ªd�õ´÷Umµ¡©¢ f p`p`p £ }ò½�����:�����7����-����±´�´�¸���R��7� �7�����*��±´�´�¸���R�Ò}>�p�ò°�f�������:�@���-�h:w� ����:�Í�¸�2���¡��R� È��°�7�����R§ �7���-���7��¡��*�>�¦� �����7�����*�#�(����:�����7��%:c�-�§;[R�7����*�����·���R§Ë�7�c���R���@���R}�½��2���:¶�-¡�°@���=: D ���:�7�@��§ D �������7µr ï��`m _�d�õ´÷Umoïo¢ f � ï��`m�_ªd�õ´÷Um�¡�¢ f � ï � ¡ � �H£ ¢ �H£0£-�0���� Ê �J�¦�o� É ���¦�0Òo� É �J�¦�o� É �J�¦����ô Ë È � É����-��� ����:�����7���¦�óN7�R� �7��°�f�¦�-¡��*���*�#��� ����:�Í�¸�2�àI©�¸�*�"��â�*�O�¢�����âï;M��-�§¥���*��������#�-���7�����*��� ����:�����7� D �@�����F:D ���*���-��±7�*� �-���-���2��¡��*�>�#I©�¸�*�c����*�O�¢����F¡GMY: D �«�¢�8���*�����·� �����"°����R§@�R�:�R�����7���-�������#±´�O�����#�-�8�����â�-°�°@�¢���*�-�����7�ï � ¡ � �H£ }�������Ù�@°���f�Ó����f��� ����:�Í�¸�2� �����7�@��§¥È���·�R�7§��7�*µ � õJm�d¥¢ f õ�m�d £ ¢ f � õ�m�do¢ f õ�med £ }

6Qè7õ öÃúK÷>ô_ë�í�ëYîÔôöì�p���Z���¸¡�°�7���:�-�>�������-��±7����f¡��R������±´�´�¸���R�Ò} U ����O±7���O�����R�7§@�����*�*�Ë���7¡�����f¡��R§�±´�O�����R�*µ D ���*�´�«���R§¥�����*¡®%´=ÁYÞHµ=¶�¸Sµ=ÁOµ=ÞHÀ^²rÀhÁm¿ }/�p�&�������:¶�°����R���Ù�¸�2� � ï��`m�_ªd�õ´÷Umµ¡©¢ f ¡ ����£ :8��������-¡��³¡ ������� �7�·¡ �O�a°�-�¦�f¡��*���*�R}�p�:�a��f¡������c�������:���*±´�f�>�Rµc����-���f�¸�������c���>�����-���2�����*�a�7����§@�@�R�a���2���·��-���7�#�����â¡��R�-�@�����¨�f�.����� �:¶�°����R���h���7�8}U ���:�7�@��§¥��R±2� D ���������*� ����-�c� ����:�Í�¸�2� � ï��`m _�d�õ´÷Um�øo¢ f ø � �H£ }

�©����� DÒD ���-°�°@��� ���@���#�(����:�����7�����G:8���O�=: ���`� : D � D �¢�«���*±´�O����-�·���������:¶�°����R���Ù�¸�2��ø ��� D ���*���Bø��Z� �����±´�´�¸�����-� ���`� }cÇâ�-¡ª�¸���ùø ������±-�O�������-� ���`� ���°ø � � ��� D �Í�¸�·���*�Ë�7�*µr ö�î�djøeú ���`� õJm�ø �����`��������R����û���@�����:¶�°����R���Ù�¸�2�<��� � �¸�*�@�O�_���-¡���°����¦�7�Í�=:â�-�§ �����òö¾îªd��:�7���������:���������§@�*�R§ D ��§@�:�¸������R§ �¸� ���-¡��°����7�2�¦�-¡ �*}������ö�î�d �:�2���������:�c���>�·���z§@��:�R�b¶B´h±@µ=¶Fá%³{°GÝ=³{°ßó¿ ´~®9�hµ!¶�¯�À%¿T²r´>³{Ý=Àh°;²r³ ü#ÀhÁm¿ }_�����*���-���_¶B´h±@µ=¶2È�R�*�-����������

���:�7°����-��ø��Z�"���R���·�����:���R§������������:¶z°��·�R���h���7� � ø � �H£ }_����� ��§@�*�>���¢Á�*�ýø/N7�*°������¦�"°����*±2�¸�2�� È@���§2������I(�¢���-�@�GM

Page 19: Functional Programming Using Calm Light

~RÐ Ú����X��Ý�ÞV��(��� � ß=� Ú Ú Û�Ü�Ú_ÞV� Ý_ß�O�(���*�#�������*±-�O����-�����7���-�a������½*ö¾îªd��R�O�¦õ�më�R�O�`¾��:�7���������:�O} U ���*�-�������R�mNË����f�2ø���7�"���7�âÈ��*�*�ò�-���7È�O�¢���§@�:Á���R§ È>�������2�����������*±´�´�¸��f�����¸�Oµr ø �`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É Ö Ó`ÓÉ-ÔÂsÛ-Æ+Ç × Å`È¸Æ � ß�Æ �¦�`� Ë � Æ�ØuÖ ��Ü È � Ý`Ã�È � ßáÙ�����*�O�aÈ@���§2�����>����h����� ö¾îªdË�O���������@������§@��:�>¿;�µ=Á@³�°�ß��-��Ih°�>���Ù�¸È@��������¡��*Ïp�:�7��Í��¡������PMâ�*±-�O����-�����7��*} U ���*��*±´�´�¸��f�������Õ½*ö¾îªdj¡�ú0¯ ? õ�mþ¯ / ¾P:�¯ ? �7�*�¦���*±´�O����-�·�R§&�7�@���ò�7��:�7} ñ �¢� �z�*�:���·���*��:�R���-�2¡����u¯ / �7�*�:�R����������hµ!¶�¯�À �f�A¯ ? D �@����� ��7��È�*�*���:�7¡�°������R§¥�7��:�7}a½¾�7� �:¶�-¡�°@���=:��������:�7¡�°����¦�-�Í�¸�2���-�͵ö¾îªd+º8õ�coúÿk���b��7÷2ï�� � í�õ;b8î��´ïla`_ªd�÷7ílkþ� ¬�� q ����� �õ�m�ºXõ�c � � �0� º8õ�c £ ¢ � � ¼ � º8õ�c ����£`£��`�D �¢�¢�ÓÈ������R���"�:¶z°��*��h��±7���·��-�8µ� k���b��f÷2ï�� � í4õ;b8î��-ï�a`_ªd�÷2í�kþ� ¬�� q ����� � £� � �j� � k���b��7÷7ï� � í�õ>bwî��´ïla0_�d�÷7ílkþ� ¬�� q ����� � £0£¢ � � ¼ � k���b��7÷7ï� � í�õ>bwî��´ïla0_�d�÷7ílkþ� ¬�� q ����� � �Î�H£0£-�0�

������ö¾îªd��:�7����·����:�â�O��������2� ���-���7È�O�w� �7�·¡ �(�7� �·�7°@���*±7�:�Ó§@�R�·���-�¦�-�Í�¸�2��%:4�2�c���8µr ö�î�d�k���_0_@î`k0k7÷7í�ú�ïH�`m _�d4õ-÷Umµ¡¥¢ f ¡ � �R�0�Ü È Ì`Ì Æ Ü`Ü Ã�Ø �°���¦�o� É ���R�¨�oô Ë È � Ér ö�î�d�k�U� a-í�î úHï��`m _�d�õ´÷Um�¡¥¢ f ¡l¼ª¡ �`�Ü � È × Ø�Æ �¤���R��� É �J�¦�j�oô Ë È � ÉU ���*� ��±´�´�¸������7��È�*�*� §@�R�·���-�·�R§ �f���·�7°@���*±7�:�`:��������"�-�V�:�2���¦�����O±´�O�¢���-È@����§@��������� �·�������R��� �-�_���������R�·�h���7�8}r k�U� a-í�î � k���_`_>î`k0k7÷2íµ� £¦�`��������R����Ð�§r k�U� a-í�î �`��������R�o� É �J�¦���oô Ë È � ÉU ���*�˧@�R�·���-�������Ë�ª� ����:�Í�¸�2��O�.±´�´�¸���=:��·���*�����-�������7¡����O�����*�·��-����±7�¨�Í�>�@�¦�O¶��R� �O±´�O�¢���-È@���7} ½��2� �:¶¾�f¡�°@���

D ���:�7�@��§���O±7��§@�R�·���-���R§¥�����³k�U� a-íî � ����:�����7� È>��µr ö�î�d�k�U� a-í�î ¡�új¡�¼�¡ �0�Ü � È × Ø�Æ �¤���R��� É �J�¦�j�oô Ë È � É�7�TI��·�¸�@���*� �����·����¡ �-�����*¡ �f�����*�O�8���7�¦�-�����7�<McÈ>��µr ö�î�d�k�U� a-í�î � ¡ £ új¡l¼ª¡ �0�Ü � È × Ø�Æ �¤���R��� É �J�¦�j�oô Ë È � Éñ"�«�������R���¨§@�:Á�@�������7����f������?7�@��±-�O���*�>�R}

Page 20: Functional Programming Using Calm Light

(���!���<�X� Ý����Xå1���C�Vå<�*Ú��#ÝF� Û�Ü ß ~RÄ6Qè�� �à÷xï<í�ëY÷Xø�÷2Z³Z¡ø%ëYõV÷#í�ëYîÔôöìñ ¸Sµ=Á@²r³{µ=¶Gµ@¸!¸¹¶B³�±@µ=²r³{´=°����V�����â�-°�°@�¢���*�-�����7���-�8�#�(����:�����7���������7¡��"È����a���7�a�O�¢���-����¦���-���2��¡��*�>�:�*}��a�2��h��§@�*�h:�(�7� �:¶�-¡�°@���=:������ � ����:�����7� ï §@�:Á���R§¥È>��µr ö�î�d�ï�¡oú ï��`m�_ªd�õ´÷Um�ø¥¢ f � ¼�¡ � ø �0�Ë �����R�o� É �J�¦�o� É ���R�j�oô Ë È � ÉÇ"� D :>�·�����:¶z°����R�·�h���7��ï � � £ §@�*���7�·�R�������#�(����:�����7� D �@����� D ���*���-��±7�*���-� �f���7��¡��*�@�Fø ���*�·�������������±-�O������-� � ¼�� � ø�}<�������-°�°@�¢�Z�*�f�����7��ï � ¡ £ �Z���*�O�¢���R§���¸Pµ=ÁY²r³{µ=¶xµa¸=¸¹¶B³�±@µ=²r³{´=°G:��h����:��ï D �O���¦�¨� �7��� D �ò����*�:�R���Ù�¸±2��-���2��¡��*�>�:�%:��-�§����â�-°�°@�¢���R§ �����7�@�����7���7}a������±´�O�������-�Óï � ¡ £ ��� �����¢�¢�V�¨� ����:�����7�8}

U ��¡ �O�����@�� §@�:Á�����-�Ë�7§�§2�������7���(����:�����7� È>��µr ö�î�d�a����õ�d�õ´÷Um�¡oú�ïH�0m�_ªd�õ-÷�mjø¥¢ f ¡ � ø �`�× ß0ß �0�`� à �ó���J�¦�o� É ���R��� É �J�¦�j�oô Ë È � É���@���#�*�-�Ë�O������È�� D �������·�*�8µr ö�î�d�a����õ�d�õ´÷Um�¡�øoú+¡ � ø �0�× ß0ß �0�`� à �ó���J�¦�o� É ���R��� É �J�¦�j�oô Ë È � ÉU ���*�-� �����*�˧@�:Á�����·���¨����*�:�R���Í�7���(����:�����7�ËÈ@�4µr ö�î�d�k���_0_@î`k0k7÷7í�ú�a����õ�d4õ-÷Um �R�0�Ü È Ì`Ì Æ Ü`Ü Ã�Ø �°���¦�o� É ���R�¨�oô Ë È � ÉÇ"� D : D ��¡ �O��������7���ýk���_0_@î0k`k7÷7í��(����:�����7�8µr k���_0_@î`k0k7÷7í � k���_0_@î0k`k7÷7í �H£¦�`��������R�����

���öú#ïFõ ëYì<ú ìú]�8xzQ-W7Y®y*x�¬��(L�� ³ò�^ÀHÀJÁLµ!Þx¸<¶�À�¿Q´O®�®%¯°;±h²r³{´=°P¿���³{²!��²!�ÀC®a´!¶�¶B´���³{°ß/²rÛm¸SÀ�¿����� � õ�med�¢ f õ�med £ ¢ f õ�med����õJm�d�¢ f � õ�med�¢ f õJm�d £��� � õ�med�¢ f õ�med £ ¢ f � õJm�d¥¢ f õ�m�d £

ú]�8xzQ-W7Y®y*x�¬��®r! À���µ��hÀ�¿aÀ@Àh°"²!�µ!²_²!�À\°Gµ=ÞHÀ%¿�´O®H®a´!ÁYÞHµ=¶C¸Pµ=ÁOµ=ÞHÀh²rÀhÁm¿Zµ=ÁOÀàÞHÀ@µ=°G³{°ß!¶BÀ%¿@¿��#"Y²H³ ¿»²!�À^°¸S´ó¿Y¿%³ á�¶BÀö²r´�ÁOÀh°Gµ!ÞöÀ�¡�á%ÛBø\³�° � ïH�0m�_�d4õ-÷�mj¡¥¢ f ¡ � ¡ £ � �µ=²]¿;�´=¯�¶�Ý$��À/Ý=´�³�°Z´!Á�Ý!ÀhÁQ²r´�ÁOÀh°Gµ!ÞöÀ�¡�³{°øZ³{°� ï��`m _�d�õ´÷Um�¡o¢ f � ï��`m�_ªd�õ´÷Um�ø�¢ f ¡ � ø £`£% ³�°;²&�xÁOÀh°;µ=ÞHÀ�øàá%Û('ùü Ám¿a²&�*)x¯À�¿a²r³{´=°+�,��Û-ú]�8xzQ-W7Y®y*x�¬���¬#. �^µ=¶B¯µ=²rÀH²!�À ®a´=¶{¶B´���³{°ß/ÀJÁm¸¹ÁOÀ%¿@¿a³{´=°P¿0/`ÁOÀ1��Á@³{²rÀö²!��ÀhÞ)¯°;²r³�¶F°;´J¶B´=°�ß=À^Á�¸P´�¿Y¿%³rá%¶BÀ�2��

Page 21: Functional Programming Using Calm Light

|7� Ú����X��Ý�ÞV��(�+� � ß=� Ú Ú Û�Ü�Ú_ÞV� Ý_ßö¾îªdj¡�ú ���0� õJm �`� ïH�0m�_�d4õ-÷�m�ø�¢ f ø � ¡ £ ¡ £-�0�ö¾îªdj¡�ú ���0� õJm �`� ïH�0m�_�d4õ-÷�m�¡�¢ f ¡ � ¡ £ ¡ £-�0�ö¾îªd�ï � ú�ïH�0m�_ªd�õ-÷�moï � ¢ f � ï��`m�_ªd�õ´÷Umµ¡©¢ f ï � ¡ £õ�m ö�î�djcoú ï��`m�_ªd�õ´÷Um�¡¥¢ f ¡ ���õJmoï � c ���`�

Page 22: Functional Programming Using Calm Light

& ')(+*-,/.10 3

Y ¤£J"8 7 E54 § GIJ

U ���:¶�-¡���������� ���@���â�·��-°����*� �·���H���-¡��8È�7�h��� �Ù�@°�R�Ò}

ðHèYé 6-òù�87>ú#ïFì���-¡ª� �����7�@��°����-±7��§@�R��� D �ò�>��¡��*�����Ë���@°�R�*µ ���@���*�7�*�¦��Ih�Ù�@°�&õJm�d;M¨�-�§ ¹�>�-�������7Ï(°��-���>���@��¡�È�*�¦�üIp���@°�ï�ö>÷¸aªd;M¦}��h�>�·�*�7�*�¦� �-�·���¢��¡������R§ �����������¦�-���7�_Ä |:9<;Ó�O�R�p|�9=;xÄ<~7}��p�@���*�7�*���-��������¡��*����� �Z�"�¦��N2�*��¡��z§@�@����|:9 ? Ü����-� ���%:_�-�ò���@���*�7�*���7°��*�¦�-�����7�ò�·��-���-±7�*�7¹� D ��§@�>�R� ���7���¦�O����� �f�ë�*���·�7�h:8È��������������R���@�����h��¡�°@��� D �:�-°��-���2���§�}aÃ_���R§@�:Á���R§¥�7°�*�:�-�����7��ÔI(� ����:�Í�¸�2��@Ma�7�����@���*�7�*�¦�c����·���§@�7µ

� �7§�§2�������7�¢ ����È����¦�2�:�����7� �-�§�����f��� ¡ª�¸�@��¼ ¡��@�¸�Í�¸°@�¢���*�-�����7�> §2��±7���h���7�

b�÷�� ¡���§@�@�¸�Ì7�2¡����:¶¾�f¡�°@���R� �-�_�:¶�°����R���h���7��*µ

r ��¼ �o���A�0��������R����Ð�ûr ��¼ � �o�¨��£-�0��������R����Ð:?r ��¢A@�¢ �A�0��������R������§�����*���Ë�f����°����R�:�R§@�*��:�����@���R���·��-��¡ ��N7��¼ È@���§ �����7�@���*������-� � :��f�§0���ò�7�8}\�p��§@�7��È��h: D �������Ë�:¶����¦�°�-���*�@�����R���R�Ò}Ì7���p�-�h: D ����O±7�����7�����*�*�����������>°��¨�f�������R�����-�Í�¸�·��¡��*�������7°�*�¦�f�����7��*}������*���O�¢�a�:¶z°��R�:��� D �����>�·�*�7�*��-���2��¡��*�>�:�%Ü ���G:c�����*�<�-�����(����:�����7����¦��N2�����ë�7���¥���>���*�2�*� �-�§0�·�*�������@����� �þ�(����:�����7�0�(���7¡º���@���*�7�*�¦�����

���>�·�*�7�*�¦�*}0������I(�(����:�����7��O�rM¨±-�O�����Ë�-��������&���@Á�¶0��§@�*�@���¢Á�*�¦��¡��R� È���7È��¦�´�¸���R§ È>� �¦��N2�¸��� �����:���H¸¹ÁOÀ%üKÁ±7�*�¦�Ù�¸�2�8}r � í�î´ï�õ�¡ � �0��������R�o� É �J�¦�o� É ���R�j�oô Ë È � É

|�~

Page 23: Functional Programming Using Calm Light

|7| Ú��X��� Ý.ÞV�¨îP� �#��ß=�*ÚÎÝ®,·�cÞ�ßr � í�î´ï�õ�¡o¼ �0��������R�o� É �J�¦�o� É ���R�j�oô Ë È � Ér � í�î´ï�õ�¡ b�÷�� �`��������R�o� É �J�¦�o� É ���R�j�oô Ë È � Éñ�� ����� D ��È@�������:���#�Ù�@°�R��:����������@Á�¶��7°�*�¦�f���7�¦� � :¦¼P:8�R�O��:�§@�����7� D �7��N��7� ¹�>�f�������7Ï(°�-���@��±´�O�����R�*}�ñ���*°�-�:�-�������*� �f�¦¹�>�-�������7Ï(°��-���>���-��������¡��*�������7°��*�¦�-�����7��c���"°����-±7��§@�R§�µ

� p �7§�§2�������7�¢�p ����È��·�¦�7�:�����7�Ë�-�§¥����-����¡����>��¼�p ¡��@������°@�¢�Z�*�f�����7�> p §2��±2�Z�Ù�¸�2�

k�7í`d �E?2��-�����·�>�7� � :zö@÷Hc �:¶�°�7���*�@�����-�����7���-�§����7�@�-��������¡

kzõ�m�:l_7÷�kP:��O�R� �����´�.�������7�7���2¡��*�������#�7°��*�¦�-�����7��U ����R±2��� D �ë�:�2�>±7�*�:�h���7�&� ����:�Í�¸�2������ò�7�òÈ�2��N0�-�§&�(�7���·�0È�*� D �*�*�0���>�·�*�7�*�¦���-�§^¹�>�-�������7Ï(°��-���>��@��¡¨È��*�¦�*µ õ�m�d��7÷7ï�-ïzö@÷�a�d �-�§�ï�ö@÷�a�d��7÷2ï���õJm�d�}

r��u�j� p7� �`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É ÐjÏ Ñ Ù �RÓ`ÓÉ Ô0Ô`ÔÂsÛ �HÜ Æ Í Ä Ø�Æ Ü0Ü�� à � Û ×HÜ�� Ö�Ä�Æ Ë Å�à ×0� ÞÝHÈ �j�HÜ È Ü ÆHßµà �`� Û � Ö�ÄáÆ ���R� Ùr ïzö@÷�a�d�f÷2ï���õ�med �u� p � p�� �`���� Ë Åeà ×0�¨� � Ù ��X�*� �� ��� D �f�¸±2�¨���7¡����:¶¾�-¡�°@�¸�R�"�-�_�>��¡��*�����*�O�.�(����:�����7��*} U �����¦�-���"È>��§@�:Á�@�����Ë���7¡���±7�*�·� �h��¡�°@����(����:�����7�� �2���>��¡�È�*�:�*µ

r ö�î�d�k�U� a-í�î ¡�új¡¥¼�p5¡ �`�Ü � È × Ø�Æ � Ë Åeà ×0��� É Ë Åeà ×0�j��ô Ë È � Ér k�U� a-í�î � p7n �`���� Ë Åeà ×0�¨� û Ù<Br k�U� a-í�î � � p�n > p°��p7n £¦�`���� Ë Åeà ×0�¨� B�Ù û0û`û0û`û`û0û`û0û`û`û0ûr ö�î�d�k���b��7÷2ï��`k�U��a´í�î0k � ¡DC7ø £ ú�k����a-íî � ¡ £u� p�k����a-íî � ø £-�0�Ü È1E+FeÃ Ë F Ü � È × Ø Æ Ü � Ë Å�à ×`�HG Ë Å�à ×0��� É Ë Å�à ×`����ô Ë È � Ér ö�î�d ô a7ö7ï� � õuú��Kp ���¦��¬�I > p � p�nr õJm¥k��Ub��f÷2ï�0k����a-íî`k � _7÷�k � ô�a7ö7ï� � õ £ C kzõ�m � ô�afö2ï� � õ £`£-�0���� Ë Åeà ×0�¨��Ð Ù<B

Page 24: Functional Programming Using Calm Light

îP� �!� Ü/�* ��ÞC�#ß |7¤U ����� D §@�*±7�:���7°0�Ë�·���7���Ù�Z�*�´���:¶�-¡�°@���7µ��������:�7¡�°����¦�-�Í�¸�2�ò�-� ���������@�7���-��� � ����:�����7�&È@�ëÇ � D ���7�¦� �¡��*������§�}_Ç � D ���7�¦� �V¡��*������§��*�-��È�� ���:�-���R§��7�w�(�-�¢�¸� D �Òµ8�¢�·ÿ ���a�f� �-°�°����O¶@�¸¡��-�����7������� ���@�7�_�-�X� � ����:�Í�¸�2�×�:������*�8µ

ÿbÄ ×�I�ÿPM×J I�ÿPM

�����ËÈ��*�����*���-°�°����O¶@��¡ �-�����7�F: D ���*���>× J I�ÿPM"����������§@�*����±´�-����±7���f�]× �*±´�O����-�·�R§0�-�öÿ�} ½¾�7���:¶�-¡�°@���=: D �����×�I�Ú<M�¿"Ú / Ä5K;: D ����R±2�Q× J I�Ú�M�¿ |=Ú�:z�f�§������*���:�(�7���7µÿbÄ ×�I�ÿ�M

×J I�ÿ�M ¿ÕÿbÄÿ / Ä5K|!ÿ ¿ ÿ ÉMLN|

U � �*�-�˧@�:Á�������(����:�����7�O��î-í�õ�i��(�7�â�f°�°����O¶>��¡ �-�Í�¸����������§@�*�Í�¸±-�-����±7���-�V� �(����:�����7� �f�����-��±7�*��°��-���>�È@�4µr ö�î�dP��î-í4õ�i�ï�¡M�H¡oú � ï � ¡ � pQ�H¡ £ ¢�p�ï � ¡ £0£ > p$��¡ �`�ß�Æ�Ø � Ç � Ê7Ë Åeà ×0��� É Ë Åeà ×0�`Ò�� ÉuË Åeà ×`��� É Ë Åeà ×`��� É Ë Åeà ×`�µ��ô Ë È � ÉÃ_�·�´±2��§@�R§O�H¡���� �Í�`ï �·���*�>��������¡ �O�¢�`:����@���"�-��±7�R� �����R�2���7��-È@�����R�Í����¡ �-�����-�_������§@�*����±-�-����±7���f��×��-��Úw}������� �f�«��� D �������(����:�����7�����*��������V�����â�-È�Í�-������� ±´�´�¸���#�-���¸�:�¹�>�-�Í�¸����°�-���@�a�@��¡�È�*� �-���7��¡��*�>�R}��p�c����R������J½-õOï��R�R� d7ô�î�mò�R�O��î7ö¸k>î=¾��:�7�§2�������7��O�a�:�7���������:�O}

r ö�î�d�a�º�k ¡�úÎõOï�¡ f p�nKp7njd7ô�î�m�¡ îfö¸k>îj¢�p�¡ �0�× Ý Ü � Ë Åeà ×`��� É Ë Åeà ×`�µ��ô Ë È � É������¡ �O�����(����:�����7�F:_�-��±7�*�&È�:��� D :�����R���������*�ª�¸���*�O���(����:�����7��*}Ë�����ªÁ�¦�����2���=:¦�`m�d4õ-öG:X���¨�f�ò�:¶¾�f¡�°@����-�â�ZÁOÀ@±h¯�Á�¿%³!�hÀ � ����:�����7�8µ������*�O�¢��� �¸�:���:�¢�â��� �¸�:��È��z§@�=:_�-�§þ����§@�:Á���R§&��h�����þ� ö�î�doí�î0_Ë�:�7��Í������:�_Ihíî`_����� D �V����-�a�·��� §@�:Á�@�������7�����c���R�:���¦�h��±7��M:}��p�c�¦��N7�R�V�������*���-���7��¡��*�@�¦�*µ���°����R§2���*�-��� � �2�³¹�>�f�¦�%:>� � ����:�Í�¸�2�_Oô a�mec�î#� �·�7¡¥¹�>�f�¦�c���ý¹�>�f�¦�%:>�f�§���¹�>�-�F¡�}��(� � � ¡ £ ���V�©�´�Z�Í�=:������*�ù�0m�d4õ-ö ��� �*�O�¢���R§ D ���������7��� �-���7��¡��*�>�_Oô a�mec�î � ¡ £ :w�7�����*� D �Z�Í�=:�¡��������������R���@�����-�#����� D ���-���Ë�*�O�¢�©} U � D �¢�«�â���·�§@�ë���R�:���:�h��±7���(����:�����7���¡��7����·���>���:�����Z�f���*�R}a�����#� D ���7�����*� �-�@¶@�¢�¢�Z�f����� ����:�Í�¸�2��%:�k`aªd�õ�k-ï�õ7î����-�§�õ;b � í�÷�i�îP:7�¦��N2�â��¹�>�-� �7���-���7��¡��*�>��-�§�§@�:�¢��±7�*�����R��°�R�:�Í�¸±2�:�¸���#È��>�-���R�-��±´�O�����â�-�§��®¹�>�f�R}.�����c�(����:�����7��k`aªd�õHk´ï�õ7î����7�ON�� D �*�·���*�_�����c�¸¡��-�7��-�����¦���-���7��¡��*�>�_È@��ï������Í¡ �O�¢���*���·��-�Ëî � kzõ-ö>÷Um¨�2�a���7�h:2���@��a�·�R��������� D �*�����*�Kø������·���>�Í�â�*���7���2� ���������@�7��-�.ï�}a�����#�(����:�����7�òõ;b � í�÷�i�î¨�:�7¡�°����·�R�����������:¶��â�-°�°����O¶@�¸¡��-�����7����h����� �����#�(�7��¡��@�����-��±7�*��È�:��� D }�������������*�#�����*�O��� ����:�����7��#�-����§@�:Á���R§ ��h����� ���*�7���*�7§@���-�aö¾îªd��:�7������·��:�¦�*}_����� D ���-���#� ����:�����7�¥���*µr ö�î�d+m4î-ó0d�÷UmHï î � kzõ-ö@÷�moúr ö�î�d�íî`_½�0m�d�õ´ö � _Oô a�m�cîu¡oúr õOï � � ¡ £ d2ô�î�m�¡r î7ö�k@îu�`med�õ´ö � _Oô a�mec�î � _Oô�a�m�cî � ¡ £`£ õJmr ö�î�d�k0a�d�õ�k-ï4õ2î�� ø�ú�a�º�k � ïjø £HR p î � k�õ´ö@÷�m õ�mr ö�î�dÎõ>b � íz÷Hiîuøoú+ø¥¢�p � ï � ø £ > p � �¾î-í4õ�ioïjøÎî � k�õ´ö@÷Um £`£r õJmj�`med�õ´öÿk0a�d4õHk-ï4õ2î��Kõ>b � íz÷Hiî �`�� Æ�à � à �ó� Ê7Ë Å�à ×`��� ÉuË Åeà ×`�0Ò�� É Ë Å�à ×0��� É Ë Å�à ×0��� É Ë Å�à ×0�j��ô Ë È � ÉÌ7�7¡����:¶�-¡�°@���R�"�-�_��?7��-�Í�¸�2� ���-��±2�����µr ö�î�d�k�U� a-í�î��-íz÷@÷Hdµ¡ î � k�õ-ö>÷Umoúr m�î-ó0d�÷�m � ï��`m�_ªd�õ´÷Um�ø¥¢ f øl¼�p3ø¥¢�p ¡ £ î � kzõ-ö@÷�m�¡

Page 25: Functional Programming Using Calm Light

|-¹ Ú��X��� Ý.ÞV�¨îP�°�#��ß=�*ÚÎÝ®,·�cÞ�ßr a�m��¨_��`ºXõH_��´í�÷>÷Hdj¡Îî � k�õ´ö@÷Um�úr m�î-ó0d�÷�m � ï��`m�_ªd�õ´÷Um�ø¥¢ f øl¼�p3øl¼áp ø�¢áp»¡ £ î � k�õ´ö@÷Um�¡ �`�Ü � È × Ø�Æ�FUØlÃ0à � � Ë Å�à ×`��� É+Ë Å�à ×`��� É+Ë Å�à ×`�j�oô Ë È � ÉÌ ÈeÝ �eÌ F�Ø�Ã`à � � Ë Åeà ×0��� É Ë Åeà ×0��� É Ë Åeà ×0�j�oô Ë È � Ér k�U� a-í�î��-íz÷@÷Hd � p�n � î`¢ ¬A�0���� Ë Åeà ×0�¨��Ð Ù û¸ÐUû Ñ Ð�Se§�T�S�S`�r _��`ºXõH_��´í�÷>÷HdVUKp7n � î`¢ ¬��`���� Ë Åeà ×0�¨� Ñ Ù<B�B�B�B�B�B�B�B ÐU��Ðr`� p7n¨¼áp � m�î´ó`dz÷Um¥_f÷¸k � î`¢ ¬Î� p ¬l£¦�`���� Ë Åeà ×0�¨� � Ù Ð�û�Ð:S T Ñ §�S0��S T

ðHèOç W îbîTøYú#÷Xô¶\x÷Xø%òHú ì�����#°����R���*��:���-������� �:�2�§2�¸�Í�¸�2��O�Ó�:�7����·����:�c�¸¡�°@�«���R�"�����#°����R���*��:���-�.È��>�f�¸�R�f��±´�O�����R�*}a�������Ù�@°�®º÷>÷@ö �Z��:�7¡�°��>���R§¥�-�.� D �¨±-�O�����R��d>íH��î¨�-�§�ïla7ö�k@îz}r d>íH�4î �`���� Ý`Ã0ÃHÅ �j� ظÈ�Ær ï�a7ö�k@î �0���� Ý`Ã0ÃHÅ � Ë × Å Ü Æ�����"� ����:�Í�¸�2�� D �¸�·� ���R�Í�@�¸�:���-�8���>°��2º÷>÷@ö��-��� �f� ���*���*�O�¢�¸�R§¡¸¹ÁOÀYÝ!³�±@µ=²rÀ%¿*}.���-�@��°����R§2���*�-���R� �f��� °����R§@�:Á���R§���Z���f¡��p}a� �*�·���-�������7¡����-�Ó�·���*¡Ëµr � í�î´ï�õ�¡ R�`����HX'×o� É XE×�� É Ý0Ã`ÃHÅ ��ô Ë È � Ér��YR ���`���� Ý`Ã0ÃHÅ �j� ظÈ�Ær � í�î´ï�õ�¡ R p �0���� Ë Åeà ×0��� ÉuË Åeà ×0��� É Ý`Ã0ÃHÅ �oô Ë È � Ér ��p �Z�¦��¬�I[R p � p�@ � U �`���� Ý`Ã0ÃHÅ � Ë × Å Ü Æ�����*�����:¶@�������O����� R úG: f : f ú;:�-�§��Ù�¸¡ª�«���-�Í�¸� R úKp@: f p@: f úKp:}ç]\_^`\&a b0c_^ci4jhe(dZd³�?2��O�¢��������7������°�R�·���O�Ó�Í�¦�-����Ó�¸���(����:�����7��O�����-���7��f�7�R�cÈ�R�*�-������f�4�(����:�����7��O�8±-�O�����R�*}V�h�c�Z�c�R�7�Í���������R�����?2��O�¢�¸�����-�_±´�´�¸���R�"�-�_È�7�������@°�R�XI(���@���*�7�*�¦��:`¹�>�-�������7Ï(°��-���>�#�@��¡¨È��*�¦�%:�È��>�f�¸�R�f��%:.�O�R�OM:µr�� ú ���`���� Ý`Ã0ÃHÅ � Ë × Å Ü Ær ï�a7ö�k@î ú � � f ��£-�`���� Ý`Ã0ÃHÅ �j� ظÈ�Æ

Page 26: Functional Programming Using Calm Light

îP�|ã�����Û�Û#å8ÞC�âÜfeS�Xåx��Þ�ß |7»

Êc���_���_���V��¡�°�@���h��È@���=:@��� �����"�7�*���*�¦�O�8�*�7���=:7�·��§@�R�·�Z§@���·��� ��?7��´�«�������-���(����:�����7��O��±´�O�����R�*}a�"�*��:�=:@��?7��´�«����������2°���7�Ë��������Ï(�Í�¸¡����*�����2� D ���*����� �*��:�7���@���*�¦��� ����:�Í�¸�2��O�.±´�´�¸���R�Ò}r � ïH�0m�¡¥¢ f ¡ £ ú � ïH�`m�¡©¢ f ¡ £¦�`�g �-ÌH× Èih`Û � Æ Í Ì ÆEÄ �`� à �®�kj�� Ç × Å � ß�F × Ø�h ÈiE�Æ �¦�ml Æ � È × Å � Ë È �-ÌH�`� à �R× ÅµÇ × Å0È�Æ lÌ-����:����?7��O�¢������¡ �O��È������R§��2��±´�O�����R�"�-�V�f�>�����>°��=: D ��-�c�������¦���Ù�@°�:n˳K?7��O�¢�������¦��N7�R�c� D ���-���7��¡��*�@�¦��-�������Ë���-¡��Ë���>°���I D ��-�·�*±7�*���Ù�@°�¥�������@M¨�f�§0���*�����·�����È�@�-���R�-� ±´�O�����7}o����� �Ù�@°���f� ��?2��O�¢���Ù�&�����¸S´!¶�Û�ÞH´=Á ¸��³{±1²rÛm¸SÀh:��p} �7}�¡ �O�<�¦�óN7�ò���*±7�*�¦�O��°�@���h��È@���&� �7�·¡ �*}��h�§@�*�R§<: D ���*�K���R���������0��?2��O�¢�¸�����-��� D ��@��¡¨È��*�¦�%:������*�����¦�����@°������õJm�d�¢ f õJm�d�¢ f º÷@÷>ö;:.�-�§ D ���*�ë�·�R���������Ë��?2��O�¢���Ù� �-�â�����������>�%:w���¦� �Ù�@°�ª�Z�k�d>í�õJm�c�¢ f kªd@í4õ�m�co¢ f º¾÷@÷@ö}r � í�î´ï�õ�¡�ú �`����HX'×o� É XE×�� É Ý0Ã`ÃHÅ ��ô Ë È � É�������Ù�@°���-�_��?7��O�¢�����Ë����R�b²rÛm¸SÀ³�^µ=Á@³�µá�¶BÀ%¿%: D ���������*�Ho;aP:,p º�:¾�*�¦�-}añ#�@���Ù�@°���*�-�ËÈ��¨����È�Í�����������R§ �������@°�±´�f�����-È@���R�����0�7�¦§@�*�����Ë°�����§@��:�R����°�R�·�¢Á4�Z³{°P¿%²rµ=°;±YÀ�¿ �f�â���>°��R�*}ë½¾�7���:¶¾�-¡�°@�¸�=:�����È���Í�¸�·���������<õJm�d��(�7�qo>a�-È��´±2�¨°��·�z§@��:�R��õ�med�¢ f õJm�d�¢ f º¾÷@÷>ö;: D �@���·�ò�����·�������>°����-���·������?7��´�«����� � ����:�Í�¸�2�ë����R§þ�7�����>�·�*�7�*�±´�´�¸���R�Ò}r�� ú ���`���� Ý`Ã0ÃHÅ � Ë × Å Ü Ær � � C �l£ ú � � C ��£-�`���� Ý`Ã0ÃHÅ � Ë × Å Ü Ær�� ú � � C �l£-�0�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É Ðj� Ê Ð Þ Ñ Ò�Ó0ÓÉ Ô`Ô0ÔÂsÛ �HÜ Æ Í Ä Ø�Æ Ü0Ü�� à � Û ×HÜ�� Ö�Ä�Æ �J�¦�HG����R� ÞÝHÈ �j�HÜ È Ü ÆHßµà �`� Û � Ö�ÄáÆ ���R� Ù

ç]\_^`\r^ à gw`tsae©d7epg8`ci4j�a�7�§2�������7��´�Ó�:¶�°����R���h���7����f�����-�a����� � �7�·¡Ó½-õOï�¯�uwvyxwuKd7ô�î�m°¯ ? îfö¸k@î ¯ / ¾P: D ���*���B¯Zuzv&xzuc�Z�#�-� �:¶z°����R�·�h���7�Ë�-����>°��Fº÷>÷@ö��-�§5¯ ? :0¯ / �-��� �:¶�°����R���Ù�¸�2��a°��>�����R�·�h�����¨�·��� ���f¡�� ���>°��7}�ñ �c�-� �:¶�-¡�°@���=:@���������7�f�Z�*�´�X���*�@�-�����7��:�7�@��§�È�� D �Í�¸�·���*�8µr ö�î�d+m4î�c�a�d�îµajúÎõRï�a d2ô�î�moïlafö¸k>îKîfö¸k>îud@í���î �0�� Æ{h ×0� Æ � Ý`Ã0ÃHÅ � É Ý`Ã`Ã�Å �oô Ë È � Ér m4î�c�a�d�î � � ú �l£¦�`���� Ý`Ã0ÃHÅ �j� ظÈ�Æ

Page 27: Functional Programming Using Calm Light

|7 Ú��X��� Ý.ÞV�¨îP� �#��ß=�*ÚÎÝ®,·�cÞ�ßç]\_^`\w| á#g8m8ehb�i�jâg8k"ål7i�d7g8l7ä�������·���7���Ù�Z�*�´�.���7�-���*�O���7°�*�¦�f���7�¦���-�����O±-�O�¢�Z�fÈ@�¸���������-¡ª�©}cÀ"�Z� RÙ����:�����7���-�§Ë�:�2��RÙ����:�����7���-���#���R��°��R�:����±7�:���D �������·�*�Ë÷7í��-�§~}�µr d>íH�4î<÷2íoïlafö¸k>î �`���� Ý`Ã0ÃHÅ �j� ظÈ�Ær � ��RU�l£ } � � f ��£-�`���� Ý`Ã0ÃHÅ �j� ظÈ�Æ�����#�7°�*�:�-���7�¦��}��-�§ ÷2í��-��� ���2�a�(����:�����7��*}c�����*� �����7�@��§����7�aÈ������*�*���7�_���*�2�@�Z�f�a�(����:�����7��%:��h����:�������*��*±´�´�¸��f���������:��� ���R�:�7�§0�f���7��¡��*�@���7�@��� �¢�â�����������*�R§@�R§�}0½��7���:¶¾�-¡�°@�¸�=:c������÷7í �7°�*�¦�f���7���*±´�O����-�·�R�����¦����R�:�7�§þ�7°�*�¦�f�§Ë�2�@�¸� �¢���·����Á�:�����7�����*±´�O����-�·�R������ï�a7ö¸k>î�}�������È�*��O±2���7���-�������R�����7°��*�¦�-���7�:� ¡ �O��È��§@�R���:����È��R§ �2�c� �f�«��� D �*µ

¯ ? ÷2í�¯ / ��� ��?2�@��±´�O���*�@�â��� õRï�¯ ? d2ô4î�m�d>íH��î î7ö¸k> /¯ ? }�¯ / ��� ��?2�@��±´�O���*�@�â��� õRï�¯ ? d2ô4î�m�¯ / îfö¸k>î0ïlafö¸k@îÇ"�*�>�-�����7�����"°����R§@�:Á���R§�µr m¾÷Hdjd>íH�4î �`���� Ý`Ã0ÃHÅ � Ë × Å Ü Æ�����¤m÷Hd0��§@�*�>�Í�«Á�*�����R�:�:��±7�R���0��°��R�·���O�¨���·�R�-��¡��*�@��� �·�7¡£�·���ò°�-�¦���*�Oµë�·���ë�-°�°@�¢���*�-�����7� ½'m¾÷Hdoïj¡P¾ �Z����R�:�7�2�@� �*�R§��7�V½'m÷Hd � ïj¡ £ ¾ D �@�¢�¸�Q½:ïjc�¡P¾c���X�Z§@�*�@�����*�O�����ö½ � ïjc £ ¡P¾�}.���@�Z����°��R�·�Z�´�z���·�R�-��¡��*�@���:¶z°@���O����D �@� �·���#� ����:�����7��´�Ó±-�O�����¨�7���Í�z�·���-���R§��·�Bm¾÷Hd��*�-��È���7È��¦�O�����R§��2�@�¸����Ù�¸��������� � íî-ï�õ�¡_N2�*� D �7�¦§�µr � í�î´ï�õ�¡ m÷Hd �`���� Ý`Ã0ÃHÅ � É Ý`Ã`Ã�Å ��ô Ë È � É

ðHè76 �TíFï�ë%ôöùXì ÷ ô98 õ��ö÷]ïF÷xõ�íFú#ïFìÌ7�����������:�7����:�-�>�:�xIh�Ù�@°� k�d>í�õJm�c;MÓ�-��� D �������·�*� È��*� D �*�*�5���·��-�¦�7�:���*�:�xI�§@�7��È@���*Ï3?7���7�·�R�@M¦}�Ì-�����-���*Ïp�·��-�¦�7�:���*��:�7����:�-�>�:�XIp���>°��B_Rô�a-íGM��f��� D ���������*� È�*� D �*�*�Ppâ�·��-�¦�7�:�·�*�¦�XIpÈ�7�mN�?7���7�·�R�@M¦}a������¡��>���"����R§Ë���·������� �7°��*��Ï�-�����7�����#����������� �:�2��*�-���*��-�����7�F:�§@�*���7���R§�È@�������³Ú¨�·��-�¦�2�:���*�R}r �Z��îfö@ö@÷��+ÚP�q��÷7í�ö��D�Z� �`����»Ü�� Ø �J� h ��l�� ÆUÅ0Å�ÃP��Ã�ظÅeß�� lr � í�î´ï�õ�¡ÿÚ �`����»Ü�� Ø �J� h � É Üe� Ø ��� h � É Ü�� Ø ��� h ��ô Ë È � É�a��-�:�7�:���*�¦���-����ñ�ÌP�V�O�â�·��-�¦�7�:�·�*�¦�*µr p>a�p �`����¤Ì Û × Ø �!�3×��r p���n0q ¬ p �`����¤Ì Û × Ø �!�w���

Page 28: Functional Programming Using Calm Light

îP�$î�� ÝX���Cå8Þ�ß |@¿

�-�§��*�-� È��È��@�«���"� �·�7¡É�����:��� ñ�ÌP�V�O�â�:��§@�¨�7�V���8µr _Rô�a´í�7÷7ï�zõ�m�dµq ¬��`����¤Ì Û × Ø �!�w���� �����*���7°�*�:�-�����7����-���Ë�O±´�O�¢���-È@���1IEk��`º��`kªd@í�õJm�c¹:"õJm�d��7÷2ï��`_Rô�a-í¹:_�*�:�^M¦}oÌ7�*�����������-¡�� �����7�@�����:� �*�·�*��:�¡ �-�@��O�Vº |�~@¼��(�7�â�:�2¡�°@���*�������@�(�7��¡ �-�Í�¸�2�8}

ðHè3ð ��ò9Z/øYú#ìç]\®ç]\&a à gw`aäOd7l7^ab@d7ep`cm df^ckajhåä�p���Z�"°�@���h��È@���¨�·� �:�7¡�È@������±´�´�¸���R�����>�·������°@���R�bIp°�O���¦�%:@���Í�¸°@���R�%:��R�O��M:}a�����³�hµ!¶�¯�ÀH±Y´!°P¿%²rÁY¯�±h²r´=Ác�(�7������°@���R���Z�������½C�¾ �·��-�¦�2�:���*�QIh�����¨�:�7¡�¡ ��M¦} U � D �¢�«���-�(���*�Ë�����°�-�·�*�>�����R�Í�R���-���7���§ ����°@���R�"���ò�7�¦§@�*�#������¡�°����-±7����R�7§��fÈ@�«�¢�����=:È����#�����*���-�������7�#���������:���������R�:�R�����-���7}r�� C ���`��������R�PG¨�J�¦�j�oÐ Þ Ñr�� C � CE��C �K�0��������R�PG¨�J�¦�HG��J�¦�HG����R�j�oÐ Þ Ñ Þ � Þ ûr ö�î�d � ú � ���`� C ��RU�l£-�0�Ä �����R�PG Ý0Ã`Ã�Å �j� Þ � ظÈ�Æ���������@Á�¶ ½�¼=¾��Z§@�*�@���¢Á�*�������·���»²rÛm¸SÀ>±@´=°�¿a²rÁ@¯±^²r´=Á"� �2������°@���R�*}˽��2�#�¸��Í�¦�-��:�=:�´ ?i� ´ / �:�2�����R��°��7�§������ �����¡ �-�·���*¡ �-�����*�O�.�*�-���·�R�h���-�Ë°�����§@��:� �-�_���>°��R�F´ ? �f�§�´ / }U ���*�-��È��@�¢�Z§ ����°@���R��� �·�7¡ð�-�@� ±-�O�����R�*µc����������°@����±-�O�����ª�:�2���������:���2�a���Xß=À^°GÀhÁ@³{±R}ç]\®ç]\r^ bb�_d7l7i�b@d7ep`cm<kai�ehlËb�g8nok"g8`aå�`8d7ä� ÁO´��%À@±h²r³{´=°�� ����:�Í�¸�2��â�-�·������R§������:¶z���:�7�:� �:�7¡�°�2���*�>�¦���-�Ó�·��°@�¸�R�Ò}�½¾�7��°�O���¦�%: D ����O±7�7µr ï�k�d �`����HX'×PG�X Ý � É X'×���ô Ë È � Ér k�m�� �`����HX'×PG�X Ý � É X Ý ��ô Ë È � É�����*����O±7��°��-���>¡��2��°��@�������>°��R�%:��-�a�:�7���¦���=:��h����:�������*��¡ �O��È�¨�f°�°@�«���R§��·� �-�@�JN2���§Ë�f�Ó°�O���R} �����*�Ë�-���°����R§@�:Á���R§ ���&���������-¡����Í�z���·�*¡�:8È������:�7�@��§ È��§@�:Á���R§&È>�ò�·��������*�/I(���ò�p�7�:�h:w�������*�-�����R�h���-�&°�����§@��:����¦���:�¢���:�7�@��§�È��¨§@�:Á���R§»:²���*�����R�:�����7� ¾}�~=:>§@�R§2���*�-�·�R§Ë�·������*��Ïp§@�:Á���R§¥°����z§@��:�#���>°��R�@M¦µr ö�î�d�ï4õOí�k�d � ¡DC7ø £ ú+¡r a�m��¨k>î`_f÷Um�� � ¡DC�ø £ ú+ø �`�Ë � Ø Üe���PX'×HG�X Ý � É X'×��oô Ë È � ÉÜ Æ Ì Ã � ß �PX'×VG�X Ý � É X Ý �oô Ë È � Ér ï4õOí�k�d � �`��������R�����r k>î`_f÷Um�� � �`���� Ý`Ã0ÃHÅ �j� ظÈ�Æ

Page 29: Functional Programming Using Calm Light

|7Ð Ú��X��� Ý.ÞV�¨îP� �#��ß=�*ÚÎÝ®,·�cÞ�ßU �����O������-��ï4õOílkªd ������ß!Àh°;ÀhÁ@³�±�±-�O������È�R�*�-�������� D �7��N������@�¢�(�7��¡����&�7� �Í�*±7�*�¦�O�#N7���§����-���-���7��¡��*�@�¦�Ip°����-±2��§@�R§&�����*�ë�-����°�O���¦�@M:} U ���-�(���*� �:�2�@� �����È��*� D �*�*� ½ �7�*���*�����%¾ò�-�§"½:°�f�¸�@¡��7�·°��@�Z�%¾�:����O�2�����ò����-�����·�˱-�O��������� °��-���>¡��7��°��@���#��������R�2§��-�_�7�*���*�����-}

ðHè7õ �à÷#í<íFú ï·ôöì�÷Xô98 Z_÷#í<íFú ï·ô����Ó÷#íFõA�_ë%ôöùÃ_�-���·�*����â�f�§Ë°�f�����*����Ï(¡ �f�¦���@������°@���O�ò�-� �¸¡�°�7���:�-�>���·�-�������ë��� �Z�f���7��-�7�R�*}������*���-°�°�R�-�#���0�O�¢�a���R�O�°����7�2�¦�-¡ ���-�§��-�·���������7���f�¸�����:���-���R§¥�������>°��R�TIp°��·�R§@�:Á���R§��7� ��Í�*��Ïp§@�:Á���R§;M¦}ñW¸Pµ=²r²rÀhÁ@°����§2���*�-���R�������ü¿>�µa¸SÀ��-���¥±´�O�����7}ËÃ_�-�·���*������-����½:±-�O�����R� D �����ò���-���R��¾�}�ñÉ�h�����-����±´�f�����-È@���I(�(�7��¡ �´�a°�-�¦�-¡��*�·�*�%M ������°�-�·���*��� I D �����ò���ò����-°�� �Í°�R�·�¢Á�R§�µ��¸��¡ �f�¦�����R���-�@��±´�O������M¦} U ���*� � ±-�O���������ÞHµ=²r±��À@Ý1µhß=µ=³{°P¿%² ��°�-�·���*���"Ip���@���ª��� �*�O�¢���R§�¸Sµ=²r²rÀ^ÁY°¸��ÞHµ=²r±��³�°�ß�MY:c����� °�-�����*���<�2�:�¦���7��� Á��¸�·�*�R} U �

�O�����R�7§@������R§H°�-�����*������-�§�°�f�����*����Ï(¡ �f�¦���@�����&��� �O�¢������� � ����:�����7�� D � D ���7���7µ&����� �(����:�����7�oÈ��§@�� ï��`m _�d�õ´÷Um�¡o¢ f p`p0p £ §@�@�R��Ip���Í�¸±2���O�rM °�-�·���*����Ï(¡ �-�:���@�����} U ���*� �-°�°@�¢���R§K���<�0±-�O�����=:������ � �2��¡ �O�°�-�¦�f¡��*���*�ý¡��7�*�¦� È�7���§ ���Ë�·��-��±´�O�����7}Ë�������(����:�����7�&È��§@� � ïH�`m _�d4õ-÷Um � ¡tC7ø £ ¢ f ¡ � ø £ §@�@�R���O�����°�-���·�*����Ï(¡ �-�¦�·�@�����µ D ���*���-°�°@�¢�¸�R§ ��� ��±´�´�¸���üIÙ��°�O���h:�È��R�*�-������-� D �:�¢�¸Ï(���@°@�������>�@°�7�·���R���R�@MY:������B¡Ë�-�§ø��7�*� È�2���§����R��°��R�:����±7�:���Ë��������� Á�¦��� �-�§¥���������R�:�7�§ �:�7¡�°�2���*�>� �f�Ó����f��°�´�¸�O}ñ"�¢�.�����R����°�f�����*����Ï(¡ �f�¦���@�������:¶�-¡�°@���R� D �*����������±2�Z�´�Ó�7���R��:>�·���*�˧2�Z§¥���7�����@±7�-��±7�¨�f�>���·�R���Rµû � �7�·¡ �O�7°�-�¦�-¡��*���*�¦�8����·�¨�2�¦¡�§@�â���2����¡�°�>�Í���f�>��°�-�·�����:�@�Z�f�Ó����f°�a�·�â�����_±-�O����� �����*���-��������°�°�>�Í�R§����¡ �-�¦�·�FÜû °�O���â°�-�·���*���� ����·� �2� � ¡DC7ø £ �O� D �R����¡ �f�¦���¥� �2� ���>°@���������R�7���7�� IÙ�*�-�����R�Ù�Z�f�Ë°�����§@��:� ���#�b¸¹ÁO´hÝ!¯±^²²rÛ�¸PÀ%M¦}

�"� D �*±7�*�^:8���7¡������@°�R��§@�Ë���7���7��-�¦�-�@���*������·�ë�����@�¢�(�7��¡º����-°�����������:����±´�´�¸���R�Ò}��c�7��h��§@�*�������ùº÷>÷@ö���>°��7µ��-�ò�:���*¡��*�@���f�����@°�Bº÷@÷>ö �Z� �:�������*�Bd>íH�4î��7��ïlafö¸k>î�}H�(� D ����¡�°��>����������±´�O�������-� ���>°��±º÷@÷>ö �����O±7������������f°���f�ád@í���îP:>�·���*��°�-�����*����Ï(¡��-�¦�·�@�¸����¡ �O���p�O�¢�p}x�a�2��h��§@�*� �������(�-�¢��� D �������(����:�����7�8µr ö�î�d�ïoú�ïH�0m�_ªd�õ-÷�m�d@í���îj¢ f ïlafö¸k>î �`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É Å¸Æ � Ë � Ë È ��Ì��`� à �Î� Ø�È�Æ � ÉuË × Å Ü Æ Ó`ÓÉ Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô� × Ø �R��� h ��� Û �HÜ E ×`�eÌ Û �J� h ��ܽ� à � Æ Í Û × È Ü��`� Ç�Æ�ÙË � Ý`Ã0ÃHÅ � É Ý`Ã`Ã�Å ��ô Ë È � É�������:�7¡�°@�«���*� D �-����c��"����-��������°�-�·���*����Ï(¡ �-�:���@������¡ �O���©�´�«�CI D ��§2�Z§¥���7�â�:�7��Ù�Z§@�*�#������ïlafö¸k@îª�*�7�Í��M¦}���>��%:O�¢� D ���-°�°@����ï���� �#±-�O����� ����-���*±´�´�¸��f���R������d>íH�4îP:-°�-���·�*����Ï(¡ �-�¦�·�@����� D �«�¢�8����*�:�*�R§/IÙ�-����?7��´�«��������R�����Z��°�*���(�7��¡��R§ §@��������� �:¶��R�:�������7�<M¦}r ï � ��R���£-�0���� Ý`Ã0ÃHÅ � Ë × Å Ü ÆÊc���h:@�¢�aï�� ���-���7��¡��*�@� �*±-�O����-���R�"����ï�a7ö�k@îP:z�ª������Ï(����¡����*�·���7���������*°��7�����R§�µr ï � � f ��£-�0�g �-ÌH× Èih`Û � Æ Í Ì ÆEÄ �`� à �®��� ×`��Ì Û+F Ë ×`� Å`ÈUØ�Æ Ê l�l Þ ÐU�`ûe§ Þ Ð���§�?�Ò�"�*���#���â���:�2�����R�:�â§@�:Á�@�������7����h������°�-�����*����Ï(¡��-�¦�·�@�¸����µ

Page 30: Functional Programming Using Calm Light

îP�����¡�<�#Ý Ý�ÞV� Ü ß¡�#Ü����<�#Ý Ý�ÞV� Ü*�ò*��#Ý�Ú��]�ÙÜHæ |7Ä

r ö�î�d+m4î�c�a�d�î úHï��`m _�d�õ´÷Um�d>íH�4îj¢ f ïlafö¸k>îr � ï�a7ö�k@îj¢ f d>íH�4î �`�� Æ{h ×0� Æ � Ý`Ã0ÃHÅ � É Ý`Ã`Ã�Å �oô Ë È � É������°�-���·�*����Ï(¡ �-�¦�·�@����� ��2� ��� D � D � �*�7���R��:4���*°�f�¦�-���R§¥È>� �����¡½ � ¾�����-�:�7�:���*�R}X���2���R�â�f�����:¶�-¡������R§¥����������F:z� ���2¡ �·�7°�����È��7�����7¡ }.ñ#����?2�@�¸±-�O���*�>��§@�:Á�@�������7���-�m�îªclaªd�î D �7�@��§�È��7µr ö�î�d+m4î�c�a�d�î úHï��`m _�d�õ´÷Um�d>íH�4îj¢ f ïlafö¸k>îr � ¡¥¢ f d@í���î �0�� Æ{h ×0� Æ � Ý`Ã0ÃHÅ � É Ý`Ã`Ã�Å �oô Ë È � É�����â�Í�R�:�7�§��*�7���"��� D ¡��-�¦�·���R�_�-�>��È�@�-���R�-��±´�O�����bI(�����©�2�:�h:-�7�@����ïlafö¸k>î��h����:�2d@í���î���7��È�*�*���*�-���7�@�_È>������"Á�¦����¡ �-�:�����*�7����M¦} U ���*�����������R�:�2�§��*�7���"�Z�"�����>�Í�*�F:������"�Z§@�*�@���¢Á�*��¡��7�*�¦�cÈ�2���§������������-���7��¡��*�>��-��m�îªcla�dîP:8�-�§��:�7�@��§�È������R§ �¸�������������7�@��Ï(��-�§þ°�-���#�-�a������¡ �-�¦�·�ò�*�7���7}�Ì-����:�����ò�2���â�:¶�-¡�°@��� D �§@�����7�������������±´�O�������-�#�����Ë�-���7��¡��*�>� �¸�0�·���������7�>�·Ï(��-�§ò°�f�����-�â���������R�:�7�§&¡ �f�¦���&�*�7���=:a�-���2�����*���?2�@�¸±-�O���*�>��§@�:Á�@�������7���-�m�îªclaªd�î D �7�@��§�È��7µr ö�î�d+m4î�c�a�d�î úHï��`m _�d�õ´÷Um�d>íH�4îj¢ f ïlafö¸k>îr � ��¢ f d@í���î �0�� Æ{h ×0� Æ � Ý`Ã0ÃHÅ � É Ý`Ã`Ã�Å �oô Ë È � ÉU ���*���¡½��ó¾��7�:�¦�#�7� �¨� �7�·¡ �O�8°�-�¦�-¡��*�>���*�ÔIp¡ �-�¦�·���R� �-�@��±´�O������MY:�È���� §@�@�R�"���7�����>�·���z§@��:���-�@� È@���§2�����µ���â�����7�@��§ È�����R�7§��7�T½*�f�>�@���@����� �:�����h¾¾}ñ��_�-���:¶�-¡�°@��� �-��°�-�����*����Ï(¡��-�¦�·�@�¸���;:>�:�7��h��§@�*�c�������(�-�¢�¸� D ����� � ����:�����7��§@�:Á�@�¸�Í�¸�2��Ip�·��������±´�O�����#�¦�-È@����-����¡�°@�¢�Z�*�f�����7�<M¦µ

r ö�î�dÎõ>b � öHø�ú�ïH�0m�_ªd�õ-÷�m � d>íH�4î�C7d>íH�4î £ ¢ f d@í���îr � � d>íH�4î�C�ï�a7ö�k@î £ ¢ f ï�a7ö¸k>îr � � ï�a7ö�k@î�C�d@í���î £ ¢ f d>íH��îr � � ï�a7ö�k@î�CÙïlafö¸k@î £ ¢ f d@íH�4î �0�� EUÄ-ÅªÖ � Ý`Ã`Ã�Å G Ý`Ã0ÃHÅ � É Ý0Ã`Ã�Å �oô Ë È � É�"�*���#���â�-���2�����*� D �O���-�a§@�:Á�@�¸���òõ;b � öHø¹:@È@� ��Ù�¸����±´�f�����-È@���R�*µr ö�î�dÎõ>b � öHø�ú�ïH�0m�_ªd�õ-÷�m � d>íH�4î�C7¡ £ ¢ f ¡r � � ï�a7ö�k@î�C�¡ £ ¢ f d@í���î �`�� EUÄ-ÅªÖ � Ý`Ã`Ã�Å G Ý`Ã0ÃHÅ � É Ý0Ã`Ã�Å �oô Ë È � ÉÌ-��¡�°@���*�h:��-�§Ë�h��¡�°@���*���-�>�O���8µr ö�î�dÎõ>b � öHø�ú�ïH�0m�_ªd�õ-÷�m � d>íH�4î�C7¡ £ ¢ f ¡r � � ï�a7ö�k@î�C�� £ ¢ f d@í���î �`�� EUÄ-ÅªÖ � Ý`Ã`Ã�Å G Ý`Ã0ÃHÅ � É Ý0Ã`Ã�Å �oô Ë È � Ér ö�î�dÎõ>b � öHø�ú�ïH�0m�_ªd�õ-÷�m � d>íH�4î�C�ï�a7ö�k@î £ ¢ f ï�a7ö¸k>îr � ��¢ f d>íH�4î �`�� EUÄ-ÅªÖ � Ý`Ã`Ã�Å G Ý`Ã0ÃHÅ � É Ý0Ã`Ã�Å �oô Ë È � ÉÃ_�-���·�*����Ï(¡ �-�¦�·�@�������Z�"�O�¢�¸� D �R§��7���-�@� ���@°�#�-�Ó±-�O�����HIp���7��Ï(���Í�¸±2���O�.°�-�·���*����Ï(¡ �-�:���@��������� �7�@����°�>�·�h��È@�¸���7����>°��R� D �����\Ý=µ=²rµ>±@´=°P¿%²rÁY¯�±h²r´!Á�¿@M¦}½¾�7���:¶¾�f¡�°@���7µ

Page 31: Functional Programming Using Calm Light

¤7� Ú��X��� Ý.ÞV�¨îP� �#��ß=�*ÚÎÝ®,·�cÞ�ßr ö�î�dÎõ�k���'�î-íz÷jú�ïH�0m�_�d4õ-÷�mon¨¢ f d>íH��î � ��¢ f ïlafö¸k@î �`��HÜ F:�RÆ�Ølà � �J�¦��� É Ý`Ã`Ã�Å �oô Ë È � Ér ö�î�dÎõ�k��ªø�î`k úHï��`m _�d�õ´÷Um��R÷U�Xõ � ¢ f d>íH�4îr � ��k�õ � ¢ f d@í���îr � �Jøla¡� ¢ f d@í���îr � �Jø�î0k�� ¢ f d>íH�4îr � ��¢ f ïlafö¸k@î �`��HÜ F�ÖRÆ Ü ��Ü�� Ø �J� h � É Ý`Ã0ÃHÅ ��ô Ë È � É

ðHè�� ñHò_ôöõ�í�ëYîÔôöì���������@°�Ë�:�7����·����:���7�>½�¢ f ¾¥����°����R§@�:Á���R§��-�§&�*�-�����7��È��˧@�:Á���R§&��� ����� �����@°�����z�Í���*¡Ë} U �Ë����O�¢��:¶�°@�¸�2�������Ë�·�@�Z�#���R�:�����7�Ë�Í�7¡��#�(���������*�â�7�Í°�R�:�¦�"�-�8�(����:�����7��#�-�§��(����:�����7��O�.���@°�R�*}

ç]\z¢]\&a ]_^c`ab@d7epgw`ai�j�b�g8nok gwä´e©d7epg8`½�����:�Í�¸�2��O�Ó�:�7¡�°��>�h�������7�¥�Z�"�R�7�h�¢���˧@�:Á��-È@�������Z���-¡ª�©}��p�����"�-�V�:�2���¦������°��-���>¡��2��°��@�����(����:�����7�8µr ö�î�d�_f÷�b � ÷¸k>î0ï�coú ïH�0m�_�d4õ-÷�m�¡¥¢ f ï � c � ¡ £`£¦�`�Ì ÃZE�Ä�Ã Ü Æ � Ê X'×�� É X Ý Ò�� É�Ê X>Ìj� É X'×0Ò�� É X>Ìj� É X Ý ��ô Ë È � É�������Ù�@°���-�F_f÷�b � ÷¸k>î��:�7�@�¦�O���� ����¡��7�·���:�7������¦�´�¸�@�¦���·��-�Ë�������7���R�#�-°�°�R�-�Í�¸�������������¨§@�:Á�@�������7�8µ��¸������*����=:z�¸�"���������/Þö´ó¿a²�ß=Àh°;ÀhÁOµ=¶2�Ù�@°���:�2¡�°�-����È@��� D �����������R�����:�7������¦�´�¸�@�¦�*}�����R�����:�7������:�O���>�¦�"�-���7µ

û �������:�z§@�2¡ �O���Ë�-�cË�-�§�������§@�7¡ �´�¸� �-�_ï ¡������È�����������-¡��=Üû ¡ ¡������È�:���7���������·����§@�7¡ �O���Ë�f�ác<Üû _f÷�b � ÷¸k>î0ïjc�¡ D �¢�«�_È�:���7���������·�����:�z§@�7¡��O���Ë�-�.ï�}�X�*��� � ���*�B_7÷�b � ÷�k@î¨�-� D �2��N4µ

r ö�î�d�k���_0_+¡�ú�¡ �����`�Ü È Ì`Ì �¤�J�¦��� É �J�¦����ô Ë È � Ér _f÷�b � ÷¸k>îjk�� _`_<öõHkªd�7ö�î�mec`d2ô �`����HX F × Å �HÜe��� É �J�¦�j�oô Ë È � Ér � _7÷�b � ÷�k@îjk���_0_<ö�õ�k�d�fö¾î�m�c`d7ô £¤£J���E�A� ��¥ �`��������R����û

ç]\z¢]\r^ à ^cl7l:daeh`amU ���*�-��§@�:Á����� D ��±7�*�¦�h���7����f�Ó�������2§�§2�¸�Í�¸�2���(����:�����7�8µ

Page 32: Functional Programming Using Calm Light

îP���!��äT��Ü�Ú#ÝF� Û�Ü ß ¤�~

r ö�î�d � öU� kjú<ïH�`m _�d4õ-÷Um � ¡DC�ø £ ¢ f ¡ � ø �`�Ä-Å0È Ü �¤�J�¦�HG����R�o� É �J�¦����ô Ë È � Ér ö�î�d�a�����ú ï��`m�_ªd�õ´÷Um�¡¥¢ f � ïH�`m _�d4õ-÷Umµø¥¢ f ¡ � ø £¦�`�× ß0ß �¤���R��� É ���R�o� É �J�¦����ô Ë È � É�����R����� D ���(����:�����7���§2�BAX�*���2�@�¸�¥��� �·���:�¸� D �O���-�a�¦��N2�����������:��� �-�·�7��¡��*�@�¦�*}â������Á�:���â�2��� D �¢�¢�a�¦��N7���-��-���2��¡��*�>�wÈ�:���7���-�������·�â�â�*�f�����R�h���-��°����z§@��:�^:-���������R�:�2�§��2��� D �¢�¢��¦��N7�a�"�@��¡¨È��*�Ó�f�§��·�*�������¨��� ����:�����7�8}����� a������(����:�����7����� ���O��§�����È�_²!�Àb±h¯�ÁYÁ@³{ÀYÝ �hÀ^Á�¿%³�´!°��-� � öU� kEI(��� ���7���2���f�.�����"�¸�2�-���·�Z�f� �#�7�ON7�:�¢���a�������;M¦}�������:���·���7���������¦�f��h� �2��¡ �-�����7��¡ �O��È�� D ���������*�ª�¸�ü���-¡�����§@�*�c�������(�7��¡Î�-�8�#�@�¸�2���*��Ï(�7�¦§@�*�V� ����:�����7�8µr ö�î�d�_���í>í`ø�ïoú�ïH�0m�_�d4õ-÷�m�¡�¢ f � ïH�`m _�d4õ-÷Um�ø�¢ f ï � ¡DC�ø £`£¦�`�Ì ÈUØ`Ø�Ö � Ê X'×VG�X Ý � É X>ÌHÒo� É XE×o� É X Ý � É X;Ì+�oô Ë È � É�p�:�c���>±7�*�:�����(����:�����7�Ë¡��R��È�¨§@�:Á���R§ È@�4µr ö�î�d+�0m�_���í@í0ø�ïoú�ïH�`m _�d4õ-÷Um � ¡tC7ø £ ¢ f ï�¡�ø �`�È �-Ì ÈUØ`ØHÖ � Ê X'×�� É X Ý � É X>ÌHÒ�� É X'×HG�X Ý � É X;Ìj�oô Ë È � ÉU ��¡ �O�������R�mN����������@°�R���-�K_���í>í`ø��-�§ù�0m�_��zí@í0ø��7��°�-�·�����:�@�Z�f�â�:¶�-¡�°@���R�*µr �0m�_���í@í0ø � � í�î´ï�õ�¡ �l£-�0��������R�PG¨�J�¦��� É ���¦�µ��ô Ë È � Ér �0m�_���í@í0ø � � í�î´ï�õ�¡ÿÚ £-�0����»Ü�� Ø �J� h GjÜ�� Ø �J� h � É Üe� Ø ��� h ��ô Ë È � Ér _���í>í`ø � öU��k �`��������R�o� É �J�¦�o� É ���R�j�oô Ë È � É

���öú#ïFõ ëYì<ú ìú]�8xzQ-W7Y®y*x Å`�(L[¦ À ü °;À#®a¯�°G±^²r³�´!°P¿_²!�µ=²X±Y´!Þx¸<¯²rÀ>²!�À/¿%¯�Á ®%µ=±@ÀJµ=ÁOÀ@µ�µ=°GÝ�²!�À��h´=¶B¯�ÞHÀ>´O®§��Àh¶{¶$�y¨L°;´���°»ß!ÀY´U�ÞHÀh²rÁ@³�±H´á©�aÀ@±h²{¿ª/eÁOÀY±^²rµ=°ß!¶BÀ%¿{«�±h³{ÁO±h¶BÀ%¿{«�¿e¸��À^ÁOÀ%¿{«Ó�O�R�_2��ú]�8xzQ-W7Y®y*x Å`�®r! �µ=²,��´!¯¶BÝ���µ@¸=¸SÀ^°Z³{°»µ�¶Bµ=°ß!¯µhß!ÀH¿%¯Sá�Þö³{²r²rÀ@Ý>²r´>±Yµ=¶{¶��~á�Û��7�hµ=¶B¯�À§��³{²!�»ÁOÀY±^¯Ám¿%³�´=°�³ ®ö²!�À^ÁOÀ��µ�¿Q°;´J±@´=°GÝ!³�²r³{´=°Gµ!¶F±Y´!°P¿%²rÁY¯�±h²�/põOï p0p`p d2ô4î�móp`p0p îfö¸k@î p`p`pr2+-ú]�8xzQ-W7Y®y*x Å`��¬#¦ À ü °;ÀQ²!�À�ïla`_ªd�÷7í�õHaföÔ®a¯�°G±^²r³�´!°�¿%¯�±J�>²!�µ=²&�

ïla`_ªd�÷7í�õHafö Æ ¿ Æ � I Æ Ä0~óM � �R�R� � | � ~� ³!�hÀH²r��´��hÀ^Á�¿%³�´!°P¿T´O®âïla0_�d�÷7í�õ�a7ö+�#ÁOÀY±^¯Ám¿a³!�hÀHµ=°;ÝJ²rµ!³�¶FÁOÀ@±h¯�Á�¿%³!�hÀ��ú]�8xzQ-W7Y®y*x Å`�¢Å�¦ À ü °;À>²!�À�ï�õJº÷Um a`_0_�õH®%¯°;±h²r³{´=°1²!�µ=²z«0��Àh°\ß=³!�hÀ^°1µZ°G¯�Þ_á�À^Á Æ «QÁOÀh²r¯�ÁY°�¿J²!�À Æ ²!�5¬V³ �ám´=°Gµ=±@±h³�°G¯�Þ_á�À^Á=«V³r� À��X²!�À Æ ²!��²rÀhÁ@Þ�­¡®Z´O®Q²!�ÀH¿%À;=h¯�Àh°G±@ÀTÝ=À ü °GÀ@Ý>á%Û��

­ ? ¿ ~­ / ¿ ~­ ®�¯ / ¿V­ ®�¯ ? É ­ ®

Page 33: Functional Programming Using Calm Light

¤7| Ú��X��� Ý.ÞV�¨îP� �#��ß=�*ÚÎÝ®,·�cÞ�ßú]�8xzQ-W7Y®y*x Å`�®[! �µ=²#µ=ÁOÀH²!�À_²rÛm¸SÀ�¿Q´O®Q²!�ÀC®%´=¶�¶B´���³{°ß/À�Á�¸¹ÁOÀ%¿@¿%³�´=°�¿�-

û �0m�_���í@í0ø�_7÷�b � ÷¸k@îû _f÷�b � ÷¸k>îj_��zí@í0ø+�`m _���í>í`øû _f÷�b � ÷¸k>î½�`m _��zí@í`ø�_��zí@í0ø

Page 34: Functional Programming Using Calm Light

& ')(+*-,/.10 °

± 8�J0EoJ

�������¦�"���*°����R�Í�*�>�â�f����¡�°�2���¦�-�@�â§��-�¦����������:�����·�=:�¡ �O���@����È�R�*�-��Í�¨�f�Ó�����:��������*�:�R�������Ë������������° ���-���7��f�7�7}�������¦������� �Î�f���¤�´=ÞH´Yß!Àh°;ÀY´=¯!¿>µ����¢�����Ë�*�-�����2� �:�7�@�¦�O��� �:�¸�*¡��*�>�¦���f� §2�BA8�*���*�@���Ù�@°�R�Ò}o���@����¡ �O�ëÈ���-�����-�2�¸����������� D ��� ����*�¦�%:@�7�*�c�¢�����¦���-���#���7� �7���(���§��-¡��*�@�¦�O�.�7�Ó���Ë������°F:�h����:�¨��� °����-±2�Z§@�R��� �p�7�·�¢�«������(�7�c�¸�@������§@��·����� ��� D �Ù�@°�R���O�¢��� D ����� �·���â����*�"����§@�:Á����¡��7�·�â°����R�·�����:����������§��f�¦����������:�����·�R�a���*�R§@�R§¥È>�������°����2�7�¦�-¡)IÙ�·��}a�·��-°����*�âÂ�M:}

õQèYé W òEë%ø>8/ë%ôöùÈø%ëYì;íFì�������¦�#�-�����*¡�°��Ù���7� ���7� �*¡�°���� ����?2���*��:�R�#�-�Ó�:���*¡��*�@�¦�*}c�����*� �f����È��@�¢�¸� D �¸�·��� D ���hµ!¶�¯�À_±@´=°P¿%²rÁ@¯±^²r´=Á�¿@µ

û £ ¥<:@�������*¡�°������¢�����bIp���R�7§�µ]°G³{¶`M@Üû�²�² :7�����#���7��Ï(�*¡�°������¢����� �:�7����·����:���7�]Ip���R�7§�µ#±@´=°P¿=M:}F�p�c�¦��N7�R�c�-���:�¸�*¡��*�>�2¯��-�§�� �«�����,³O:@�-�§�È��@�¢��§������� D �¢����� D ���>���#Á�¦���"�:�¸�*¡��*�>�bIE�À@µ=Ý<M����[¯��-�§��·�R���XIY²rµ=³{¶`MV�Z�´³�}

��������°�R�·���O�a���@�>�¦�´¶ £ ¯ ? � �R�O� � ¯ ® ¥ È��@�¢��§����·���#�«����� D ���>�����:���*¡��*�@�¦�â�f���±¯ ? ØO�R�R�mØ>¯ ® }V�h����� ��?2�@��±´�O���*�@�����¯ ? ²�² I�¯ / ²�² �O�R�OI7¯ ® ²�² £ ¥GM��R�R� M:}U ��¡ �O��È��@�¢�Z§¥�¢�����¦�"�-�_�>��¡�È�*�:�*µr�� ²�² � ²�² £ ¥ �`��������R� Å �HÜe�j�¶µJÐ�Ó Ñ�·rD£ � �Q�K�E¬ ¥ �0��������R� Å �HÜe�j�¶µ'�RÓ^û¦ÓqS ·r ö�î�dj¡eú � õ�m £J�R� ��� ¡ � �R� ¡ �0� ¥ �0��������R� Å �HÜe�j�¶µJÐ�Ó Ñ Ó½�¦Ó½û ·�������¦�"�-�8�(����:�����7��*µr ö�î�d�a�����kjúr ö�î�d�a����+¡�øoúj¡ � ør õJm £ a���� ��� a���� �A� a�������¥ �`�× ß0ß Ü � Ê ���¦��� É ���R�`Ò Å �HÜ�����µsô Ë È � É Óuô Ë È � É Óuô Ë È � Éi·

¤7¤

Page 35: Functional Programming Using Calm Light

¤-¹ Ú��X��� Ý.ÞV�¸����å<��ß8ÝVß�-�§����§@�*�R§<:��¢�����¦�"�-�V�f�>�@���@����� §@�R�h�����R§�}

U ��¡ �O� D �7�§@�*� D ��-���-�������������>°��R�#�-������� �¢�Z�Í�_IÙ§��-�:��M��:�7����·����:���7�¦�Ò} �����¨�*¡�°��Ù�¥�¢�Z�Í�#�Z�����¢�������-��-�@�>�·�@�¸����IÙ�h����:� �¸�"��7�������:�¸�*¡��*�>�%M@:@���â��7�����>������������>°��¡½�¶B³ ¿a²�´O®Hµ=°GÛ�²!�³{°ß^¾�}_�������¢�������:�7������·��:���7� ²�²�¦��N2�R���f���:�¸�*¡��*�>���-�§����¢�����bIÙ�:�7�@�¦�O���@�������:���*¡��*�>�:� D �������·�������-¡������@°��M��-�§��·�*�������� ����� D �«�����O}��"�*����-�>�´�¸�F:¾�����*���#��� �����Ù�@°���:�2������¦�O���@� �7���������:���*¡��*�@�¦�#�:�7��h��§@�*���R§�}rD£ ¥ �0����HX'× Å �HÜ��µ�¹µ ·r ï��`m _�d�õ´÷Um�ô4î`a��¨¢ f ïH�0m�_ªd�õ-÷�mjd�a�õ´öÿ¢ f ô�î0a�� ²�² d�a�õ´ö �`����HX'×o� É XE× Å ��Ü��o� É X'× Å ��Ü��j�oô Ë È � ÉU � �Í�*�����*��������f������� ö�õHkªd �Ù�@°�ª�Z���ZÁOÀ@±h¯�Á�¿%³ò�^À����>°��7} ����� ²�² �:�7����·����:���7�����R�:�:��±7�R��� D � �f���7��¡��*�@�¦�%Ü���������R�:�2�§Ë�-���2��¡��*�>�c�����¸�:���:�¢����öõHk�d4}

õQèOç ���QíFïF÷xõ�í�ë%ôöù ú]øYú®�Óú]ô�íFì"ñhïFî�� ø%ëYì;íFì��uZ_÷#í<íFú#ï�ô����Ï÷#íFõ��_ë%ôHùU �/N>��� D ��� D ����È��@�¢��§&�¢�����¦�%Ü D � ��� D ����� D ��� D ��� ���R�����*¡�°��������R�����f���¢�����¦�¡IÙ�O�������7���7�&��������?7��´�«�����°����R§2���*�-�����:�2�@�Z§�È��â��Í�R§�� �7�c����-�%M_�-�§��:¶z���:�7�:���:�¸�*¡��*�>�¦�V�(���7¡ �«�����:�XIp�7} �}������"Á�¦���c�7����M¦} U �â��O±7� ��Í�R§°�-���·�*����Ï(¡ �-�¦�·�@�����Ë�7� °�O���¦�%:��>��¡�È��*�¦���7��È�@�-���R�-�&±´�O�����R�*}Ë����� ���@�>�¦�´¶ �-� °�-���·�*������O�����¥����·�¸�§@�R�¨�«�����°�-���·�*����*}bI U � D �¢�«���Í�*�¨�·��-� �f�>�˧��-�:� �:�7��Í������:���7���*�-�ò�7�:����´�«����È������R§¥���ë��°�-�����*�·�8}BM ½¾�7� �¢�����¦��:.�-����R�7��� � D ���*�7���R����O±7���·��È���:�7��h��§@�*���R§�Ih�*¡�°����=:����7���*¡�°����;M¦µr ö�î�dÎõ�k���m`�ö>öjú�ïH�0m�_�d4õ-÷�m £ ¥�¢ f d@íH�4î � ��¢ f ï�a7ö¸k>î �0��HÜ F � È`Å`Å �[XE× Å ��Ü��o� É Ý`Ã`Ã�Å �oô Ë È � Ér ö�î�d ô4î`a��¨ú<ïH�`m _�d4õ-÷Um�¡ ²�² �j¢ f ¡r � �¨¢ f ílazõHk>î ��º azõ-öU�zí�î»� ô4î`a���� £¦�`�Û�Æ × ß �PXE× Å �HÜe��� É X'×µ��ô Ë È � Ér ö�î�djd�a�õ´ö¨ú<ïH�`m _�d4õ-÷Um¼� ²�² ö¨¢ f ör � �¨¢ f ílazõHk>î ��º azõ-öU�zí�î»��d�a�õ-ö�� £¦�`��`×0� Å �PXE× Å �HÜe��� É X'× Å �HÜe�j�oô Ë È � É�������:¶z°��·�R���h���7�&í�a�õ�k@î ��º a�õ´öU�zí�îM�:ô�î`a��+� £ D �¢�¢�â°�����§@��:� �¥������Ï(����¡����*�����7� D ���*�ë�*±-�O����-���R§�}��p�&�����§@�:Á�@�������7�Ë�f�4ô�î`a����-È��´±2�=: D �â��O±7�#�����>�Í�*� ��� � �2��È@��§��¦�óN7�����������#���R�7§��f�w�f� �*¡�°������¢�����R} U � �:�2�@�Z§���O±7��·���>���*��dlazõ-ö £ ¥��·�¨�*±-�O����-������� £ ¥¹:@È���� D ���*�-�����7� �·�*����������±-�O�������(�7�cô4î`a�� £ ¥ D �������2���â����f���-��������������>°����-�_�����#ô4î`a����(����:�����7�8}

U �Ë���O�ò����-�����������@°�R��ö�õ�k�d0�-�§^º¾÷@÷@öò�-����¿%¯Þ�²rÛ�¸PÀ%¿%:_È�R�*�f����Ë�����*�0�-���˧@�:Á���R§ D ����� �Í�*±7�*�¦�O��O�����*����f����±7�R�*µû ���¢�Z�Í� �����:�������*� £ ¥��7� ²�² �-���R�O�û ��È�@�-���R�-�˱-�O���������"�:�¸�·���*�[d@í���î��7�"ï�a7ö�k@î�4�Z�Í�¦���-�§&È�@�-���R�-����-�·� ���@°@�Z�*�´���:¶�-¡�°@���R���-� ����¡º���@°�R�*}&Ì7��¡ ���@°�R���-�����������7�@���&���>°��R� D ���>���±´�´�¸���R�"���*�R§��·����Ï(����¡������R�Í�¦�V�¸� �7�¦§@�*� �·�¨È���¡ �f�¦�����R§�È@� �����2��Ï(±´�-�����-È@����°�-���·�*����I©�©}¼�7}a��°�-���·�*��� �·��-�c�Z�

���7�â���h�����-����±´�f�����-È@����M¦}�������*�-���·�R�h���-��°�����§@��:�w�Z��� ¸¹ÁO´hÝ=¯�±h²2�Ù�@°�]Ip�7�@�����7�����O�����*����-����±7��M:}.Ã_�·�z§@��:�����>°��R�.§@�#���7�����@±7�-��±7��������Ï

����¡������R���:�â§@����������°�-�·���*����Ï(¡ �-�:���@�����G:�È�R�*�-��Í�¨�·���¨���@°���-�a�����:����±´�O�����R�����`ï �:�R�"�������§2���*�-�������¦�-�����*�O�¢���D ��-�"�����:���â��������:�·�����#���*}

Page 36: Functional Programming Using Calm Light

��)(���äT��Ü�Ú#ÝF� Û�Ü ßþÛ*e_ÞV�Òå<��ß8Ý_ß ¤7»õQè76 ñHò_ôöõ�í�ëYîÔôöìÒî�\Tú#ïËø%ëYìGíFìU � D �¢�¢�a���*�#���Ë���@���#���R�:�����7��������§@�:Á�@�������7���-�a���7¡�����Í�:� �@�8�(����:�����7��"�-±7�*�c�«�����:�*}a�����R��� � ����:�Í�¸�2��â�-�·�â�-��7�*���*�¦�´�.���@���*���R���h:�È������-�������7���:¶z��f�������±7�7}�Ì7�7¡��¨�f�������*¡��-�·��°����R§@�:Á���R§þ���ò�����/���-¡��_�����7�>�����������*¡Ë}Ì7�*�¨�´�Z�Í��º Ä^¼8�7�Qº�¤@¿%¼�� �2���2�����*� �:¶�-¡�°@���R� �f�.�(����:�����7��"�´±2�*�a�¢�����¦�Ò}

�c�7¡�°����¦�-�Í�¸�2� �-�_�����#���*���7��� �-�a���¢�Z�Í�Rµr ö�î�d�íî`_ ö¾î�m�c0d2ôoú�ïH�0m�_ªd�õ-÷�m £ ¥¥¢ f nr � � ²�² öÿ¢ f �u� ö¾î�mec`d7ô � ö £-�0�Å�Æ � h � Û �PX'× Å �HÜe�o� É �J�¦����ô Ë È � Ér ö�î�mec`d2ô £ d@í���î � ïlafö¸k@î�¥ �0��������R��� Ñ�a�7��*�f���*��-��������� D ���«�����:�*µr ö�î�d�íî`_�a ��� î�m��júr ïH�0m�_�d4õ-÷�m £ ¥tCËö � ¢ f ö �r � � ¡ ²�² ö �H£ CËö � ¢ f ¡ ²�² � a ��� î�m�� � ö � C�ö �l£0£-�`�× Ä0Ä�Æ � ß �PX'× Å �HÜe�PG¶X'× Å ��Ü���� É X'× Å �HÜ����oô Ë È � É�����Ba ��� î�m¡�ª� ����:�Í�¸�2�����â�´�¸�·�R�7§@� §@�:Á���R§¥���Z���-¡��`:��-�§�È��7���§����������#���@Á�¶��Z§@�*�@���¢Á�*��½�}rD£s�R� � ¥P½ £ � ��� ¥ �`��������R� Å �HÜe�j�¶µJÐ�Ó Ñ Ó½�¦Ó½û ·���*±7�*�:�h����� ���¢�����Rµr ö�î�d�íî`_<í�îªi�ú�ïH�0m�_�d4õ-÷�m £ ¥�¢ f £ ¥r � ¡ ²�² ö¨¢ f � í�îªioö £ ½ £ ¡�¥ �0�Ø�Æ�Ç �PX'× Å ��Ü���� É X'× Å �HÜ�����ô Ë È � Ér íî�i £s�R� �A� ��¥ �0��������R� Å �HÜe�j�¶µ'�RÓ Ñ Ó Ð ·�����¦b¦a � �(����:�����7���-°�°@�¢�¸�R�_���(����:�����7���7���´�«�@�����a�:���*¡��*�@�¦�w�-�¾���«�����^:7�-�§����*�·�������������¢�����_�-��������� ����:�Í�¸�2����R���@���¦�Ò}>�p��§@�*¡��7������:�-���R�"�(�@�«���(����:�����7��O�¢������I(�����¦��N7�R��� � ����:�����7�<�2���-���7��¡��*�@�%MY:X�¢�Z�Í�¨°��·�z�:�R���Ù�¸���;:a�-�§

°�f�¸�@¡��7�·°��@�Z�Í¡ Ip���2��������������-�Í�¸�����-�_���>°���±´�-�����-È@���R�"È�*� D �*�*�Ë�������f���7��¡��*�@�¦�c�-�¦b¦a � ���¥�¸�:�����>°���M¦}r ö�î�d�íî`_þb-a � ïoúr ï��`m _�d�õ´÷Um £ ¥¥¢ f £ ¥r � ¡ ²�² ö¨¢ f � ï�¡ £ ²�² � b¦a � ï ö £-�0�E × Ä � Ê XE×�� É X Ý Òo� É XE× Å �HÜe��� É X Ý Å �HÜe����ô Ë È � Ér b¦a � � ïH�0m�_�d4õ-÷�m�¡¥¢ f ¡ ���H£¶£s�R�E��� � ���K� ¬ ¥ �`��������R� Å �HÜe�j�¶µ Ñ Ó^�¦Ó½û¦ÓqSRÓ½§ ·r b¦a � ö�î�mec`d2ô £[£s�R� �A� ��¥ �P£&�K� ¬ ¥ �»£ q�¥ �P£ ¥P¥ �`��������R� Å �HÜe�j�¶µ'�RÓ Ñ Ó ÐlÓ B ·

Page 37: Functional Programming Using Calm Light

¤7 Ú��X��� Ý.ÞV�¸����å<��ß8ÝVß������� �-�¢��� D �����ò�(����:�����7� �Z��� �¢�����������*�¦�-�·�7�R}\�p���:��N7�R��� �(����:�����7�"×�: �þÈ�7�����:���*¡��*�@�kK0�-�§0� �«�����£ Ú ? � �R�R� � Ú ® ¥4}��p�â�:�7¡�°������R�*µ

õ�d ö�õ�k�d>×¾K�º|Ú ? ÜR�R�O�OÜYÚ ® ¼�¿Õ×\I¦�O�R�OI�×�I�׿K/Ú ? MVÚ / M��R�O��M�Ú ®½��2�a������:�-��:�=: D ���*�Ë�-°�°@�¢�¸�R§ �����������:���·�����R§Ë�7§�§2�������7�¥� ����:�����7�F:¾����������È�7�����:���*¡��*�@�·n;:��-�§��������¢����� �-��@��¡¨È��*�¦�%:@�����:�7¡�°������R������������¡É�-�a�O�¢�.�:���*¡��*�@�¦���¸� �����#�¢�����R}��������:¶�°����R���h���7�8µ

õ�d�fö�õHkªd � � í�î´ï�õ�¡ �l£ n £J���E��� � �Q�K� ¬ ¥�*±´�O����-���R�"���/I�I�ImIÙ� É ~�M É |SM É ¤�M É ¹PM É »�©}¼�7}_��� ��¬ }

r ö�î�d�íî`_ õ�d��7öõHk�d ï�aµúr ïH�0m�_ªd�õ-÷�m £ ¥o¢ f ar � ¡ ²�² ö¨¢ f õ�d��7öõHk�d ï � ï¥au¡ £ ö �0��`� F`Å �HÜ�� � Ê X'×�� É X Ý � É XE×`Ò�� É X'×�� É X ÝjÅ �HÜe��� É XE×j�oô Ë È � Ér ö�î�d�kzõ�cªb-a úÎõ�d��7öõHk�d � í�î´ï�õ�¡ � n �`�Ü�� h�E ×��¤���¦� Å �HÜe�o� É �J�¦����ô Ë È � Ér kzõ�cªb-a £s�R�E��� � ���K� ¬ ¥ �`��������R����Ð:Sr õ�d�fö�õHkªd � � í�î´ï�õ�¡o¼ £���£J���E��� � �Q�K� ¬ ¥ �0��������R����Ð Ñ B�����0õ�d��7öõHk�d&� ����:�����7�H�Z�¥�7�����-��������¡ �-�@� D �O������� �����*�¦�-�·� �-±7�*��� �¢�����R}�½��7���7�����*���¢�����������*�:�-�����7��(����:�����7��%:����*�_º Ä^¼p}

���öú#ïFõ ëYì<ú ìú]�8xzQ-W7Y®y*x [��(L[¦ À ü °;ÀT²!�Àý_7÷�b¸º8õJm�îx®%¯°;±h²r³{´=°$��³{±J��«t��À^°Jß!³ò�^Àh°>µX¸Pµ=³�ÁX´O®T¶B³ ¿%²{¿�«�Á�À^²r¯Á@°P¿Tµ_¶B³ ¿a²�´O®C¸Sµ=³{Á�¿¿%¯±��¡²!�µ!²&�_7÷�b¸ºXõ�m�î � £ ¡ �R� p`p`p � ¡�m ¥DC £ ø �R� p0p`p � øHm ¥ £ ú £ � ¡ � C7ø �H£¦� p`p0p � � ¡HmÀC7ø�m £ ¥Á �ÀC®%¯°;±h²r³{´=°>ß=À^°GÀhÁOµ=²rÀ�¿ µ>Á@¯�°���²r³{ÞHÀHÀhÁ@Á�´!ÁQ³ ®Q²!�À_µ=Árß=¯�ÞHÀh°;²V¶B³ ¿%²{¿TÝ=´>°G´=²A�µ��^Àö²!��ÀH¿aµ!ÞöÀH¶BÀh°�ß=²!� �ú]�8xzQ-W7Y®y*x [��®r¸¦ À ü °;ÀQµX®%¯°;±h²r³{´=°¿��³�±���«t��À^°¡ß!³ò�^Àh°�µ/¶�³ ¿%²z«VÁ�À^²r¯Á@°P¿Q²!��Àö¶B³ ¿a²C´O®Qµ=¶{¶F³{²{¿T¿a¯Pá%¶B³ ¿a²{¿1�

Page 38: Functional Programming Using Calm Light

& ')(+*-,/.10 Â

à J G 4AÄZ5 GÆÅ C G 5 E54 § GIJ

����������*�c��� �O�¢��� D �R§�����§@�:Á�����@�Z�a[R���*� � D ��§��-�¦�����>°��R�*} U �������·�@�Z���©�7�·�¢�¢�����=:������*���#�����������*�R§������*��:��§@������â§��f�¦�����·����:�������R�V����-�_¡�����aÈ��â¡��-�@��°��@�Z�f���R§�È@����°����2�7�¦�-¡ ���@�����¢�����¦�]IÙ�7�Ó��� ������°<M_�7�V���>�����-���¦�O���CIÙ�7����ò½��7���·�¦�-�<M¦}�½������·���*��¡��7���=:��R�-�����˧@�*���R�:�Í�¸�2� �f�a�Ù�@°���*�����7�:�����#�*�@�(�7�¦�:�R§<:��h����:������*��Ïp§@�:Á���R§�§��-�¦�����>°��R����;¹�R�:� °��·�R�·�Z�Í�:�¸� ���������*�R§��"�-�_�������O���7�7�Í�¸�·��¡ �*}�c�@°�R� �f�����:�������*�Rµû ¸¹ÁO´hÝ=¯�±h²����@°�R�%:û �7�X¿a¯�ÞÎ���>°��R�*}U �â��O±7���O�����R�7§@�����*�*���:¶�-¡�°@���R���-�.È��7���/N7���§��"�-�.���@°�R�*µ�������º÷>÷@ö��-�§�ö�õ�k�d����>°��R���-��������¡����>°��R�

Ip�����*���:�7�>�:�O��� ±-�O�����R� D ������§2��A8�*���*�@�â����f°�R���-�§��-����§@�:Á���R§��-�§�¡ �-�¦�·���R§���h�����ª�Í�*±7�*�¦�O�.�O�����*����f����±7�R�@M¦}�������*�-�����R�Ù�Z�f�0°����z§@��:�������-�&�:¶�-¡�°@�����-� �¥°����z§@��:���Ù�@°�7µ D �JN@��� D ���¦�f�����*�O�¢�¸�&����������-°����-�â±´�´�¸���R�È�:���7���f�¸�����·�ª�*�f�����R�h���-� °����z§@��:�:�*}�h�����@���â�·��-°����*�^: D � D �¢�«�_���*����� D ����§@�:Á�����-�§��������� D ���>°��R�c���Z���f¡��p}

�QèYé ��ïFî±8/òHõ�í�íPð9Z>ú#ìÃ_�·�z§@��:�#���>°��R� �-���®ü °G³{²rÀT¶BµámÀh¶BÀYÝ °����z§@��:�:���-�a���>°��R�*}������*�Ë�-�������2�*���*�¦�O�¢� �R�-�����7���-�a�*�-�����R�h���-� °�����§@��:�R}³����*¡��*�@�¦�"�-�.°�����§@��:�#�Ù�@°�R�"�-�����*�O�¢���R§\Á�À@±@´=ÁOÝ�¿ }¢]\ya�\&a Ç å�æ�`cep`cm<kal2g]sa^ab@d dZdak åäñ#� �:¶�-¡�°@���7µa����°�°��>��� D � D �-�@�a����§@�:Á��� ��§��-�:�������·��:�������â�:�7�@�¦�O���@���������@�(�7��¡ �-�Í�¸�2� �-È��7���_���§2��±2�Z§@��´�Z�Ò}U ���:�7�@��§ §@�:Á���7µr ö�î�dPÈ�î`a�m�ú � ��É>î`a�m��ÊC � ��C��iË�dH����î�med��ÊC���Ì�a-í4õHk¡� £-�0�Í Æ ×��ó��Üe� Ø �J� h G��J�¦�HGjÜ�� Ø �J� h GjÜ�� Ø �J� h ��lZÎ Æ ×J��l Þ Ñ � Þ l Õ � È�ßeÆ �¦��l Þ l�Ï × Ø ��Ü�l�-�§������°�-���·�*����Ï(¡ �-�¦�·�@�����������:¶z���:�7�:���-�@��°�-�·�����:�@�Z�f�����@� �7�·¡ �-�����7���-È�2�����·����°�*�¦���2�kȾî0a�m8}Ó������°����7È�Ï���*¡ D �����ë����·�ò����-�2���-���*�f�����R�h���-�ò°��·�z§@��:� �Z������f����� ����:�����7�^m�asbwî��7÷2ïË���*�����·�@�¸��� ��������-¡���Á�:��§ò�-���±-�O�����Ë���*°����R�Í�*�>�������0�-�&���§2��±7��§@��O� D �7�@��§0��O±7���·���Ë���-¡������@°�Ë�7���·�����7�*���*�¦�O� Á�:����°����!RÙ�R�:�����7�&�(�7�¹7Ï(����°@���R�bIÙ�f�§��¸�§@�*�R§ D �2�@�Z§¥È�����������-¡��#�(����:�����7�<M¦}#���@��� ���@°�����#���7�"°����R�·�������*���7���7�ò�h����:���¸���O�¢��� D ��(�7� �������-°�°@�¢���*�-�����7���-���������(����:�����7�Ë�·�ª�f�>��¹7Ï(��°@���=:4�f�§����7���7�@��������±-�O�����R�â�Í������7��È�î`a�m8}

�h������R�7§��f�Ó��h�������*�-�����R�Ù�Z�f��°����z§@��:�^: D ��§@�:Á���ª� � î´ílk7÷�m˧��-�¦�����>°��7µ¤@¿

Page 39: Functional Programming Using Calm Light

¤7Ð Ú��X��� Ý.ÞV���=���Vß>ÞV������ÞCä��ÙÜ#ÞV��Ý®,·�cÞ�ßr d0ø � î � î´ílk7÷�moúr Ð�Ñ aJb8î ² k�d@í4õ�mec �ªÒ c�î ² õJm�d � É7÷�º ² k�d@í4õ�mec � g õ�d`ø ² kªd@í�õJm�c Ó �`�Â�ÖªÄ�Æ�ÄáÆ�Ø Ü Ã � ß�Æ Ë ��� ÆHß�Ù���������@°� � î-í�k7÷Um����a�·���X¸¹ÁO´hÝ=¯�±h²��-�Kkªd@í4õ�m�c¹:�õJm�d¹:lk�d>í�õ�mec��-�§�k�d>í�õ�mec�}.�����#Á�:��§¥��-¡��R�c°����-±7��§@�����@°����@� �2��¡ �-�����7�Ë�f�§��O������§@�z�:��¡��*�@�¦�-�Í�¸�2�8µ�������� ¡���·� �R�7�Ù�¸�*�"�������§@�*�¦���:�-�§�§��-�¦�������·��:�������R������·�Ë�7�,Ⱦî0a�m�-È��´±2������-�Ë�-��È@�����:�-��������°@���R�*}

U � ��O±7�Q¶BµámÀh¶ ¿VI(�p} �7} Ñ asbwîP:�R�O��M��������:�(�*�������:�7¡�°��7���*�>�:�a�f�X�·��� °�����§@��:�¦�*}a�����"�7�¦§@�*�a�f�w�f°�°�R�-�¦�f��:��-�������a°��·�z§@��:�¦���:�7¡�°��7���*�@�¦�����w���7�8���:���*±-�-�>�Oµ8���-È��:���_�-���a���`ï �·���*�@�_��� ���@�ò?2���:�¸����§@�*�@���¢� ���������:�7¡�°��7���*�>�:�*}�����H���f¡��X���������*¡éÁ�§�� ���*�-���2�@�Z�*�´�X�2�¦§@�*���7�����-È�:���"�������*°��·�R���*�>�#�-�§�°��Í�¸�@� ���R�:�2�¦§�±-�O�����R�*}������â�2�¦§@�*����â�´� D �O���a�·�����7�¦§@�*� D �@���·� �-°�°��R�-���R§ �¸� �����¨§@�:Á�@�������7���-�����������@°�7}U ��¡ �O����� D §@�:Á��������� ���§2�¸±2��§@��O�ÀȾî0a�m¥�2�*µr ö�î�dPÈ�î`a�m¥ú Ð É7÷�º�ú��iËHd�����î�m�dÊ� � g õ�d`ø�ú���Ì�a-í�õ�k�� �r Ñ asbwîUú+��É>î`a�m`� �ªÒ cî�ú � ��Ó �`�Í Æ ×��ó� ÄáÆ�Ø Ü Ã �Î�MÔZÕ�× E-Æ ��lZÎ Æ ×��Àl�Ó¿� h�Æ � Ñ �¦ÓqÎ Ã`Ý ��l Õ � Èeß�Æ �R��lUÓqÖ`�0� Ö ��l�Ï × Ø �HÜ�lØ×���@���"�:¶¾�-¡�°@�¸� �¢�«������·�¦�-���R�"�����#�p�7�:� ����-���7�:§@�*� �-���Z�fÈ�:���"��� ���7�����:���*±-�-�>�O}

¢]\ya�\r^ bb�_d7l7i�b@d7ep`cm<kal2g]sa^ab@d7ä�b�g8nKk g8`aå�`8d7ä�������*�-���7�@���*�O� D �O���-�a�:¶z�·�¦�7�:��������°�����§@��:���:�7¡�°��7���*�>�:�����]¸Sµ!²r²rÀhÁ@°���ÞHµ=²r±��³{°ß7}�Ã_�-�·���*����Ï(¡ �-�:���@������°����7ϱ2�Z§@�R��� D �O������¡��*�@�����7� ����������-°��¨�f�Ó±-�O�����R���-�§������-��±7�EI(���z�*�´� M���-¡��R�"��� �:�2¡�°�7���*�@�¦�"�-�_±´�O�����R�*}#�h������ � �-�¢��� D ����� �:¶�-¡�°@���=: D ����-¡���mË�������@��¡��*�����*�O�_±´�O�������:�7�@�¦�O�����R§���� ������Á�:��§ Ò c�î��-�Ó�·�����-���7��¡��*�@�h:�-�§ D ���·���>�>�Í�������(�7���7�*��±´�´�¸���R���:�2�>�¦�´�¸���R§���� �7�����*��Á�:��§��bIp��h�������·���§������-�:�7�:���*�%M¦}r ö�î�d�aªc�î��7÷2ï�úHï��`m _�d�õ´÷Umr Ð�Ò c�î�ú�m �$Ñ aJb8î�ú¡� � É7÷�º�ú � � g õ�d`øeú¡��Ó¨¢ f m �0�× h-Æ�FeÃ Ë � Ä�Æ�Ø Ü Ã � � É ���R�¨�oô Ë È � Ér aªc�î��7÷2ï»È¾î`a�m �0��������R��� Ñ ��p���Z�#�O������°��>���h��È@������� �7�*�:�R�·��������±´�´�¸�����-�_���h�����-����Á�:�Z§<: D �����������½p_I�§@�7�%M_�7°�*�:�-���7�Rµr È�î`a�m2p Ò c�î �`��������R��� Ñ �r È�î`a�m2p<Éf÷Uº �`����»Ü�� Ø �J� h ��l Õ � Èeß�Æ �R��l�8�-È��:���a�O� D �O�z�����:�(�*������������¡��>�������R�:�*�@�_���>°���§@�:Á�@�������7�8µ D ���*��� D �#���R�:�7�¦§����@°�R��°�@�����R���_���2¡����:�7¡�¡��7����-È�:���%:��·���*� �·���R�������-È��:�Z���´� D �O�������:�(�*�â����������¡��@��� ���R�:�*�@����� §@�:Á���R§ ���>°��7} U ���*�Ë��h������¡���§@�@���R�bIÙ���*����R�:�����7��~7~2} |�M����@����°����7È@���*¡ �-�Í�Z�Í�R�w� �7�����>°��R�_§@�:Á���R§���������� ���-¡���¡��z§@�@���7}a½¾�7�.���@°�R�_§@�:Á���R§���� §2�BA8�*���*�@�¡���§@�@���R�%:@����� �(�@�¢�4��-¡��â�-�����-È�:���XI(�p} �7} D ����������� ��f¡��â�f�4�����#¡���§@�@�¸�R�c°����*°��*�§@�R§;M�§2�����-¡�È@���7��-���R������·��h������-�Í�¸�2��*}

Page 40: Functional Programming Using Calm Light

�=�|ã��<ß��* Ý2,��aÞ�ß ¤7Ä¢]\ya�\w| Ù�i�l7i�noå�d7ål2e&Ú�å�sKkal7g]sc^ab@d�dZdak å�ä�p���Z���¸¡�°�7���:�-�>�"����È���-È@�����·�ª§@�:Á����°�-�¦�-¡��*���*��� �*�R§����>°��R�c���Ë�7�¦§@�*������§@�:Á���Hß=Àh°;ÀhÁ@³�± §��f�¦�������·��:�������R�*}�����âö�õHkªd��Ù�@°�c���c°�-�¦�-¡��*���*��� �*�R§<:>�-�§ª���@�������_���������R�2���7� D �@� D ��¡ �O��È��@�¢��§��¢�����¦�_�f�X�-�@�QN2���§��-��±´�O�����R�*}�(� D � D �-�>�#���˧@�:Á�����·��� �*�-�����R�Ù�Z�f� °��·�z§@��:���7�������-¡��a���@°�=: D �����*�R§����@°��°�-�¦�f¡��*���*�¦�#È��R�*�-���� D �D �-�@���·��È���-È@��������È��@�¢��§ �*�f�����R�h���-� °����z§@��:�"�-� µ!°GÛ#°�O��� �-�_���>°��R�*}r d0ø � î � o>a�C�o3º £ � a�õRí�ú Ð º kªd ² o;a � ËUm�� ² o3º�Ó �0�Â�ÖªÄ�Æ�Ä ×`� Ø©ßeÆ Ë ��� Æ�ß�Ùr ö�î�d�ï4õOí�k�dj¡oúj¡Fp º k�doa�m���k>î`_7÷�m��+¡�ú�¡�p�Ë�m�� �0�Ë � Ø Üe��� Ê X'× Þ X Ý Ò Ä ×`� Ø � É XE×j�oô Ë È � ÉÜ Æ Ì Ã � ß � Ê XE× Þ X Ý Ò Ä ×0� Ø � É X Ý �oô Ë È � Ér ö�î�d � ú Ð ËUm��0úHd>íH��î � º kªd�ú ���`� Ó �0�Ä � Ê �J�¦� Þ Ý0Ã`Ã�Å Ò Ä ×`� Ø �¸Ô1Û¸Üe�j�j�¦Ó Õ � ß ��� Ø¸È¸Æ ×r ï4õOí�k�d � � £¦�`��������R�����U �-�·�@�¸����µ_����� � azõOí ���@°�#���#�h��¡��¢�Z�f�â���������H���-¡��.�*�-�·���R�h���-�Ë°��·�z§@��:�ý¼P:�È��������"��� ��§2�BA8�*���*�>�#���>°��7}r ï�k�d � �`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É�Ë Ü�� Ä Ó`ÓÉ ÔÂsÛ �HÜ Æ Í Ä Ø�Æ Ü0Ü�� à � Û ×HÜ�� Ö�Ä�Æ Ê ���¦� Þ½Ý`Ã0ÃHÅ Ò Ä ×0� ØÞÝHÈ �j�HÜ È Ü ÆHßµà �`� Û � Ö�ÄáÆ X'×PG¶X Ý�Ùñ��:����O�¢���=:z�f�>��� D �#���>°��â§@�:Á�@�������7��c°����z§@��:��§2�BA8�*���*�>�c���>°��R�*}��(� D � �*�@���*�a�-�@�O����������°����*±2�¸�2���§@�:Á�@�������7�8µr d0ø � î � o>a�C�o3º £ � a�õRí�ú Ð º kªd ² o;a � ËUm�� ² o3º�Ó �0�Â�ÖªÄ�Æ�Ä ×`� Ø©ßeÆ Ë ��� Æ�ß�ÙD ���*�-�����7�â�f�>�����7���7�*� �:¶����¦�7�:�"����� º k�d��:�7¡�°�2���*�>� �f�á¡�µr � p º k�d �0�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É Ä·Ù Û�Ü���Ó0ÓÉ-ÔÂsÛ �HÜ Æ Í Ä Ø�Æ Ü0Ü�� à � Û ×HÜ�� Ö�Ä�Æ Ê ���¦� Þ½Ý`Ã0ÃHÅ Ò Ä ×0� ØÞÝHÈ �j�HÜ È Ü ÆHßµà �`� Û � Ö�ÄáÆ Ê XE× Þ X Ý Ò Ä ×0� Ø�Ù�h����:�����������-È��:� º k�d����:� �*�:�a�·�������Q¶Bµ=²r²rÀ^Á_���>°�� � azõOí�����-� D �â§@�:Á���R§<: D �@�¢�¸� � � �V�Ù�@°���Z�c�����C®%´=ÁYÞHÀ^Á � a�õOí4}�QèOç �Hò³� íPðBZ>ú ìñÒ¿a¯�Þo���@°�����c�����Kü °;³�²rÀx¶BµámÀh¶BÀ@Ý §2���{RÙ�f�¸�@�����@���7���-�.���*±7�*�¦�´��Ù�@°�R�Ò}_ño����¡��Ù�@°�#§@�:Á�@�¸�Í�¸�2�˧@�:Á���R� �����@°��7��È��:����� ���������@���7�Ë�-�a���7¡��â�7�·���*� ���>°��R�*}

Page 41: Functional Programming Using Calm Light

¹>� Ú��X��� Ý.ÞV���=���Vß>ÞV������ÞCä��ÙÜ#ÞV��Ý®,·�cÞ�ߢ]\_^`\&a Ç å�æ�`cep`cm<ä-^an dZdak åä³�¶�-¡�°@���7µ D � D �-�@��������O±7�������@°���*�O�¢���R§&õ��¾î�m�d�õRï�õ�_`a�d4õ-÷�m D ���@����±´�O�����R�#�*�-�ËÈ��7µ

û �:�¸�·���*� ���·�������>�XIp��-¡����-�Ó�-�����§2��±7��§@��O�eMY:û �7�c�¸�@���*�7�*�:�TIp�*��:��§2����� �f�V�����·���O�Ó���R�:���Í�¸�����@��¡�È�*�â�7�"��°�O��� �-�����>���*�2�*�¦�@M¦}

U �������*�����*�R§������>°��ª�:�2�>�¦�´�¸�@�����àám´=²!�Ëõ�med�¼ õ�medË�f�§ �·��-�¦�2�:���*� �Í���������>�*} U �¨�O����� D �-�@�â�·� °����R�Í�*��±7����¦�f���������@°�*Ïp�·���R��N2�����G: D � �·�>�� D �-�@������È���-È@������� §2�����������7�@����� °�O���¦� � �·�7¡ �·��-�¦�7�:�·�*�¨�����Í�¸���@���*±2�*�ò�¢������*���-���#����R��R�:���R§¥�¸� �7�¦§@�*� �·���(�7��¡ø�¨�Ù�¸���f�¸�����@°�7}�"�*���#��� D ��-� D � D �2�@�Z§ §@�µ

r d0ø � îoõ:��î�m�d4õOï4õH_`aªd�õ´÷Um�ú Ñ aJb8î<÷2ï¥k�d>í�õJm�cr � Ë�Ë�÷2ï õJm�d�¼ õ�med �0�Â�ÖªÄ�Æ � ß�Æ �¦�`� Ë �eÌH×`�0� à � ßeÆ Ë �J� Æ�ß�Ù����� �Ù�@°�&õ��¾î�med�õRï�õH_0a�d4õ-÷Umò���������¥���-È�:���R§o§2���{R��-���>�����@���7���-�Bk�d>í�õJm�c0�-�§ õJm�d�¼ õJm�d�} �����¥���-È�:���Ñ asbwîþ�f�§ÜË�Ë&�-���Z³{°Z�%ÀY±^²r³�´!°P¿*}ë�����*�&���R��°��R�:����±7�:���0����RÙ�R�:��õ�med�¼ õ�med0�-�§+k�d>í�õ�mec����@���0� �Ù�¸���f�¸�����@°�õ:��î�med�õOï4õH_0a�d�õ´÷UmX}�X�*� �������������R���#����RÙ�R�:�Í�¸�2��"�¸� �7�¦§@�*� �·�¨È��@�¢��§���� D ±-�O�����R�*µ

r ö�î�dÎõ�� � ú Ñ aJbwî¼�:É@î`a�m`� �`�� ß Ð �¤� ßeÆ �¦�0� Ë ��ÌH×0�`� à �ÿ�ÝÕ × E-Æ lZÎ Æ ×��Àlr ö�î�dÎõ�� � úHË�Ë � � q�@`n�@ � U]C � U0n`�0n ¬l£¦�`�� ß Ñ �¤� ßeÆ �¦�0� Ë ��ÌH×0�`� à �ÿ� Õ0Õ Ê Ð�§Þ B Þ Ñ ? Þ Ñ ? B � B SeÒß �O�����R��õ�� � �f�§�õ�� � È��:���7��� �·�����������-¡����Ù�@°�7}c�����*� ¡��R���(�7���:¶¾�-¡�°@�¸��È��°���� ���@�����¢�����¦�#�7�c���8µrD£ õ:� �R� õ�� � ¥ �`������ ßeÆ �R�`� Ë ��Ì�×`�`� à � Å ��Ü�����µyÕ × E-Æ làÎ Æ ×���lUÓ Õ`Õ Ê ÐH§�Þ B Þ Ñ ? Þ Ñ ? B � B S�Ò ·�h��RÙ�R�:�Í�¸�2���¡ �O�0°�@�����R�����7���ò�-�·�7��¡��*�@��IÙ�2�����o�������:¶�-¡�°@���ò�-È�-±7��M@: �7�����7���7} ����� ���-���·�*�Ë�*�7���

�:�7���·�R��°�7�§�� ? ����Àh°;¯ÞHÀ^Á�µ!²rÀYÝ/²rÛm¸SÀ%¿%:��7�c��� Ã_�2���*�O�p}_ñ#���:¶¾�-¡�°@�¸���-�_�*�>��¡��*�:�-���R§����>°������*µr d0ø � îjk��Xõ�d�úH��î0a-í0dr �~á õ�aJb4÷Um��r � g ö��`ºr � Ë � a���î �`�Â�ÖªÄ�Æ Ü È �0� ßeÆ Ë ��� Æ�ß�Ùr g öU�0º �`����»Ü È �`���HÖ Å`È�Ý�������Ù�@°�ùk��8õ�d �:�7�@�¦�O����"�7�@���˹ §2�����Í�¸��:���:���*¡��*�@�¦�*}#���*�#��â�:�7�@�����@�������@���#�:¶�-¡�°@����È@�˧@�:Á�@�����Ë�����@°��(�7�â�*�-�¦§��Ò}ce��tTjFkmlVn�D�z|u@f%p7O=prfhgOqrg�z|y�thsCz|l#�%n�z|�ez|pVs@q%"hgOqFs@tTwYk~n$�hgOy�sm}Gy%�hl1p!#%��gOyO�

Page 42: Functional Programming Using Calm Light

�=�|ã��Ëß��* Ý2,��aÞ�ß ¹~

r d0ø � îj_`a´í �jú Ò _>î ÷2ï�k��8õ�dr �~â õJm�c ÷2ïok��8õ�dr �äã �4î@î�m ÷2ï¥k��Xõ�dr � É`a0_�t ÷2ïok��8õ�dr � Ì�ö�a�õJm ÷2ï¥k��Xõ�d�¼ õJm�d �0�Â�ÖªÄ�Æ Ì�× Ø�ߨßeÆ Ë ��� Æ�ß�Ù���������@°�³_`a-í �����"������§2���{R��-���>�#���@���7�Ë�-��µ

û k��8õ�d����§@�*�â�����#����R��R�:�����7� Ò _@îP:û k��8õ�d����§@�*�â�����#����R��R�:�����7� â õ�m�c¹:û k��8õ�d����§@�*�â�����#����R��R�:�����7� ã ��î@î�mF:û k��8õ�d����§@�*�â�����#����R��R�:�����7�qÉ0a`_�t¹:û ������°�����§@��:�â�-��õJm�d �f�§�k��8õ�d����§@�*�#�����#����RÙ�R�:�����7�¿Ì�ö�a�õ�mX}

���*� ��"È��@�¢��§ �¨�«�����#�-�a�*�-�¦§��*µr ö�î�d�ï4õ�c���í�î0k��f÷2ï�_µú £&Ò _@î�_ �$â õJm�c�_ �åã ��î>î�m¥_ � É0a`_ªt�_:¥r a�m��¨ksb-afö@ö¡�0_`a´í �¸k��7÷7ï¨_µúr b¦a � � ï��`m _�d�õ´÷Um m΢ f Ì�ö�a�õ�m � _`C m £0£�£ @ � U �=I���� n�¥ �0�Ë � h�ÈUØ�Æ Ü F�Ã Ë ��Ü È �`�o� É ÌH× Ø�ß+Å ��Ü�����ô Ë È � ÉÜ E × Å0Å�F Ì�× Ø�ß Ü FeÃ Ë ��Ü È �0��� É Ì�× Ølß Å �HÜe�j�oô Ë È � Ér ï4õ�c���í�î0k��f÷2ïA��î`a´í`d �`����¤ÌH× ØlßjÅ ��Ü��j�¶µQ��Ì Æ � Æ × Ø � Óäæ��J� h � Æ × Ø ��ÓÜç ȸÆ`Æ �P� Æ × Ø � ÓqÎ`×eÌ�èH� Æ × Ø � ·r ksb-afö@ö¡�0_`a´í �¸k��7÷7ïHË � a���î �0����¤ÌH× ØlßjÅ ��Ü��j�µ&Ï Å ×`��� Ê Õ�Ä × ßeÆlÞ ÞªÒ�ÓäÏ Å ×`�J� Ê Õ�Ä × ß�ÆlÞ ?�Ò�Ó¿Ï Å ×`�J� Ê Õ�Ä × ß�ÆlÞ T`Ò�ÓOÏ Å ×0��� Ê Õ�Ä × ß�ÆlÞ Ð B Ò ·

¢]\_^`\r^ bb�_d7l7i�b@d7ep`cm<ä-^an b�g8nKk g8`aå�`8d7ä��� �:�7���:���=:�°�-�����*����Ï(¡��-�¦�·�@�¸���¥������Í�R§ò��� �:¶z�·�¦�7�:������¡ �:�7¡�°��7���*�@�¦�*}/�p�0�*�7�����-�â����¡����@°�R�%:�°�-�·���*����Ï¡ �-�:���@�����Ë��Í�R�¨§@�@��-¡��������R���¦�"�(�7�����@�����:¶����¦�7�:�����7�8}����������:¶z���:¶¾�-¡�°@�¸��§@�:Á���R�����(����:�����7�+_f÷@ö>÷2í����*Ï�������@��������������-¡����f�Ó�������:�f�¸�2�â�-�������¨���@���â�f���7��¡��*�@�Rµr ö�î�d�_f÷@ö>÷2í�ú�ïH�0m�_ªd�õ-÷�m á õ�aJb4÷Um���¢ f �*í�î����r � ��î0a-í0d�¢ f �Òíî����r � ��¢ f �;ºö�a`_�tÊ� �0�Ì Ã�Å�ÃªØ ��Ü È �0��� É Üe� Ø �J� h �oô Ë È � É���*� ��#�:�7���@� ������±-�O�����R� �-�a�*�-�¦§�� IÙ�7������¡�� D ���f����°@���R�2����� ½ È�:���7���h¾�M:µr ö�î�d�_f÷U�0m�djd>íH��b � ú ïH�0m�_�d4õ-÷�mr Ò _@îP� ¢ f �`�r �éâ õ�mec#� ¢ f �

Page 43: Functional Programming Using Calm Light

¹>| Ú��X��� Ý.ÞV���=�1�Vß>ÞV������ÞCä��ÙÜ#ÞV��Ý®,·�cÞ�ßr �êã ��î>î�mm� ¢ f �r � É0a`_ªt©_ ¢ f õOï¥_ újd@í���b � d2ô�î�m � nKîfö¸k@î �r � Ìzö¸azõ�m � _�C � n £ ¢ f � nr � Ìzö¸azõ�m � _�C I�£ ¢ f õOï¥_ újd@í���b � d2ô�î�m ��� îfö¸k@îµnr � � ¢ f n �0�Ì Ã�È �R����Ü È �0��� É Ì�× Ølß � É ���R�j�oô Ë È � É

¢]\_^`\w| ë�å�b�^al7ä-erì�å�dZdak åäÌ7�7¡��"�Ù�@°�R��°��>�����R�·�a�#��-�����:�O�¢�¸�����R�:���:�h��±7�â�����·��:�������=:-�¢�����¦��:-�(�7�_�:¶¾�f¡�°@���7}��p�����a�´�Z�Í������� �*�7����� �7�_�·���*�*Ï®�¢� N2������·��:�������R�%:�Ù�¸��:�������*�R����O±7���Í��È������*�R������f�â�-���#�����*�R���·���*¡ ���:��±7�R�*}�X�*�â��#§@�:Á���¨�����>°����(�7�â�-È���·�¦�7�:�â���@�@�¦�O¶������*�R���-�����h��¡�°@���ª�f��������¡��*����� ���-���7��-�7� / }cñ#� �-��������¡��*�����

�:¶�°����R���h���7� D �¢�«�È��a�:�������*�_� �@��¡��*�����c�:�7����¦�-�@�h:*�2�Ó��±-�-�����-È@���=:-�7�������a�7§�§2�������7�F:-¡��@������°@�¢�Z�*�f�����7�F:�§2��A8�*���*��:�=:�7�â§2��±2���h���7���-�Ó� D ���:¶�°����R���Ù�¸�2��*}r d0ø � îja-í4õ�d2ô��@ � í�ú g ÷�m�k�d ÷7ïÎõ�medr �éí a´í ÷7ï�k�d>í�õJm�cr � Ì�ö���k ÷2ï�a´í`c�kr �éî �¾öHd ÷2ï�a´í`c�kr �éî õJm`��k ÷7ï�a-í0clkr �éá õ�i ÷7ï�a-í0clkr a�m��¨a´í`c�kjú Ð�Ò í0c � ² a-í4õ�d7ô+�@ � í �ªÒ í`c � ² a-í�õ�d2ô��@î�¡ � í Ó �`�Â�ÖªÄ�Æ × Ø �0� Û+F¸Æ Í Ä�Ø�ßeÆ Ë �J� Æ�ß�ÙÂ�ÖªÄ�Æ × Ø�h Ü ßeÆ Ë ��� Æ�ß�Ù����� � D �����>°��R�Ka´í�õ�d7ô+�>î�¡ � í��-�§ a-í0clk �-�·�â�h��¡��@�¸�:�-���*�7��h��� §@�:Á���R§<:��-�§ a-í�õ�d2ô��@î�¡ � í����_�·�R�:���¦�h��±7���h����:����¦� §@�:Á�@�������7�����:�(�*�¦�����»a´í`c�k D �@�����¥�¸�:���:�¢�a���:� �*�:����� a´í�õ�d7ô+�>î�¡ � í�}�ñ � �f���:¶¾�-¡�°@�¸�=:��7�����:�7�@��§¥���*°����R���*�@��������-È�Í���¦�7�:� ���@�>�:�O¶ �·���*���-�_�������-��������¡��*�Í�Z� �:¶z°��·�R���h���7��½s¡ � � �¸¼�ø £ ¾��7�c�����_���f¡��8±´�O�����7µr ÌzöU� k Ð�Ò í`c � ú í a-í¤�J¡�� �r Ò í`c � ú î �ö�d Ð�Ò í`c � ú g ÷Um k�d � �äÒ í`c � ú í a-í¼��øÊ�iÓ�Ó �`�����× Ø �`� Û+F�Æ Í Ä Ø �Ï Å`È ÜMÔi� Ø�h Ð �¸ï�× Ø lEÍ]l�Ó¿� Ø�h Ñ �Ü� È`Å �PÔi� Ø�h Ð+�PÖ Ã � Ü��+�RÓ5� Ø�h Ñ �MïH× Ø l Ö l=×�×���������R�:���¦�Ù�¸±2�ª§@�:Á�@�������7� �-�a���>°��R�#¡ �O�����R�7§��·�����>°��R�������� ����-�"���#�Z�"��-�¦§ �7�"��¡�°�@���h��È@��������È��@�«��§

±´�´�¸���R�"�-�_�����R�����Ù�@°�R�Ò}Ó½¾�7� �:¶�-¡�°@���7µr d0ø � îjk�d�� � õ��jú Ð�Ñ î�¡`d ² kªdH� � õ:��Ó �`�Â�ÖªÄ�Æ Üe� ÈsÄ � ßµß�Æ Ë ��� ÆHß�Ù³����*¡��*�@�¦�"�-�.���@���"���>°����-���_³{°Jü °;³�²rÀ §��f�¦����������:�����·�R�*}a³a�·���*�>�Í�Z�´�«���=:��������7�@��� D �O����� �:�7��Í������:� �7���#���*µr ö�î�d�íî`_�k�d�� � õ:�¡�ªilaföU��î ú Ð�Ñ î�¡`deú¸kªdH� � õ:� ��ilaföU�4î�Ó �0�Ü�� ÈJÄ � ß�FeÇ × Å`È�Æ ��Ü�� ÈJÄ � ß �ÔZÕ Æ Íl�j�C�oJ#%t%p`k'&Tprqrg�gOyVkmqrgVy`k~z$"Hprsx��g[êZð7í�ñLëòêJé<ñ��LgO��k'�hyrgxprf^g�#Tkmqrg ��z|gO��gOy�sm}áêZð7í�ñLë!êJé=ñ�í�ò�ó:ñLêEç��Os@t%prq`k�yrp{z|t^uý�<z|prf³é3ìZó�éEë!æ=ñLæAíQò{ó�ñ êEç�Ff�z|�`fXz|yFprf^g i yrprq{z|thu@v#} sYqrl1sm}G�hqrs@uYq`kml#y�ô¹kmtLk~n$#Zõ`z|t^u0ö �Lkmqry{z|thuZ÷��OsYt^��qrgOprg�y%#%t%p`k'&[�^y%�Lk~n�n$#Q�^qrsJ"��h�OgOy�k��^yrprq`k��Op�y%#%t%p`kE&��

Page 44: Functional Programming Using Calm Light

�=�|ã��<ß��* Ý2,��aÞ�ß ¹>¤

ÔZÕ Æ Í��j�ÔZÕ Æ Íl�j�ÔZÕ Æ Í��j�Ô�Õ Æ Í��j�ÔZÕ Æ Í����Ô�Õ Æ Í��j�Ô�Õ Æ Íl�µ�Ô�Õ Æ Íl�j�Ô�Õ Æ Íl���Ô�Õ Æ Íl�j�MÔZÕ Æ Í��j�MÔ�Õ Æ Íl�µ�¸ÔZÕ Æ Íl�j�MÔ�Õ Æ Í��j�MÔ�Õ Æ Íl�j� Ù ×�×�×�×�×�×�×�×�×�××�×�×�×�×�×���R�:���¦�h��±7�Ë���@°�˧@�:Á�@�������7��������2�@�Z§ È�q��Àh¶{¶$� ®a´!¯°;Ý=ÀYÝ�I(�p} �7}0°��>�����R�·�������7��Ï(���R�:���:�h��±7� �*�7�Í�=:a�7��á�µ�¿%À

±@µ�¿aÀ�M��¸� �7�¦§@�*� �·� D �7��N D �:�¢� D �������*�O�¢�¸Ï(È@�@Ï(±´�O�����7}¢]\_^`\�ç Ù�i�l7i�noå�d7ål2e&Ú�å�sKä´^cn dZdak åäÌ7��¡ ���@°�R�V¡ �O�¨�O������È�#°�-�¦�-¡��*�·�*��� �*�R§�}Ó�"�*�������c����� §@�:Á�@�������7���-�.�#���>°��������7¡��2��°��@��� �����·���âöõHk�d����>°��7µr d0ø � î�o;a�k@î�U�4î�m�_>î úYøªb � d0ør � Ë�î�U�4î�m _@î<÷7ïfo>aj¼¶o;a�k@î�U�4î�m�_>î �0�Â�ÖªÄ�Æ Ü Æ � È�Æ �-Ì Æ+ßeÆ Ë ��� Æ�ß�Ùñ ¡��7�·�����7°��@���������*�-���R§¥�:¶¾�f¡�°@������� �·�����Ù�@°���f�Ó�7�*���*�Í�Z� È@����-���������*�R�Òµ

r d0ø � î � o>a�C�o3º £ ºed@íî@î újh�î0a-ïo÷7ï!o ºr � â`d>í�î>î<÷2ï � o>a�C�o º £ m÷���îr a�m�� � o;a`C�o º £ m÷��¾îµú Ð ù �,² o;a �r Ë@÷Um � ² � o;a`C�o º £ º�d>í�î>î �r Ë@÷Um � ² � o;a`C�o º £ º�d>í�î>î�Ó �0�Â�ÖªÄ�Æ+Ý � Ø Æ`Æ+ßeÆ Ë �J� Æ�ß�ÙÂ�ÖªÄ�Æ � Ã`ßeÆ�ßeÆ Ë ��� Æ�ß�Ùñ�È@����-���ò���·�*�������:�������*�������R�O�QIh���-��§2�¸����±-�O�����R���f�����@°�Üo º<Mâ�7���¥���z§@���:�7¡�°��>���R§ �-���-� �7°�*�¦�f���7�_Ih�-����>°��¿o>a�M��-�§�� D �����7��%:¾È�7�����f�Ó�����*¡ È�:����� È@����-�·�������*�R�*}ÊV����-�����·���*�R�â�*�f� �O������È������R§ �������*°����R�Í�*�>���-È�����:�7�:� �����*�R���(�7�â�-��������¡��*�������:¶�°����R���Ù�¸�2��TI D �¸�·�Ë�7�@���È@����-�����7°��*�¦�-���7�:�_�-�§��7�@�����7���xN2���§��-�����R�O±7�R�@M¦}������â�-È�Í���¦�7�:�a���@�@�¦�O¶¨�·���*�2d��f�C½ ���`� ¾#�:�7�@��§�È��§@�:Á���R§�7�*µr ö�î�djdoújâ`d>í�î>î Сù � ú+� � � � Ë@÷�m � ú�h�î0a-ï �R� Ë@÷�m � ú�h�î0a-ï � Ó �`�� � Ê Üe� Ø ��� hAÞ ���R�`Ò Ý � Ø�Æ0Æ �qú�� Ø�Æ0Æ Ô�û Ä ��lsÏ�l�Ó Õlà �-Ð+�Aü Æ × Ë Ð�Ó Õ�à � Ñ �Aü Æ × ËjÑ ×½w����O�¢���=:#������������¡��ò���&���7�����:�ò�·��-� °�f�����*����Ï(¡ �f�¦���@�����&�������7�����R�Í�������:���R§ ��� � ����:�����7�KÈ��§2�¸�R��:#�p} �7}

�:�7����·����:�¦� ����·�Ë�7�*µï��`m _�d�õ´÷Um ý ? ¢ fÿþ ?� �R�O�� ý ® ¢ fÿþ ®

Page 45: Functional Programming Using Calm Light

¹7¹ Ú��X��� Ý.ÞV���=���Vß>ÞV������ÞCä��ÙÜ#ÞV��Ý®,·�cÞ�ßÈ���� �����*�·����� �O����� ���:�7���������:�#§@�R§2�Z�*�f���R§ ����°�-�����*����Ï(¡��-�¦�·�@�¸�����-�V�2�:����O�8±´�O�����R�*µ

b-a�d�_Oô þ ó4õ�d7ô ý ? ¢ f§þ ?� �R�R�� ý ® ¢ f§þ ®D �@���·��¡ �-�¦�·���R�c�����â±-�O�������-�8�������:¶�°����R���Ù�¸�2� þ �-�>�O��������R�7�·� �f�.�����#°�-�����*�����ý���:����:���R�:�������������"Á�¦�����7�������-�"¡ �-�¦�·���R�%:��-�§��-��±2�¸���Ë�:�2�>���·�-�4�����������:�7�����R�Í°�7�§2�������:¶�°����R���h���7�8}�½��7���:¶�-¡�°@���=: D ���*�f��¡ �-�¦�·������������*�ýd�°����*±2���7��h��� §@�:Á���R§¥È>��µr b¦a�d�_Oô�doó�õ�d2ô�â0d@íî@î Ð ù � úH¡ � Ë@÷�m � ú¡� � Ë@÷Um � ú ��Ó¨¢ f ¡r � hî`a´ïoö�¢ f � Ñ ÷�÷ � î-ílaªd�÷7í�� �0����»Ü�� Ø �J� h ��lJÏ�l¢]\_^`\r� Ç id7i b�g8`aäOd7l7^ab@d7g8l2äËi�`ts���^a`cb@d7epg8`cä� ����¡ �O� �2�ON4µT½ U ��-�����#������§2�BAX�*�·�*��:�¨È��*� D �*�*�ò������¡�§��-�¦���:�7��Í������:���7�#�-�§���� ����:�Í�¸�2�+na¾�}#ñ ��Á�:����h���7�@�h:O�����*�#���>�=N�±2�*�����h��¡��¢���-�R} U ���7���h��¡��¢���-�����:�7����¦�f�>�.§��f�¦�â�:�2���������:���2�¦��IÙ����·�¨�2�+�î`a-í0d;M���â�:�2����¦�-�@�¦�*}Ì-��¡��¢���-�����=:����Z���-¡ª�w�4�¸�2�>�h:�����¡ð§��f�¦���:�7���������:�·�7�¦� D �����Ë�f���7��¡��*�@�¦� �O������°�>���Í�R��� ���(����:�����7��O�.���@°�7µr�Ò _@î �`����»Ü È �`�o� É ÌH× Ø�ß ��ô Ë È � É�"� D �*±7�*�^:R�â§��f�¦� �:�7����·����:���7��°�>�·���R�����R�w°�-�������:�@���-��°����7°��*�������R������-�.�"�7�*���*�¦�´�>�(����:�����7�¨§@�@�R�����7�8°��>�����R�·�%:�-�§ �¸�"�������@���*���R���Í�¸�����������§@�*�:���¦�-�§¥�����R���¨§2�BA8�*���*��:�R�*}#½����2¡É������¡ �-�·���*¡ �-�����*�O�.°��-���>�#�-�a±2��� D :4������¡§��-�¦���:�7����·����:���7�"���XN>��� D � ��� È����-�1³�°��aÀ@±h²r³{´=° D �@�«��� �ü���-¡ª�.�(����:�����7� �������7�*���*�¦�O��� ����:�Í�¸�2� D �¸�·���7����(���������*�����@�(�7��¡ �-�Í�¸�2�8}añ ¡ �-�����*¡��-�����*�O�8����R��R�:�����7�Z×�µÌ+ÅÓÎ��7§@¡����¦�#�-�����>±2�*�¦�����(����:�����7��×��G? � ���2¡����¦���¡ �-�7�Q×�I�ÌÔM�� ÎÎ���JÌ�}½¾���7¡��������:¶�-¡�°@���R�#�-È�-±7�=:@�¢� D ���:�7��h��§@�*�â�·��� â õJm�c �:�7����·����:���7�h:@�����*�8µ

r ö�î�djt4õ�mec©_ ú â õ�mec�_ �0�è��J� h ��Ü È �`��� É ÌH× Ølß �oô Ë È � Ét�õJm�c������·�����7�*���*�¦�´�4�(����:�����7���7�������·���-���R§��·�¨�·��� â õJm�c �:�7����·����:���7�h:��-�§�µr ï��`m _�d�õ´÷Um â õ�mec�_�¢ f _ �`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É�Ë È �-ÌH�`� à �Pæ ��� h Ì�� É Ì�Ó`ÓÉ-Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô� × Ø �R��� h ��� Û �HÜ E ×`�eÌ Û �J� h ��ܽ� à � Æ Í Û × È Ü��`� Ç�Æ�Ù���¤ÌH× Ølß � É Ü È �0����ô Ë È � É��� �·���#�¸�@±7�*�¦�Í���(����:�����7���(�7�Ft4õ�m�c4}��h����� ��°�-�·�����O�8�(����:�����7�F:4�Ù�¸��:��°�-�����*�·��Ï(¡ �-�¦�·�@������¡ �O���p�O�¢�©}¢]\_^`\w¢ Ç åm8å�`aål2id7åòb�i�ä-åä��Ëãaå`Îä-^cnoä nKåå�d�kal2g]sa^ab@d7äU ��-���������������¦�-�·��a�f�V���Í��¡É���>°�� D ����� ���h�����-�����*�7��������·� �2�*µr d0ø � îj_7÷��`m�dî-í � ú g ÷U�0m�dî-ío÷7ïÎõ�med �`�Â�ÖªÄ�Æ Ì ÃHÈ �¦� Æ�Ø Ð ßeÆ Ë ��� Æ�ß�Ù

Page 46: Functional Programming Using Calm Light

�=�)(��<ß��*¤*����®, ¹>»

���a�:�7���¦���=:��·�������>°��B_f÷U�`med�î´í � ���c�����7¡��7��°��@��������õJm�d4}c�����#����RÙ�R�:�����7��ïH�0m�_�d4õ-÷�mj¡¥¢ fµg ÷U�`med�î´íj¡���� �²r´=²rµ=¶2�(����:�����7���(���7¡�õJm�d �·�5_7÷U�0m�dî-í � }��p���Z�"���@�� ��á�³ �%ÀY±^²r³�´!°}ñ#���7�����*� D �O���·�ª§@�:Á���������@°�#�����7¡��7��°��@������� õJm�d D �7�@��§�È��7µ

r d0ø � îj_7÷��`m�dî-í � ú Ð g ÷��`med�î-í ² õJm�d Ó �`�Â�ÖªÄ�Æ Ì ÃHÈ �¦� Æ�Ø Ñ ßeÆ Ë ��� Æ�ß�Ù���������>°��R�B_7÷��`med�î-í � �-�§½_7÷��`med�î-í � �-���ª�Z�Í�7¡��7��°��@�������ëõ�m�d4}������*�ë�-�����-�����������-¡����Í�¸¡�� ����¡ �-�§°�����§@��:�â���@°�R�*}_�����:���#°�-�����*�·��Ï(¡ �-�¦�·�@����� §@�>�R�"���7� °��*���(�7��¡ð�-�@��������Ï(�Í�¸¡������R���O}������°�@���h��È@�¢�«�����ò�-�a§@�:Á�@����� �-�·È@�¸�·�¦�-���Ë�:�7¡�°@�¸�:¶ò§��-�¦�����>°��R� °��*��¡����¦�#�������R�7����¡ �-�@��°��@���-�����7� �-���-È�Ï

�����:�7�:� ���>�@�¦�O¶������*�R�V���Z���-¡ª�·I���������7���·���Ba´í�õ�d2ô+�>î�¡ � í����>°����-È�-±7��M¦}_�����R�Í���-È�����¦�2�:���Í�>�@�¦�O¶ �·���*�R���-�������°�°��>���R§��������*°����R�Í�*�>��°����2�7�¦�-¡ �"�-�������-���7��f�7�/Ip�7} �}������-���7��-�2�¨�f���-��������¡��*�������:¶�°����R���Ù�¸�2��@M¦}������R���N2�¸�§&�f� ���-���7��-�7�R� D �@���·�<�-����§@�:Á���R§ ���"���-¡�� �-�����*�O�¢�¸�R§+´áz�%À@±h²!��¶Bµ=°�ß=¯�µhß=À�¿��-�§1���-¡������¨�·�O��§&���ËÈ�������:���HÞöÀ^²rµ=¶Bµ=°ß!¯µ^ß=ÀR}

�Qè76 �Hò³�¶�Ï÷xï<ðû Ç � D ���@°�R� �*�f��È�����@������§@��:�R§¥�¸�����-¡��p}û �a�@°�R��¡ �O��È�Ô¸Sµ=ÁOµ=ÞHÀh²rÀ^ÁY³ %ÀYÝ�È@���Ù�@°��±´�-�Í�Z�fÈ@�¸�R�Ò}��������Í�>�@�¦�O¶��-�_�Ù�@°��°�f�¦�-¡��*���*�:�_���*µR � a´ílaJb¦k f ²�²�äR d0ila´í f� � R d0ila-í f £ C R d`i�a-í f ¥l¼ £

û �a�@°�R�"�*�-��È�/Á�À@±h¯�Ám¿a³!�hÀO}û Ã_����§@��:� ���>°��R�*µ

þ � �f�����*¡ �-�����*�O�8°�����§@��:� �-�a���*±7�*�:�O�8�Ù�@°�R�Ò}þ �������:�7������·��:�����*µ

d`ø � î R � a-í�aJb¦k f R dHm�asbwî f úÐ R º õ2î7ö�� f ² R d`ø � î f � p`p0p�Ó

D ���*��������� R d0ø � î f ��¡ �O� �:�7�@�¦�O�������@°��±-�-�����-È@���R�#�-°�°�R�-�Í�¸������� R � a-ílasb-k f }û Ì7��¡É���>°��R�*µ

þ � �f�����*¡ �-�����*�O�.§2���{R��-���>�#���@���7�Ë�f�V���*±2�*�¦�O�8���>°��R�*}þ �������:�7������·��:�����*µ

d`ø � î R � a-í�aJb¦k f R dHm�asbwî f úR ã�m�Ⱦî0_�d4õ-÷Um f £ ÷2ï R d0ø � î f ¥ � p`p0p

D ���*��������� R d0ø � î f ��¡ �O� �:�7�@�¦�O�������@°��±-�-�����-È@���R�#�-°�°�R�-�Í�¸������� R � a-ílasb-k f }

Page 47: Functional Programming Using Calm Light

¹> Ú��X��� Ý.ÞV���=���Vß>ÞV������ÞCä��ÙÜ#ÞV��Ý®,·�cÞ�ß���öú#ïFõ ëYì<ú ìú]�8xzQ-W7Y®y*x�Ô��(L[¦ À ü °;ÀTµ#®a¯�°G±^²r³�´!°�²rµ:¨�³�°�ß_µ�¿Tµ=Árß=¯�ÞHÀh°G²�µ/á%³{°Gµ=Á@ÛH²rÁ�À@ÀQµ!°GÝ_ÁOÀh²r¯�Á@°G³{°ß_µ ¸Sµ=³{Á�´~®Q¶�³ ¿%²{¿��#²!��Àü Ám¿%²V´=°;Àö±@´=°;²rµ=³�°�¿ µ!¶�¶F´a¸SÀhÁOµ=²r´!Á�¿Q´O®H²!�ÀH²rÁOÀYÀ�«V²!�Àb¿aÀ@±Y´!°GÝ_´=°;ÀH±Y´=°;²rµ=³{°P¿Tµ=¶�¶�³�²{¿Q¶BÀ@µ��hÀ�¿��ú]�8xzQ-W7Y®y*x�Ô��®r¸¦ À ü °;À_µT®%¯°;±h²r³{´=°³b-a � ��ºed@íî@!°Gµ=¶B´Yß!´=¯!¿Ö²r´�²!�À�b¦a � ®%¯°;±h²r³{´=°\´=°Z¶B³ ¿%²{¿1� Á ��À#®a¯�°G±^²r³�´!°b-a � ��º�d@íî@î>¿>��´=¯¶BÝ>²rµ:¨�À_µ�¿Hµ=Árß=¯�ÞöÀ^°G²{¿H²r��´X®a¯�°G±^²r³�´=°�¿ ïàµ=°;ÝBc�«#µ=°GÝ>µ�á%³{°Gµ=Á@Û_²rÁOÀ@À��*"Y²C¿>��´=¯¶BÝ>ÁOÀh²r¯�Á@°Zµ°GÀi�âá�³�°;µ=Á@Û�²rÁOÀYÀ~��´�¿%À�¶BÀ@µ��hÀ�¿_µ=ÁOÀ>²!�À>ÁOÀ%¿%¯¶B²X´O®Jµ@¸=¸<¶�Û�³{°ß�ï�²r´�²!�À�¶BÀYµ��^À%¿_´O®J²!��À>²rÁ�À@À>µ=Árß=¯�ÞHÀh°;²z« µ=°;Ý��´�¿%ÀH´@¸SÀ^ÁOµ=²r´=Ám¿öµ=ÁOÀH²!�À_ÁOÀ%¿%¯�¶�²{¿T´O®Qµ@¸!¸¹¶BÛL³{°ß/²!�À�cH®a¯�°G±^²r³�´=°�²r´>²!�ÀH´@¸PÀhÁOµ=²r´=Ám¿ö´~®Q²!�ÀHµ=Árß=¯�ÞöÀ^°G²&�ú]�8xzQ-W7Y®y*x�Ô���¬ ÀJ±@µ=°Zµó¿Y¿%´h±^³�µ=²rÀE²r´�²!�À�öõHk�dà²rÛm¸SÀ/Ý=À%ü#°G³{²r³�´!°»µ!°à±@µ=°G´!°G³{±Yµ=¶�³�²rÀ^Á�µ!²r´=ÁH³�°Z²!��Àx®%´=¶{¶�´���³�°�ß��µ=Û�� ÀQß!³ò�^Àöµ]®%¯°;±h²r³{´=°Gµ=¶�³�°;²rÀhÁ ¸¹ÁOÀh²rµ=²r³{´=°�²r´>²!�ÀHÝ=µ=²rµ>±@´=°P¿%²rÁ@¯±^²r´=Á�¿Q´~®ö²!�À�ö�õ�k�dZ²rÛm¸SÀ�� À>±��µ=°�ß=À�²!��À�¶B³ ¿%²x±@´=°P¿%²rÁ@¯±^²r´=Á�¿ £ ¥�µ=°GÝ ²�² Á�À�¿`¸PÀY±^²r³ò�^Àh¶BÛ/³�°;²r´ZµZ±@´=°P¿%²rµ=°G² a�µ=°;Ý�µ=°1´@¸SÀ^ÁOµ=²r´=Á �/e¯=¿%ÀYÝ\µ�¿�µü¸¹ÁOÀ%üKÁ ³{Ý=À^°G²r³ ü ÀhÁ_2:«Qµ=°GÝ1µáa¿a²rÁOµ=±^²���³{²!��ÁOÀ%¿e¸SÀ@±h²T²r´\²!�À%¿%À�²r��´1´@¸SÀ^Á�µ!²r´=Á�¿{«_´á%²rµ!³�°;³�°�ßZ²!�ÀZ¶B³ ¿a²³{²rÀhÁOµ=²r´=ÁÔ¿aµ=²r³ ¿{®aÛ�³{°ß��

öõHkªd õ�d�� a £ ¥�úÿaöõHkªd õ�d�� a � Ú ? ²�² �R�O� ²�² Ú ® ²�² £ ¥ £ ú9Ú ? � � �R�R��� � Ú ® � a £ �O�R� £

"Y²{¿��Vµ=ÞH¶FÝ=À ü °;³�²r³{´=°¿��´=¯�¶�Ý�ámÀ��r ö�î�d�íî`_ ö�õ�k�d���õ�d ï�aµúr ïH�0m�_ªd�õ-÷�m £ ¥o¢ f ar � ¡ ²�² ö¨¢ f ï�¡ � ö�õ�k�d���õ�d ï�a ö £-�0�Å ��Ü�� F �`� � Ê X'×�� É X Ý � É X Ý Ò�� É X Ý � É XE× Å �HÜe��� É X Ý �oô Ë È � É� ¿�µ=°�À�ÁLµ=Þ]¸¹¶BÀ�«·²!�Àbµ@¸=¸¹¶B³{±Yµ!²r³�´=°�´O®�õ�d�fö�õHkªd>²r´/²!�À�®%¯°;±h²r³{´=°Gµ!¶G±@´=Þ]¸S´�¿%³�²r³{´=°>µ=°;Ý_²r´_³{²{¿�°GÀ^¯²rÁOµ=¶<À^¶�À^ÞHÀh°G²/e²!�ÀH³�Ý=À^°G²r³{²rÛ#®%¯°;±h²r³{´=°:2:«V±Y´!Þx¸<¯²rÀ�¿Q²!�À_±@´=Þ]¸S´�¿%³�²r³{´=°�´O®ö¶B³ ¿a²{¿T´O®�®%¯°;±h²r³{´=°P¿ª/e²rÁYÛE³�²�� 2��¦ À%ü#°GÀ�«·¯!¿a³{°ß/²!�Àb¿%µ=ÞHÀHÞöÀ^²!�´hÝ�« µ>±@µ=°G´=°;³�±@µ=¶;³�²rÀ^Á�µ!²r´=ÁQ´��^ÀhÁHá%³{°Gµ=Á@Û_²rÁOÀYÀ�¿��

Page 48: Functional Programming Using Calm Light

  (90>, ¢�¢

A ¤«ª ¥ ± 8C¨��FE J"§ G 7 8]Å 7ÉJ

¹�¿

Page 49: Functional Programming Using Calm Light
Page 50: Functional Programming Using Calm Light

& ')(+*-,/.10 �

6 E"¤�� ¥aG 5 ¤ E"¤ J0E94Ò6 7éE96 4KG�J

������§@�:Á�@�¸�Í�¸�2�ò�-��������¡ø�7�#°�����§@��:�â���@°��¡��R��È��¨�-�����2�¦�-���R§¥��� �O�¢��� D °��@�z�Ù�Z�*�´�xIÙ§@�R��������:�Í�¸±2��Ma��°4§��-�·��7�<§��-�:� �Í������:�������R�ª�-�â����-�����@°�7}<���@��������������¡ �O���&�(�R�-���������f�â�����Z³{Þx¸PÀhÁOµ=²r³!�hÀE¸¹ÁO´Yß!ÁOµ=ÞHÞö³{°ß��Í�Ù�2���7}U ������������±-�O�����R�����@����¡��*¡��7�����¸���*�-�����7����Z�"�����#�(���§��-¡��*�@�¦�O�8¡��R�·��-�@����¡É�-����¡�°�*�:�-����±7�����-���2��-�7�R� ����·��7�8Ã_�2���*�O�p}.������������°����-���7��-�7�=: D �@�¢����¡��>�������#�(����:�����7��O�`:7�O����� °��·�´±2��§@�R�8�·����§��-���7�*�·�7����(����:�����7���í � ö¸a0_`a�-�§�í � ö�a`_�� ����°��@�z�h���*�O�¢����¡���§2�¢� �ª�«�����:�*}_�Ë���:�-È@���â��������:�·�����R�a�-�·���·��?7�@�����R§����#��¡�°@���*¡��*�@��¡��-�>���;ï �·���*�>��O���7�7�Í�¸�·��¡ �*}a�����*���-�����´�Z�Í��±7�*�����:�7�@±7�*�@���*�>�#�������*°����R���*�@�#�������:�������*�@�â���¦�f���â�f�V���Í�¦�-���#¡ �7�·�@�����7}

� èYé �Ãì<ú#ï+�08_úK÷>ôöúF8 �ÈòQíF÷,7/øYú�8_÷ í�÷Ïì;íFï�òöõ�í�òHïFú#ìñ�������¡�� D � D �-�>���·� §@�:Á���Ë�����@°� � î-ílkf÷Umþ�7� ���0������°����*±2���7����·��-°����*�R}������*�F:��������*�*¡ ����-�����¦�´������O�¢��� D ��°�*�¦�Í�7�Ë��������-���2���@���@[R���*���-�7�=:!RÙ�2ÈË�-�§��������·���Ù���·��-� °�*�:���7� �¢�¸±2�R�"�¸�F:�È����H°G´=²w�@�Z�a[R���*�â��f¡��7}U �â�*�f�ª§@�����@���_È@���-�����7�¦�-�Í�¸�����Í�7¡��c���-È�:���V��� ���������@°�â§@�:Á�@�������7���-� � î-ílkf÷Um�È>�������Kb���d�a�ºö�îxN7�*� D �7�¦§�µr d0ø � î � î´ílk7÷�moúr Ð�Ñ asbwî ² k�d@í4õ�mec � b���dla�ºö�î Ò cî ² õJm�d �r b¸�edla�º¾ö¾îHÉf÷Uº ² k�d>í�õ�mec � b���d�a�ºö�î g õ�d`ø ² k�d>í�õ�mec Ó �`�Â�ÖªÄ�Æ�ÄáÆ�Ø Ü Ã � ß�Æ Ë ��� ÆHß�ÙU ���*�-� È��@�¢�Z§ ±-�O�����R� �-�_���>°�� � î-ílkf÷Um ��� ������±7�*�������-¡�� D �O� �7��È�:�(�7���7µr ö�î�dPÈ�î`a�m¥úr Ð�Ñ asbwî�ú���É>î`a�m�� �ªÒ cî�ú � � � Éf÷Uº¸ú+�iË�dH�¡�¾î�med�� � g õ�d`øeú+�ZÌla-í4õHk¡�iÓ �0�Í Æ ×��ó� ÄáÆ�Ø Ü Ã �Î�MÔZÕ�× E-Æ ��lZÎ Æ ×��Àl�Ó¿� h�Æ � Ñ �¦ÓqÎ Ã`Ý ��l Õ � Èeß�Æ �R��lUÓqÖ`�0� Ö ��l�Ï × Ø �HÜ�lØ×Êc������� D :�������±´�O�����$È�î`a�m�¡ �O�ËÈ���°��>���h���*�O�¢���ë¡��z§2�¢Á�R§þ�¸� ������Á�:��§�����°�R�·�¢Á�R§ ����È�Bb���dla�ºö�î����&�����§@�:Á�@�������7�\IÙ�-�§�´=°;¶BÛ ��� �����R���#Á�:��§��@M¦}

U � �*�-� ¡��z§2�¢�(�0������Á�:��§ º õ2îfö��ò�f� �-� �:¶z°��·�R���h���7� R î�¡ � í � f �����7�¦§@�*�����ë�7���Ù�¸�2�0��� �·���˱´�´�¸�����-�R  � í � f È>����h�������������(�-�¢��� D �¸�����:�7���������:�OµR  � í � f p º õ2î7ö�� R ¢ R î�¡ � í � f½��2� �:¶¾�f¡�°@���=Ü@�¢� D � D �-�@�,È�î`a�m ����È��R�:�7¡����2�����7�R�-� �-��§@�*�h: D � D �7�@��§ D �������7µr È�î`a�m2p Ò c�î R ¢AȾî0a�m p Ò cî �Î�R�0���� È �R�`��� Ê Ò

¹>Ä

Page 51: Functional Programming Using Calm Light

»7� Ú����X��Ý�ÞV���%�+*Õ�"ÝP�[�#å8Þ ���#ÝP�Îß8Ý��ö��Ú#Ý���� Þ�ßÇ"� D :>�·����±´�O�����§È�î`a�m ��7�"È�*�*�Ë¡��z§2�¢Á�R§����@���µr È�î`a�m �`���� Ä�Æ�Ø Ü Ã �Î�MÔ�Õ × E-Æ ��lZÎ Æ ×��Àl�Ó¿� h�Æ � Ñ ûRÓÜÎ Ã`Ý �Æl Õ � È�ß�Æ �¦��l�Ó5Ö`�`� Ö ��l�Ï × Ø ��Ü�lØ×U �#¡ �O�����������¨�·��-���7������� Ñ asbwî��-�`Ⱦî0a�m�:@È���� D � D �7�¦�¼������*�:�*�R§�µc�����#�Ù�@°�R�·���%N7�*� D �«�¢�.���2���´�«��� D ������§@������f�R}r È�î`a�m2p Ñ aJb8î R ¢m�ZÌla��ö+� �`�ÂHÃ>Ä-ŸÆHÇ�Æ�Å ��� Ä-È ���É Í Æ ×J� Ù Õ × E-Æ ô0��lQÏ�× È`Å lUÓ`ÓÉ-Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0Ô`Ô`Ô0Ô`Ô0ÔÂsÛ-Æ Å × Ý�Æ�Å Õ × E-Æ �HÜu� à � E�È �`× ÝHÅ�Æ�Ù�p���Z�"�-�a�:�7���¦����°��>���h��È@��������������Í������:�7���������:�:�_���¥� ����:�����7��#�7�c���8µr ö�î�djcî�d��7÷@ö��¾î´í � Ð�Ò c�îUúUm � ��Ó¨a0k � £ ú � p Ò cî R ¢um �¥�R�0�h�Æ � FeÃHÅ�ßeÆ�Ø � Ä�Æ�Ø Ü Ã � � É È �R�`�j�oô Ë È � É�h� ����f�_�:¶¾�-¡�°@�¸�=: D � ��-¡��R§ m������ �:���·���*�>� Ò c�îâ�f�X�·���â�-���7��¡��*�>�h:-È���� D �â�O��������-¡��R§ � �����#�-���7��¡��*�@�R}���@�����Z�"�-�àµ=¶B³{µ�¿a°�-�·���*���8µ����â���O±7�R�����������È�2�����*�â�f� D �����������µr ö�î�djcî�d��7÷@ö��¾î´í � úr b¦a�d�_Oô � ó�õ�d2ô Ð�Ò c�îUúUm�Ój¢ f � p Ò cî R ¢um �¥���`�h�Æ � FeÃHÅ�ßeÆ�Ø � Ä�Æ�Ø Ü Ã � � É È �R�`�j�oô Ë È � ÉÇ"�7�����:� �·��-�����&����� � D ��°����*±2���7����:¶z°����R�·�h���7��%: D � §2��§ ���7�¨��°��R�·�¢� �0�O�¢��Á�:�Z§����-� ���������R�:�7�:§ � } � �����*��:¶�-¡�°@���R� D �7�@��§¥È�7µr ö�î�dub4÷Hiî � m�î-ó��`_zõ�d`ø�ú � p g õ�d`ø R ¢½m4î-ó�0_�õ�d`ør a�m��¨_Rô�a�m�c�î���È>÷Uº � Èjú � p=É7÷�º R ¢VÈ �0�E¦Ã0Ç�Æ � ÄáÆ�Ø Ü Ã � � É Ü�� Ø ��� h � É È �¦�0�¨��ô Ë È � ÉÌ Û ×�� h�Æ�F Í Ã0Ý � Ä�Æ�Ø Ü Ã � � É Üe� Ø ��� h � É È �¦�`���oô Ë È � Ér _Rô�a�m�c�î���È>÷Uº»È¾î`a�mÆ����î0a`_Rô�î-íÊ� � b�÷�i�îAÈ�î`a�mÆ� g a�m0m�î0k�� �r cî�d��7÷@ö��¾î´íHÈ�î`a�m � Ⱦî`a�m �0���� Ä�Æ�Ø Ü Ã �Î�MÔ�Õ × E-Æ ��lZÎ Æ ×��Àl�Ó¿� h�Æ � Ñ SRÓÜÎ Ã`Ý �Æl Â`Æ ×�Ì Û-Æ�Ø l�Ó5Ö`�`� Ö ��lZÖ0×��`� Æ Ü`l=×U �c����R§������ ½ � ¾��·��-�¦�7�:���*�wÈ�*� D �*�*������� §2�BA8�*���*�>�_�·��-���7�R� D �V��¡�°�>�Í�R§��·� È�î`a�mX}����@���w�Z���·���x¿%À>=^¯À^°G±h³{°ß�-�.�*±-�O����-�����7��*µV��� °�*�·¡����¦�������*±´�´�¸��f��������*�:�R���h��±7�:���Ë���*±2�*�¦�O�8�:¶z°��·�R���h���7��%:§2�����*�f�¦§2����� �������·�R���@��� �-�.�R�7�·�Ip�:¶�:�*°�������� ���7�Í�a�7����M¦}c���@�����:�2���������:�cÈ�R�:�7¡��R������:� �@�����������â°��·�R���*��:�â�f�V¿a³{Ý=À���À! XÀY±^²{¿Ó����·� �2�a°��@���h���*�O�¡���§2�¢Á4�*�-�����7����-�§ ����°����%[O�7����°����h:a�Ù�¸��:� D � D �-�>�������:¶z°@�¢���·������� ��°��R�·�¢� �&�������7�¦§@�*����� D �@�����0�����*�&�-���°�*�Í� �7�·¡��R§�}

� èOç ���öú#"%$'&)íPð9Z>ú������íî-ï ���@°� �Z�"������°����R§@�:Á���R§ �Ù�@°���-�_¡¨���:�-È@�������§2�����R�:�����7�ë�:�:�¢���*}x�h� ���"°����R���*�@�����������_���f¡��.���z�Í���*¡�(�7�a���R�2���7��_�f�w�:�2¡�°�-����È@�¢�¢�¸��� D �������R�-���¢���*��±2�*�¦�h���7��c�-�����-¡��p}_�����#íî-ï����>°��â�:�7�@��§�È��§@�:Á���R§��7���(�-�¢��� D �I D � §@�7�¦�¼��������·��� í�î´ï���-¡������ë�����ª� �-�¢��� D �����ë§@�:Á�@�������7�0È�R�*�f���� D � D �-�@����� °����R���*��±7������� �2�����-����O�í�î´ï����>°���M¦µ

Page 52: Functional Programming Using Calm Light

�%�)(��¡�X�x�x��,cß »�~

r d0ø � î�o;a<í�î´ï�î´í�î�m _@î ú Ð b¸�edla�ºö¾î)(�î-ï ² o;a�Ó �0�Â�ÖªÄ�Æ½Ø Æ Ë Æ�Ø�Æ ��Ì Æ+ß�Æ Ë ��� ÆHßáÙ³�¶�-¡�°@�����-�ÓÈ��@�¢��§2�����Ë��±´�´�¸�����-���Ù�@°��íî-ï�µr ö�î�d�íoú�í�î´ï � ���`��£-�`�Ø �����R� Ø�Æ Ë � Ø Æ Ë �������í�î´ï���§@�*�>�Í�«Á�*�#��� �Í�>�@�¦�7�:�����*�O�¢����°����R���*�@���R§ �7� ������¡�§��-�¦���:�7������·��:���7�R}_������§@�:Á�@�������7���-�_í �Í���7�@��§È���·�R�7§ë�2�J½·���*��íòÈ�Ë� ���:�(�*���*��:������������±´�O�������-� ���0� ¾�}������ ±-�O�������-�âí��������7���@�����òÈ������ ¡��*¡��2������z�*�f�����7� D ���@�����:�7�@���*�>�:� �*�-��È���-±7�*� D �������·�*�8}U ���:�7����@��� �ª���:� �*�·�*��:�HI(�p} �7}_���R�7§ ���¦��¡��*¡��2���������*�-�����7�<M D �¸�·�Ë�����J½+�O¾ò���@¡�È�-�pµr �pí �Î�R�0��������R����ûU ��¡��z§2�¢�(��±´�O�����R�"�-�_�Ù�@°��í�î-ï D �������·��� ² ú����@Á�¶Ë�(����:�����7�8µ

r í ² út�hí � �R�0���� È �R�`��� Ê Òr í �`��������R� Ø�Æ Ë � Ø Æ Ë ûÌ7�7¡���°��Í�¸¡ª�¸�Í�¸±2�R���-�����-���:�7�����R§������·����íî-ï ���@°�=:@�(�7���:¶�-¡�°@���7µr õJm�_´í �`��������R� Ø�Æ Ë � É È �R�`�j�oô Ë È � Ér ��î`_´í �`��������R� Ø�Æ Ë � É È �R�`�j�oô Ë È � ÉD �@���·������:���*¡��*�@�¦�ÔIp���R��°8}a§@�R�:�·�*¡��*�>�:�@Ma���:�(�*���*��:�R�"�7�����>���*�2�*�¦�*}

� è76 * ïFïF÷�ðHìñ#���¦�O�z���-����¡���§2�«Á4�fÈ@�¸��§��-�¦� ��������:�����·�R�*} �����*�òÈ�:���7���ò�·� �·��� °�-�:�-¡��*���*��� �*�R§ ���>°��Ao;a i�î0_�d4} ñ#���¦�O��:¶�°����R���h���7��#�-����È��¦�2��N7�*�·�R§�È>� £ � �-�§ � ¥¹:��-�§��:���*¡��*�>�:�â�-�·�����*°�-�¦�-�·�R§�È>�����*¡����:�-���7��*µr ö�î�d�aµú £ � � n � � n � �0n � ¥ �0�× �����R� Ç�Æ Ì��j�¶µ,+>Ð B Ó Ñ B Ó½� B + ·�����#���*���7��� �-�a�-�Ë�-���¦�O�����"���*���������R§�È@� D �����������#�(����:�����7��iî`_ªd�7ö�î�mec`d2ôXµr iî`_ªd�7ö�î�mec`d2ôoa �0��������R�����

Page 53: Functional Programming Using Calm Light

»7| Ú����X��Ý�ÞV���%�+*Õ�"ÝP�[�#å8Þ ���#ÝP�Îß8Ý��ö��Ú#Ý���� Þ�ßq`\z|]\&a ��b�b�å�ä´ä-eh`am�i�l7l7i�dÎåjpå�noå�`wdfäñ��*�:�R�����R�"�����-���¦�O���:���*¡��*�@�¦�#�*�-�ËÈ���§@�7������h�����������#�(�-�¢�¸� D ���������@�>�¦�´¶Xµr aáp � n £-�0��������R����Ð B�7�h:2¡��7���"�7�*���*�¦�O�¢���4µK¯ ? p � ¯ / £ : D ���*���ý¯ ? �*±-�O����-���R�c���¨�f� �-�·�¦�O�¨�-�§ ¯ / �·�¨�-�����@���*�7�*�R}Vñ �����*����f����±7�:���=:�������(����:�����7�°i�î0_�d�zõ�dîJb����"°����-±7��§@�R§�µr iî`_ªd��õ�d�îsb �`����HX'× ÇeÆ ÌH��� É ���R��� É X'×���ô Ë È � É�����#Á�¦�Í� �:���*¡��*�>�"�-�V�f� �-�·�¦�O����� �-�c���§@�:¶þ��}�ñ#���¦�O�z���-�·�â����:�(�@�.È��R�*�-����¨�2�*�:�R���h����� �f���:�¸�*¡��*�>�����#§@�7������ �:�7��Í�¦�-�@���Í�¸¡��7µa�-�Ë�-���:�R�����#�¨�:�2�>�����7���2��c� �:�-�7¡��*�@���-�.¡��*¡��2���=: D �@�¢���¨�7�*�:�R�·�h�������¢����� �:���*¡��*�@�¦�"�¦��N7�R��¢�����R�-�â�Í�¸¡��7}q`\z|]\r^ - g]sae!��daeh`am<i�l7l2i�d å�jpånKå`wdfä� �z§2�¢Á4�*�-�Í�¸�2�Ë�-�a�-�Ë�-���:�R���:�¸�*¡��*�>�"���â§@�7��� D �¸�·�Ë�������:�7��Í������:�Rµ

¯ ? p � ¯ / £éR ¢³¯ 9D ���*���±¯ 9 ��2�a�·�������-¡��#���>°����7�c�������:���*¡��*�>�:���-�.�������-���:�R� ¯ ? }a�������:¶�°����R���h���7�°¯ / �:�7¡�°������R�c�����#���§@�:¶�-� D �@�Z�·�Ë�·����¡��z§2�¢Á4�*�-�Í�¸�2� D �¢�¢�Ó���*�:���R}ñ��c�(�7� �7�*�:�R���h�����G:����(����:�����7���(�7��¡���§2�¢� �2�����Ë�-���¦�O���:���*¡��*�@�¦���Z�"�O������°����-±2�Z§@�R§�µr iî`_ªd�`a0k`kzõ�cHm �`����HX'× ÇeÆ ÌH��� É ���R��� É X'×o� É È �R�`�j�oô Ë È � ɽ��2� �:¶¾�f¡�°@���7µr aáp � n £YR ¢ � a�p � n £ ¢ ��£-�`���� È �R�`��� Ê Òr a �`��������R� Ç�Æ Ì��j�¶µ,+=T�Ó Ñ B Ó½� B + ·r iî`_ªd�`a0k`kzõ�cHmoaµn �`� iî`_ªd��õ�d�îsb©aµn £ ¢ ��£-�0���� È �R�`��� Ê Òr a �`��������R� Ç�Æ Ì��j�¶µ,+�?¦Ó Ñ B Ó½� B + ·

� è3ð �¡îbî[Z_ì��/.1032541$-÷XôB86&879"�p¡�°�*�¦�-�Í�¸±2��°����7�7�:�-¡�¡�������I(�p} �7}���h�����ò�h��§@�*Ï(�@A8�R�:�¦���Í����ë�2�#°��>���h���*�O��¡��z§2�¢Á4�*�-�����7�&�-� §��-�¦�������·��:�������R�@M���¦�2§2�¸�Í�¸�2��O�¢�¸�&¡ ��N2�R��������-�â����?2���*��:�R���-�§ �:¶z°@�¢���·�������>�7°�Ò}òÌ7��?2���*��·�����ë�*±-�O����-�����7� �¸�"���-¡��������7�@���Z�§@�7��� È@����h�����������#���*¡����:�-���7�Z½ � ¾¾}.³_±-�O����-���������:¶z°��·�R���h���7�5¯ ? :>§2�����*�-�¦§2����������� ±-�O�����â�·�*���������R§<:>�f�§������*��*±´�´�¸��f��������¯ / �Z� D �������·�*�8µ

Page 54: Functional Programming Using Calm Light

�%�$î���åcÛ�Û#��ß;:���lãªh�ø>�âÜX� º ù ( »7¤

¯ ? � ¯ /�(��¯ ? �-�§³¯ / °�*�Í� �7�·¡ �Ù�Z§@�*Ï(�@A8�R�:�¦��:>�·�@�Z���:�7��Í������:���*��������R�c����-�c�����*� D �¢�¢�8È�#°�*���(�7��¡��R§�������������°�R�·�¢Á�R§�7�¦§@�*�#I©� ���2¡ �¸�:�(�a�·�������7�>��M¦}F�h� �7�:§@�*�_�����*¡�°���7�h� �*������?2���*�>�����O�4�Ù�Z§@�*Ï(�@A8�R�:�¦��:7������·�R�7§��-����h�����¨°�f���*�>�·���R���R��-���2���§�����?7���*��:�R��:�7�����*�f�Ë�����º�îªc�õ�m¥�-�§ î�m��G:�2�_���8µr ö�î�dj¡oú�í�î´ï � õ�mr º4î�c�õJmr ¡ ² ú��3¡ �Î���r ¡ ² ú��3¡©¼��3¡r î�m�� �0���� È �R�`��� Ê Ò�����>N7�*� D �7�¦§���º�îªc�õJm<�-�§ î�m¡� �-������?2�@�¸±-�O���*�>���·� �2°�*�@����� �f�§0�·�¸�@�h�����ë°�-�·�*�>�����R�Í�R�*}<������°����2�7�¦�-¡�-È��´±2���:�7�@��§�È� D ���������*�Ë�2�*µr ö�î�dj¡oú�í�î´ï � õ�mr � ¡ ² ú!� ¡ �­��� ¡ ² ú!� ¡¥¼¶�3¡ £¦�`���� È �R�`��� Ê Ò³Ó¶z°@�¢���·�������>�2°�¨�f��� ���2�¨�����Í�Z�:�Í�¸� ���R�:�R�����-��� ¸SÀhÁÖ¿aÀOµ¨� ���R�:���¦�Ù�¸±2���(����:�����7�0�:�7�@��§&°�*���(�7��¡º����� �·�-¡��

D �7��N�}.�"� D �*±2�*�h:-����������-�7���-�8�-���:¶z°@�¢���·�������>�2°����z�*�O�¢�����*¡�°���2�h� �*�R���#¡��7���c��¡�°�*�¦�f����±7�â�����2�¸�7}_� D �"���>�7°��-����°��·�´±2��§@�R§�µû ��³�¶BÀOµ.ó2ô8õ´ö¾î9¯ ? �@÷³¯ / �@÷�m�î��*±-�O����-���R�2¯ ? D �@���·�Ë¡�����c���*�������Ë��È�@�-���R�-� �:¶z°����R�·�h���7�F:@�¢�A¯ ? �·�*�������d>íH�4îP:7�·���*��¯ / I D �@�Z�·���Z�c�����´�«����������?7���*��:��MV�Z�c�*±-�O����-���R§<:������*��¯ ? ���c�*±´�O����-���R§��f�>�O��� �f�§ �����7����>���¢�ᯠ? ���*���������ï�a7ö�k@î�}û ®a´=Á:µ_� D ��±´�-�����-�@�¦�%:2����:���R�7�Ù�¸���Ë�f�§�§@�R�:���R�7�h�����

þ ïz÷2í5²`ú0¯ ? dz÷ ¯ / �@÷5¯ 9 �>÷Um�îþ ïz÷2í5²`ú0¯ ? �>÷2ó�m�d�÷³¯ / �@÷5¯ 9 �>÷Um�î

D ���*���[² �Z���-����§@�*�@���¢Á�*�R}�³Ó¶z°��·�R���h���7���¯ ? �-�§³¯ / �-���"������È�7���§��c�-�8���������@�7°8µ������*��¡�����_�*±´�O����-�·����&���>���*�2�*�¦�*} �p�K�����ë�*�7��� �-�¨�����þ�¸��:�·�R�7�h����� �¸�@�7°F:#�����ò�:¶�°����R���Ù�¸�2�� ¯ ? �-�§�¯ / �-�����*±´�O����-�·�R§°����z§@��·������±´�O�����R� Æ ? �-�§ Æ / µX�«� Æ ? ���c���������:�������2���R�-���*������-� Æ / :-�����*�����7���@�����#���_§@�7���7}C� �����*� D �����=:¯ 9 �Z���*±´�O����-���R§ I Æ / Ä Æ ? M É ~#����¡��R�%: D �������·����±´�-�����-È@���B²�È�7���§��Í��*�:�R���h��±7�:���Ë��� Æ ? : Æ ? É ~=:��R�O��:Æ / }������È�*��O±2�¸�2� �-�_������§@�R�:���R�7�h���������>�7°����#�h��¡��¢���-�RµV�«� Æ ? ���â���·�����:����� ��¡��O�¢�¸�*�#����-� Æ / :@�����*�����7�·�@�¸����Z��§@�7���7}�� �����*� D �Z�Í�=:�¯ 9 �����*±-�O����-���R§�I Æ ? Ä Æ / M É ~�����¡��R� D ����� ² È��7���§&��� �Í��*�:�R���h��±7��±´�´�¸���R�§@�R�:���R�7�h������� ���2¡ Æ ? ��� Æ / }

Êc�7�������@�7°� �·�*��������������±-�O����� � £ �-�_���>°����0m8õ�d4}r ïz÷2íÎõªú`njd�÷ � i�î0_�d��7ö¾î�m�c0d2ô¥a £ ¢ � �>÷¨a�p � õ £YR ¢ õA�@÷�m�î �0���� È �R�`��� Ê Òr a �`��������R� Ç�Æ Ì��j�¶µ,+ B ÓuÐ�Ó Ñ + ·

Page 55: Functional Programming Using Calm Light

»-¹ Ú����X��Ý�ÞV���%�+*Õ�"ÝP�[�#å8Þ ���#ÝP�Îß8Ý��ö��Ú#Ý���� Þ�ß� è7õ �àîTø�ðù�ÓîXï¦Z �_ëYì-� ÷Xô98 � òQíF÷,7¡øYú�8_÷#íF÷Ïì;í�ï·òöõ�í�òöïFú#ì�����*�����-��� ���2¡������R���·�����:�����7����:�7��:�*���@������°�-���@¡��7��°��@����¡£�f�§�¡����¦�-È@��� §��f�¦����������:�·�����R�*}�� ��� �*�f�����7��*��·���>����°�-���@¡��7��°��@�����7ÈPR��R�:�¦�c����h��§@��¡����¦�-È@����§��-�¦���Í������:�������R�Ò}r ö�î�d�íoú�í�î´ï £ ¥ �`�Ø �HX F × Å �HÜe� Ø�Æ Ë � Ø�Æ Ë µ ·���������R�7���7�����"����-� �2��:�����������@°���f�Óí<: � o>a<ö�õ�k�d £ í�î´ï<:���7�"È�*�*���:�7¡�°������R§<:¾��� �*�f�����7� È������f���7�R§�}Êc��� ������±´�O�������f�Óí��*�-��È������f���7�R§�µ D ���:�7�@��§ D �Í�¸�·�7µí ² ú £s�R�E� ¥ �0��-�§���� D :@í D �7�@��§�È���ª���:� �*�·�*��:���7� �¨�«�����"�-�.�@��¡¨È��*�¦� D �@�¢�������¦���Ù�@°� D �7�@��§����Í�«�¢�.È�� � o;a ö�õ�k�d £ í�î-ï¹:�O�¢��� D ����� ����·� D �������7µí ² ú+d@í���î ²�² �pí �0�¡ ��N2������í������:�(�*���*��:���7� £ d@í���î �þ�R� � ¥¹: D �@���·�����â�f���«�¢���*�>�O�x���-¡��8�7ÈPR��R�:�R}���>��V�����T���-¡ª�4���>°��R�����R�mN7�*�V�¸¡�°�>���R������-�_¡���§2�¢Á4�-È@����§��-�¦���Í������:�������R�c�-°�°�R�f�������ª�f�a���7°@���*±7�:�8¡�����°�@�����R����¡��7���7¡��7�·°��@�Z� ���>°��R�XI(�p} �7}_���7�"°�-���@¡��7��°��@���^M¦}

���öú#ïFõ ëYì<ú ìú]�8xzQ-W7Y®y*x Ø��(L�� ³ò�^ÀTµ_ÞH¯²rµ�á%¶BÀQÝ=µ!²rµJ²rÛm¸SÀTÝ!À%ü °;³�°�ßQ²!��À=<�³ ¿e¸�²rÛ�¸PÀQ´O®T¶B³ ¿%²{¿xµ=°GÝEÝ=À%ü#°GÀT²!�À�®%´=¯�Á�®a¯�°G±^²r³�´=°�¿_`a´í«�_��2í«8í � ö�a`_`a¡µ=°;Ý�í � ö�a`_��+�ú]�8xzQ-W7Y®y*x Ø��®r¸¦ À ü °;Àxµ kªdlasb � ®%¯�°G±h²r³{´=°¡«�´O®x²rÛm¸SÀA�0m8õ�d�¢ f õ�med«F²!�µ=²�Á�À^²r¯Á@°P¿xµC®%Á�À�¿>�Q³{°G²rÀOß=À^Á#ÀYµ=±��ö²r³{ÞHÀ³{²V³ ¿Q±Yµ=¶{¶BÀYÝ�� Á ��µ=²V³ ¿�«V²!��ÀFü Ám¿a²�±@µ=¶{¶FÁOÀh²r¯�ÁY°�¿ÿ�?>V²!�ÀH¿%À@±Y´=°;Ý_±@µ=¶�¶<ÁOÀh²r¯�Á@°P¿��@>#µ=°GÝE¿a´/´=°+�ú]�8xzQ-W7Y®y*x Ø���¬#¦ À ü °;À»µq��8õH_ªt�0k7÷2í0d�®%¯°;±h²r³{´=°9´=°Òµ=Á@ÁOµ=Û^¿»´O®�Ax´hµ=²r³{°ß»¸S´=³{°G²H°G¯�Þ_á�À^Á�¿b®a´!¶�¶B´���³{°ß1²!��À?CBDFEmN,GIHKJML\µ=¶�ß=´=Á@³�²!��Þ�N��:�IO1��"Y°�®a´=Á@ÞHµ=²r³{´=° µ�á�´=¯�²/²!�À ?CBDPE�N,GIHKJQLàµ=¶�ß=´!ÁY³{²!�Þ ±@µ=° ámÀE®a´=¯�°GÝ"³{°RNy���MO{«X®a´=ÁÀJÁ�µ=Þ]¸¹¶BÀ��

Page 56: Functional Programming Using Calm Light

S T#UWVYX Z\[ ]

^ _a`cb�d e%f g hjiWkml `ck�l d n oabpoqerkmf _ts

u�v ` u d oqerk�f _

w�x GIHKy{z�G|D}LMB;~@LID}H x G��,D}L8DFG x z�E�z�GMGM~�JM��LMH�~@��HKJML3E�HCy{�,B,L�~@LID}H x G�� w!�1� zj~@JQz=LMJM�CD x,� LMH�E�HCy{�,B,LMz�LQ�,z=D x LQz � z�J� D}�KDPG|D}H x H � ~ x D x LQz � z�J��a���q���3LQ�,z xq� z�y�B;GIL�z�GQE�~@�;z � JMHKy�LQ�;~@L�z�y��;~@JMJ�~KGQG|D x,� G|D}LMB;~@LID}H xq� D�LQ�,HKB,LJMz�LMB,J x D x,� ~ x ��JQz�GIB�}L��

� x HKLM�,z�J=z��;~@y{��}z H � LQ�,z{B;GM~ � z�H � GIB;EQ��~ x z�GME�~@�;z�y{z�EM�;~ x DFG�y�~��,�;z�~@J�G � �,z x�� z � ~ x L=LQH � z�� x zLM�,z��¡ �¢K£ � B x E�LID}H x H x �¤DPGIL�G�¥¦§  @¨©�ª ¢�£W«R¬C­�ª®@¨ª¯@°��¦ ±%²�² h�³ f ±¦ ´aµ|¶ ³ f)· ¢,¯K¸ º¹�»,¢,¯ § ­ ·  q¼��¡ �¢K£ ²  �½¿¾À¨Á § ¯K¸@¨Â¼CÃ�Ä�ÄÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ Ñ Ï�Ï|Ò�Ó Ð©ÑÐ ÔÕCÖØ×�ÌÂË�ÌÙ8ÏÚÎ�Û�É©ÊÖØ×�Ë�ÖÜCÈ¿ÉÝÒ�Þ,Î�Ö@×�ÎKÞqßË�Î�ÛàÖ�ÌàÍ�ÇÇáÉ?×�âKÖCÞ¿ÉãÈ;ÉKÎÎ,É�×�Ë�̺Î�Û�ËCÞäÇåÖÎ�Î,É�×�Ì3æÛ9ÉKÖç�ÏqèMÖ/ÈÀËCÞÀÎqÓ Ð èQÖêé�ë�ì¿Í�Ì Ðí zîE�~ x,x HKL � D��Czï~8JMz � B�P~@J'�@~?�}B,zîLMH�LM�,z%z��À�,JQz�GMG|D}H x �¡ �¢K£ µ�¶ � D}LM�,HKB,Lå�}H�G|D x,� LM�,z1��H@�}��y{HCJM�,�DPGIyàH � �ª ¢K£;�í z=LM�B;GîEQ�,H�HGIz=LMH{z�GME�~��;zK¥ � z{ðIñKòFó�ô�ñKõöô�÷@ø�ô�ùªú!òüûKõ;�

ý�þ�ÿ ������������ ����� x z�����z�������� x ���î~��%~@y��9�@~?���,z�� � �M�,z=��� �¤���"!#� x �I����z�  ± �Â��Kz%$Q�&�'�}y(�¤�P~)$*�"�{~+�,�,y-�I����zK� � x z�����z����,�.� x ¥

/ �;~0�î~�õ�ñ01�ô*2 »¿¢À¯ § ­ ·  3� x �0��$îz��;~@y{��}z)4��/ ~ x � ���@� � �65�z%$7�+�0$6� x z=�@~?���,z+2 ¼ �¡ �¢K£ ²   ½¿¾,¨�Á § ¯K¸@¨Â¼�� � �I��;z�¸Ø¨ · ¯���8(� x �M�,z=z��;~@y{��}z)4��9 �Cy{z%z�����z�������� x �r~)$Mzr��$Mz � z�� x z � �C�:��;Kz�»,¢,¯ § ­ ·  ,��<8z � z�����z����,�.� x �=��~ x ��z � z�� x z � � ���M�(�M�,z � �@�¤��� � � x,��>� x ���7$"�?�>��¥

  ± ® �¾,¨¡¯Ø°��A@�  ± ® ?¾À¨¡¯Ø°��R�¡¢�½�  f µ °C¬A@@¨�ÁC¾ª  f ¶B �¿~�y{��}zK¥

C0C

Page 57: Functional Programming Using Calm Light

C0D EGF3HJI�K�L=MONQPRLTSUEGH3IGV�W�XZYGM*[T\]E6[T\^I�_`KaH3KbVc[TW�S?dULfe�EGL=I�KgVc[TW�S¦   ± ®� ?¾,¨ª¯@°@�q»�°�­�¿£q°C¬�¯��,¨rÄ�Äh Ñ âÉMÇåÎË�Æ�Ìji;ÆCÍ�Ì�çaçÀÉ?ì�Ë�Ì9ÉKç'æk �,z�z��?��z�������� x »°�­��;£ö�;~0� �;z�z x � zl�Q�P~)$Mz � �î~ x � ���m��~)$7$��}zl�n� x �Mz � z%${�Ø~?���,zl��� í �,z x\� z�~@�,��}�o���+�"� ~ x� x �Qz � z%$�� � z � z%�3~ x z�����z�������� x �Ø~?���,z�2p� � � ��;z�  ± �U4�¥¦ »�°�­��;£rq'ÄÄÓ�ÏöÉ Ñ Ìºési;ÆCÍ�Ì�çst

ý�þ�u vxw3���b�%��yzw3�{�����=�T�(|�� ��} ~~���'� x,� ~ x z��?��z�������� x ��� � � x z=�� ~��,������ x,� �M�,z=��$��}y(�����}�Kz � � x �>����� x · ¢À¯C¸ ��"��~��@~?���,z�� � �I����z�  ± ��¥¦ · ¢,¯K¸ åÄ�ÄÓ�ÏöÉ Ñ Ì Ó Ð èMÖWé ë�ì¿Í?Ì Ð¦ · ¢,¯K¸ à¹�»°�­��;£rq;Ã�Ä�Ä��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ï�i;ÆCÍ?ÌÂçst� z%$Mz3���3~�y��0$Mz*$Mz�~?����������� z��¿~@y����zK¥¦§  @¨a¬ª¯��¿£��,¯��;£,  ± ¾ «¦ §  @¨ ·  ®\¬ª¯��;£©� «¦ ¬K­�ª®@¨¡¯Ø°�� µ�¶ ³ f\· ¢,¯C¸� à¹�»,¢,¯ § ­ ·   ¼ �¿°C¨q¬,°@­�¿£¡¼Cæ ´ ±�²² h�³ f ¯?¬a¾5¹ ± Ã�¨C�¡ �� · ¢À¯C¸� à¹�»�°�­�¿£ã��æ   § ¸ \¬ª¯��¿£ ¹I�?�U�Cýh¦ ¯��q¬¡¯��;£A�¡ÄÄÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ � Ñ ÏÏ�Ò�Ó Ð Ë@ì\ÇJ� Ñ�� Î�Û9É�Ì ×�Ö�ËCÞ¿É���i;ÆCÍ?ÌÂç Ì �Ð ÔÕCÖØ×�ÌÂË�ÌÙ8ÏÚÎ�Û�É©ÊÖØ×�Ë�ÖÜCÈ¿ÉÝÒ�Þ,Î�Ö@×�ÎKÞqßË�Î�ÛàÖ�ÌàÍ�ÇÇáÉ?×�âKÖCÞ¿ÉãÈ;ÉKÎÎ,É�×�Ë�̺Î�Û�ËCÞäÇåÖÎ�Î,É�×�Ì3æì�Ë�Ì�ç0�,Ë�ÌÂç,É Ñ Ïr�,èMÖ Ó Ð Ü�ÆÆCÈ � Ó Ð èMÖ/ÈÀËCÞÀÎqÓ Ð èQÜêé�ë�ì¿Í�Ì Ðk �,z=¬¡¯��;£��À¯��¿£¿  ± � � x �>�,�.� x ~?� � ~?�a� � ~~�¤����� w �J$�~�����zl��¥

/ »�°�­��;£ã�Â��� � �M�,z%$Mz3���î~ x z��}z�y{z x � ± � � �M�,zî�������*���?�Q���M�;~)�'¾1¹ ± Ã��� x �Q� ���`��~0�Iz��+���T�M�,z3� x � z���� � ± � x�M�,z������,���/ �M�,z�»,¢,¯ § ­ ·   z�����z�������� x � �1x �m���?�Q� ± �;~0�%�;z�z x � ��� x � �

} ~~���'� x,� z��?��z�������� x �3���=y��0$Mz(�M�;~ x ~ x z%$7$"�0$�y{zl�M�;~ x ����y ¥3���*����~ ��$7� � $�~@y�y�~@��}z+�>� x �7$"�@�=���"$"�?�>�"��$QzK� w|x�M�,z{¬¡¯��¿£��À¯��;£,  ± z��;~@y{��}zK�|�M�,z%$Mz � ~0� x �Úz%$"$"�0$ � �,z x $�~~���'� x,� �M�,z�»°@­�;£�z��?��z�������� x ¥ � z+� x ��� � ~ x �Mz ��"�m��� ���";C�}�özl�"��~@�;z � $"�Ky-�Q�,z��>�Ky{������~)����� x ���'� x ��z � z � �0� x � � �;~�� � z � z%$Mz=��� �0;�� x,� � �0$�� k � ���`��� � ������y(�?�����;z��?�Q�7�'�}���z��"��ú!ðIñ�ù�z��?��z�������� x ��¥ � z � ~ x �3�"�+�"$�~@� ���Q�"�'�}��}z{z%$"$"��$���������� � zj~Ø���,� � ~ x �J�7� � z%�3�0��$$Mzl������`� x �M�,z���~0��z*� � �Q�,z=¬ª¯��¿£��,¯��;£,  ± ¬K­�¡®Ø¨¡¯Ø°����

Page 58: Functional Programming Using Calm Light

NQP�� PjK|M6HJI�IGV�W�XZLGe(EGL=I�KgVc[TW�S C �ý�þ�� �^�gw6�+���%�(y����(�=�T�(|�� *�(�k $�~@�,� � x,� z��?��z�������� x �����3~0�Q� �}z��Kz � ����M�,z � ��� ��� � � x,� �>� x ���"$"�?�>�?¥¨ · ÁZ@  ± ¾ ·  ¸�¸,¯Ø°�� f�� ¯?¨K�A@�½�¢@¨;®?��®�¢¸ �¸ f

k � ���*�>� x ���"$"�?�>�=z��@~?���;~)�Mzl�(@  ± ¾ ·  ¸¸À¯@°@� f � w!�%x � z��?��z�������� x ���*$�~�����z ��� ��$,� x,� �M�,z�z��@~?���;~)����� x �|�M�,z x�M�,z*$Mzl�,��.�3� � �M�,z=¨ · Á��>� x ���"$7�?�>�T���T�M�,z�$Qzl������6� � @�  ± ¾ ·  �¸¸À¯@°�� f � w � ~ x z�����z����,�.� x ���6$�~~���Iz ��� ��$�� x,� �M� ���z��Ø~Ø�.�;~������ x �G�M�,z x �Q�,z+$�~~���Iz � z��?��z�������� x ����y ~)���Q�,z � ~ � ~~� x ���*�Q�,z�@ ½�¢@¨;®?�஢�¸ �¸ f � w!� ~���~0��z{y�~)���Q�,zl����M�,z x �>� x �"$7�@�G���=�;~0�"��z � �"������� w!�îx ����~��Iz{y�~)�>�M�,zl�����Q�,z x �M�,z{z��?��z�������� x ��� ��$"�C�;~ � ~)�Mz � �0���>�'� � z+� � �M�,z¨ · Á��>� x ���"$7�?�>���C�.� �0;�� x,�{� �0$6�M�,z=z x �Q���Q��� x,� ¨ · Áª�B �¿~�y{��}zK¥¦§  @¨a¬ª¯��¿£��,¯��;£,  ± ¾ohq«¦ §  @¨ ·  ®\¬ª¯��;£©� «¦ ¬K­�ª®@¨¡¯Ø°�� µ�¶ ³ f\· ¢,¯C¸� à¹�»,¢,¯ § ­ ·   ¼ �¿°C¨q¬,°@­�¿£¡¼Cæ ´ ±�²² h�³ f ¯?¬a¾5¹ ± Ã�¨C�¡ �� · ¢À¯C¸� à¹�»�°�­�¿£ã��æ   § ¸ \¬ª¯��¿£ ¹I�?�U�Cýh¦ ¯��¦ ¨ · Áq¬¡¯��;£A�½h � ¯�¨C� »�°�­��;£ã�à³ f �%ÄÄÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ È¿ÉCÎ\ì;Ë�ÌÂç��,Ë�Ì�çÀÉ Ñ ÇàÒ�éÐ ÔÕCÖØ×�ÌÂË�ÌÙ8ÏÚÎ�Û�É©ÊÖØ×�Ë�ÖÜCÈ¿ÉÝÒ�Þ,Î�Ö@×�ÎKÞqßË�Î�ÛàÖ�ÌàÍ�ÇÇáÉ?×�âKÖCÞ¿ÉãÈ;ÉKÎÎ,É�×�Ë�̺Î�Û�ËCÞäÇåÖÎ�Î,É�×�Ì3æÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ � Ñ ÏÏ�Ò�Ó Ð Ë@ì\ÇJ� Ñ�� Î�Û9É�Ì ×�Ö�ËCÞ¿É���i;ÆCÍ?ÌÂç Ì �Ð ÔÕCÖØ×�ÌÂË�ÌÙ8ÏÚÎ�Û�É©ÊÖØ×�Ë�ÖÜCÈ¿ÉÝÒ�Þ,Î�Ö@×�ÎKÞqßË�Î�ÛàÖ�ÌàÍ�ÇÇáÉ?×�âKÖCÞ¿ÉãÈ;ÉKÎÎ,É�×�Ë�̺Î�Û�ËCÞäÇåÖÎ�Î,É�×�Ì3æì�Ë�Ì�ç0�,Ë�ÌÂç,É Ñ Ïr�,èMÖ Ó Ð Ü�ÆÆCÈ � Ó Ð èMÖ/ÈÀËCÞÀÎqÓ Ð Ë�ÌÂÎaé ë?ì,Í?Ì Ð¦ ¬ª¯��¿£��,¯��;£,  ± ¹Q¬C­��¡®Ø¨¡¯@°@�a�à³ f ¹I�꽡°£ ��ÃR«q��à µ �ÂÄ"¡'Ä"q'Ä"¢5Ä,£5Ĥ�?� ¶ ÄÄÓ�ÏÚË�ÌÂÎq馥¦ ¬ª¯��¿£��,¯��;£,  ± ¹Q¬C­��¡®Ø¨¡¯@°@�a�à³ f ¹I�꽡°£ ��ÃR«q��à µ �ÂÄ"¡'Ä"q'Ä"¢5Ä,£ ¶ ÄÄ��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ï�i;ÖËCÈ�ÍKתÉO§|ÌÂÆÎ\ì;ÆCÍ?ÌÂçb§k �,zn@ ½�¢@¨;®?��®�¢¸� ¸ f �;~�$"�T� � �M�,z�¨ · Á+�>� x ���"$7�?�>�=���%~n$Mz � ��P~)$%�;~)�"�Qz%$ x y ~)���Q� � x,� � x �Ø~Ø�.�,zl��� � �I����z�  ± �Â�w ������M� �?� �?�Q�"������}z^�"�^�"$�~��R~ x � z�����z�������� x ����?�'� x,� �M�,z^�¨����y��?��� � � �{~ x z��¿~@y����zK���M�,z � �@�¤��� � � x,�� � x �>����� x �"$�~��?�3~ x � z��?��z�������� x $�~~���Iz � � ��$�� x,� �Q�,z ~��,��:����~)�,�.� x � � �����3� � ��~)$ � �,y{z x �>��� í ~)$ x � x,� ¥J�Q�,zm�� �¤�¤�5~Ø���,�+�"$�~@��� x �Mz%$"$"�,���>� � $7�Ky©�M�,z�;Kz���?�~)$ � ���?�Q� ~0�6�>� x �"$"���.!��3ª¦§  @¨�®�¢@¨;®?����¢ §�§ ¬�¢ · 8/£¿ @¬;¢?­ § ¨q«¦ ¨ · Áê¬'¹�¢ · 8ªÃ � ¯�¨C�x�a³ f £, @¬�¢�­ § ¨rÄÄâCÖ�Î,â�Û��,ÖKÈÈYÏ«�,èQÖ Ó Ð èQÜ � Ó Ð èQÖ Ó Ð èMÜqÓ Ð èMÜaé ë?ì¿Í�Ì Ðw �3����z��Kz x �?�Q�"������}z+�7����~)���Q��~?�¤�1z��?��z�������� x ��� � ���,�Ky{z%�M� � x,� �I��zl�7�F~Ø�J2��Q���Q�Iz(�0$3$Mz�y+�@�Kz(�K��z x z � �,�}zl��� � �0$z��;~@y{��}z)4��;~ x � $�~~���Iz�~ � ~~� x �M�;~)�îz��?��z�������� x ���"����$"�K�;~ � ~��Mz3���6�,� � ~)$ � ���¦§  @¨�¸��;° � �  ± ®� ?¾,¨ª¯@°@�¡¸�¬ ¢ · 8q«¦ ¨ · Áa¬'¹�¢ · 8¡Ã � ¯?¨C� ± ³ f ¾ · ¯��,¨?�¸@¨ · ¯���8 ¼¤¬ ± ® �¾,¨¡¯Ø°�� · ¢,¯K¸ K£=­7®��9¼ÂÄ · ¢À¯C¸�  ± Ä�ÄÞ?ÛÂÆß0�;É Ñ âÉMÇåÎË�Æ�̪Þ�Ïr�,èMÖqÓ Ð èMÜ � Ó Ð èMÖqÓ Ð èMÜaé ë?ì¿Í�Ì Ð

Page 59: Functional Programming Using Calm Light

C0¯ EGF3HJI�K�L=MONQPRLTSUEGH3IGV�W�XZYGM*[T\]E6[T\^I�_`KaH3KbVc[TW�S?dULfe�EGL=I�KgVc[TW�Sw�x �M�,z{z��;~@y{��}z�~@���Ø�CzK� � z���$�� x ��~ y{zl�"�M~ � z��7���M�,z+����~ x � ~)$ � �����M�������Q�;~ x,x z��62p�M�,z��Mz%$My(� x ~?�°4����;z � �0$Mz$�~~���'� x,� ~ � ~~� x �M�,z*�7$�~@�,�;z � z�����z����,�.� x �¦ ®�¢@¨;®?����¢ §�§ ¹M¬C­�ª®@¨ª¯@°�� ± ³ f\· ¢À¯C¸� c¹�»¿¢À¯ § ­ ·  /¼�¬À°°¡¼KÃñ�\�'ÄÄÓ�ÏÚË�ÌÂÎq馲¦ ®�¢@¨;®?����¢ §�§ ¹�¸?�;° � ��  ± ®� ?¾À¨¡¯@°@�¡¸ ¹Q¬K­�¡®Ø¨¡¯Ø°�� ± ³ f)· ¢,¯K¸ à¹�»¿¢À¯ § ­ ·   ¼�¬,°�°¡¼CÃ�Ãñ�\�'ÄÄh Ñ âÉMÇåÎË�Æ�Ì ×;ÖËKÞ;ÉCç�³Ó�ÏÚË�ÌÂÎq馲ý�þp´ µ¶ *·"¸�¹� 3�g��º+���b¹ w3��»¼�����=�T�(|�� ����B �?��z�������� x �%y(�?��� x �0�%��z=�?�@�}�y+�0$M�,� ��� � �0$%~�$Qz�~0��� x �'�}y(�¤�P~)$J�7���M�,z*� x z � �0$T$Mz � z%$Qz x ��zl�32 ~?���M���0� � �+�������î~� ���3�;~�$ � z%$6�"� � �}�Kz�~ x z��¿~�y{��}z)4��¦   ± ®� ?¾,¨ª¯@°@�r¬ ± ®ê°C¬z½�¢ § ¯C¸Ø¨rÄ�ÄÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ É Ñ â�ÉQÇåÎ�ËÆ�Ìrh Ñ âaÆ@ì èQÖRÈ,ËCÞÀÎ�¾Q¾Ð ÔÔÅ Û�É©Î~¿ØÇ'ÉaÊÖØ×�Ë�ÖÜCÈ¿É©ÖaËKÞWÍ�Ì�Ü�ÆCÍ?ÌÂç'æÀ x z�$Qz�~0��� x ���T�M�;~��6�M�,z�  ± ®?�&�I��;z3��� x �0��~��;~)$�~@y�z%�Mz%$���5�z � �I��;zK�,�����6� x z � z�z��;z%$3$Mz�~0��� x ���`�M�;~)��� � �M�,zz��?��z�������� x ¬ ± ®(��� � zl�Q�P~)$Mz � �7����zj���@�}��y��0$M�,� ���@�|�M�,z x ~ � � x �>����� x y�~?��$�~~���Iz(¬ ± ® µ �ÂÄ,� ¶ � k �,z%$Mz�y(� � � ��;z x ��y�z x ����� x � � �M�;~)� � ~��>�T� x �Q�,z*� ��;z�� x� z%$"$Qz � � �0$6�M�,z � � x �>����� x � k �,z x �;~ x �0�M�,z%$ � � x �>����� x y�~?���"$�~@��M�;~)�8z�����z�������� x ���C����~~� x � x,� �M�,z �Ø~?���,z µ �¡Ä"� ¶ � ���Q��z�$Mz�~?�|� ��;z�����¯��À¨ § ¯K¸@¨¡��Á����3�M�,z�� x �}���I��;z�; x � �îx����Q�,zm�I��;zl�Q�,zl�";Kz%$n���½�¢ § ¯K¸@¨¡¥��M�,z ¨ · Á � �0$My������0�� � $Mz � z%$(�"���M�,z�¬ ± ® � ~)��~Ã�>� x ���"$"�?�>�7�0$�� � � ���Q�Â���; x � �8x �"�=�;z��?�����y+�0$Q�,� ���@� w �ry�~?�(�M�,z x �;z��?� �"�'�}��}z*�"����� �¤� � ~ x �¤�¤��!°� ��;z � �%~@y��ª�@~?���,z µ ¨ · ­¡ 9Ķ�ÂÄ�� ¶ ��'� x ��z��Q�,z��I����zl�M�,zl�7;Kz%$ � �zl� x �0�%�?�Q�"��zl�"�3~ x � � ��$"�M�,z%$3�I����z3� x� �0$Qy�~)����� x �M�;~ x ½�¢ § ¯C¸Ø¨¡�k �,zj��$7�K��}z�yz���3�M� �?�3�M�,z�~@�?�Iz x ��z(� � ����~)�,���(�>� x,x zl�>�,�.� xö� $7�Ky z�����z����,�.� x �*�M�;~)�=~)$Mz($�~�����z � ~ x � �M�,z���%�>��$"$Mz x ��zl� � �,z%$Mzn�M�,z�� ~)$Mz*�7$�~@�,�;z � � � x �0�M�,z%$�z��;~@y{��}z � �0�� � ��z(�M�,z�� x zn� � ~ � � x �>�,�.� x $�~~���'� x,� ¬ ± ®� ���M� ~ x � x �Mz � z%$6��$3~��?� �@�}z�~ x �Ø~?���,zK� � z��;z x � � x,� � x ���Ky�zÄ�>� x � ������� x � k �,z x ��� x �M�;~)�J��~0��zK� � �,z x �"$M��� x,��"�+�7$�~@���M�,zl�Iz�z��?��z�������� x ��� � z���~ x,x �0� � zl�7� � z � z%�Q�,z%$6�M�,z�� � �¤� �'���@� � � x �Mz � z%$��`�0$%�?� �@�}z�~ x �Ø~?���,zl��������T�g���������Å`ÆgÇaÈ)É0Ê#Ë%Ç^ÌgÍ°Î¦Ï ôÑÐ�õ�ô=ú#Ò�ô�ÓcÔõ;ø?ú!òPûKõ�¬ª¯��;£��¸�­¡®®�  �£ÖÕ|Ò�òPø¤Ò×Cò�Ø?ô�õÚñTÓcÔõ;ø?ú!òPûCõ{¬ ñKõ�Ù{ñmÚ¤òFó úlh ðIô�ú°Ôð�õ¿ó ú#ÒôÐ�ðQó�ú1ôlÚ¤ô~1jô?õ;ú'û�Ó�h ûKõ^Õ|Ò�òüø%Ò�ú#Ò�ô{ñ�ùKù�Ú òüø�ñKú!òPûCõ�û,Ó3¬öó%Ô�ø�ø�ô�ô>Ù@ó¤ÛÅ`ÆgÇaÈ)É0Ê#Ë%Ç^ÌgÍ#ÜZÏ ôÑÐ�õ�ôjú#ÒôTÓcÔõ;ø?ú!òPûCõ{½�¢?¾���¸?­ª®® � K£^Õ|Ò�òüø%Ò&×Cò�Ø?ô�õöñ3Ó%Ô�õ�ø�ú!òüûKõ�¬�ñCõ?Ù�ñ�Ú¤òFó ú-h�ðIô�ú°Ôð�õ,ójú#ÒôÚ¤ò}ó�ú1û,Ó�ú#Ò�ô�ð ô�ócÔ Ú¤úüó�û�Ó=ó%Ô�ø�ø�ô�ó�ó#Ó%ÔQÚ¡ñ�ùKù�Ú òüø�ñKú!òPûCõ,ó=û�Ó3¬ ú!û�ô~Ú ô~1�ô�õ;úüó=û�Ó2hgÛ

Page 60: Functional Programming Using Calm Light

S T#UWVYX Z\[ Ý

Þ b�_ae�` e�f d n oxß kmn oqd n o

í z � zl�"�>$,����z�� x �M� ���g�Q�;~@���Mz%$|�M�,zT��~�y��Qà�� � �Q�b� x �����%ál�0���Q�����9y+� � z��À~ x � ���Ky{zG� � �����¡��$,��y�.�,���Cz��C�;z%$�~)�,�.� x ���â �0$Mz��>�Ky����z%�Qz3� x� �0$My ~)����� x ~��?�0��� w À ��~ x ��z � �0� x � � x �M�,z(��~@y���à�� � � ��y�~ x �;~?�=ãåä�æ>ç���%~@y��=à�� � �Q� �;~0��~ x �}y{��z%$�~)���}�Kz�� x �����%ál�0���Q������y+� � z���¥j~ xöw À �K��z%$�~)����� x �I������ � �;z��>� x �'� � z%$Mz � ~0�~��'� � z%!!z>è�zl�>���9~ x � ���*�M� �?� � z��;z x � z x �(� x �M�,z(�0$ � z%$*� � z��Ø~?���;~)����� x � w À � ~)$Mz���z%$ � �0$My{z � � x �"�öø%ÒñKõ;õ�ôlÚ ó� ���M���I����zl�3¯�����®?�ª¢?��ª  § ~ x � °�­À¨���®?�¡¢���ª  § � k �,zl�Iz3�I����zl�%~)$Mz�ñQé�ó�ú!ðIñKø�ú!��� � zK�G�M�,z>��$T$Mz���$Mzl�Iz x ��~)����� x ��� x �0�~0�%��zl�"������}zK�k ��$Mz�z��M�;~ x,x z�����~)$Mz=��$Qz � z�� x z � ¥¦ ¸Ø¨,£��,¯���ÄÄÓ�ÏÚË�ÌU�;â�Û�Ö�Ì�Ì9É@Èqé ëCÖÜKÞ,ÎØ× Ð¦ ¸Ø¨,£��K°�­À¨rÄ�ÄÓ�ÏÚÆCÍÀÎ��¿â Û�Ö�ÌÌ�É�Èqé ëCÖ�ÜCÞÀÎ@× Ð¦ ¸Ø¨,£��  ·�· Ä�ÄÓ�ÏÚÆCÍÀÎ��¿â Û�Ö�ÌÌ�É�Èqé ëCÖ�ÜCÞÀÎ@× Ðk �,z�� ~)$Qz��M�,z�ê%����~ x � ~�$ ��ë w À �Q�;~ x,x z�����¥=¸@¨,£��,¯������3�?���;~?�¤�}���>� x,x zl�>�Qz � �7�m�M�,zn;Kz���?��~)$ � �ª~ x � ��$�� x �,� x,�� x �"� ¸Ø¨,£���°�­À¨ ~ x � ¸@¨À£��  ·· �?���;~?�¤�}��~��,�;z�~)$���� x �M�,z��"�>$Mz�z x �ì�þ�ÿ µ«�|�%�Jgw6í�·��î�¸����T�w ����� x �0�%���Q�"�'�}��}z(�"����$�� x �3~ x � $Mz�~ � z��Kz%$Q�{�Ø~?���,zK�Tï�� x �>����� x ��� � ��$�z��;~@y{��}zK�;~�$MzJ�I�� ����~?�¤��� x ����$Qz�~ � ~@��}zK�� x �}zl�"��~��,� �.��~@��}z�,�"$�� x,� $Mz���$Mzl�Iz x ��~)����� x ��� � zl��� �Cx z � ~ x � $Mz�~ � � x,� ���?�Q� ~($Mz���$Mzl��z x ��~������ x ��� � ��� ��� � z � ���~ x � x �Mz%$M��$Mz%��~������ x �>�Ky�������� x,� �M�,z � zl���.$Qz � � � x �>����� x �

í zÄ��~?�¤�¡ùªð�òPõ�ú!ñQé%Ú¤ô ú°ðMù,ôî~*�I��;z � �0$ � � ���Q���M�,z%$Mz=~)$MzT� x �����%á~�0���M�����î��$��}y(�����}�Kzl����y����z�y�z x �Mz � � x ��~@y��à�� � � ��� k �,z y�~~� x ��$�� x ��~@��}z(� ��;zl�8~)$MzK¥/ �M�;~)$�~0�>�Mz%$���¥|�I��;z�®?�ª¢ ·Uñ/ ���"$�� x,� ��¥|�I��;z{¸@¨ · ¯��a8 ñ/ � x �Mz � z%$>��¥G�I����z{¯��,¨ ñ/Âò ��~)��� x,� ���)� x � x �,y��;z%$���¥=�I��;z=¬ § °¿¢Ø¨¡�

C0ó

Page 61: Functional Programming Using Calm Light

D0ô EGF3H3I*K�L�MAõ0P�öTH�S0VcE÷V�W3I�_`K�ø?[(_`K�I�_`Kí z3; x � � ~?�¤�g�M�,zl�Iz*�I��;zl� � $7�Kyx�M�,z=��$Qz��0���0�?�6�Q�;~@���Mz%$>��� 9 �"$�� x,� �î~ x � �Q�;~)$�~0�>�Mz%$>�=���,�,���0$"�3~ x �0��~������ x{� �0$zl�"��~@� � x,� �"� �n9 � wIw �>� � zl�`�0$T�"� � z x �0�Qz��I�;zl�7�P~?�=�M�;~�$�~0�>�Mz%$��`���?�M� ~�� x z � ��� x zK¥¦fù�ú�ù ÄÄÓ�Ïöâ ÛÂÖ@×�ézû�ü3û¦fù ®K�Qý q ù ÄÄÓ�Ïöâ ÛÂÖ@×�ézû�ü3û¦fù ® ® ù ÄÄÓ�Ïöâ ÛÂÖ@×�ézû%þ þgû¦fù ®?� ù ÄÄÓ�Ïöâ ÛÂÖ@×�ézû%þ|Ì�û¦ ¼@¸@¨ · ¯��a8 � ¯�¨C�U®?�¡¢��¡  � § ¯��¡ q¯��¡¸,¯Ø£¿ ¿¼ÂÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙà驧�ÞÀÎ@×;Ë�ÌÙ ßËÎ�ÛTþ�Ì�Ö Ì�ÉCßCÈÀË�Ì�É©Ë�̪Þ,ËçÀÉÿ§k �,zmê~® ë �Q�;~)$�~0�>�Qz%$=���`�?�Iz � ~��î~ x zl�"��~@��zj~ x � ���`�?�Iz � �� � ��$ x � x !!��$�� x ��~@��}z��0$3�I�;zl�7�P~?�=�M�;~�$�~0�>�Mz%$����À � �>�0��$���zK�?�M�;~�$�~0�>�Mz%$6�>� x ����~ x �>�6��~ x �;zn�?�Iz � ~����>� x ����~ x �î�;~)�"�Qz%$ x ��¥¦ ¬K­�ª®@¨¡¯Ø°�� ù ¢ ù ³ f � ´ �W³ f �ÂÄ�ÄÓ�Ïöâ ÛÂÖ@×àÓ Ð Ë�Ì�Îqé ë?ì,Í?Ì ÐÀ x �I����zl�(���?�M�R~���®?�ª¢ · �M�;~)���;~?�Kz�~ � x ���Mz x �,y��;z%$(� � �>� x ����~ x ��z��}z�y{z x �����f����y�~?� �;z��?�Iz � ��6�"�^�?�IzûKð��}ù,ñKú!ú!ô�ð�õ,ó�� � ~)�Q�,z%$�� x,� �>� x ����~ x ���f� x �Q�,z��M~@y�z=y�~)���Q� � x,� $"��}zK¥¦§  @¨�¯K¸ � � ° �   § «a¬K­�¡®Ø¨¡¯Ø°��¦ ù ¢ ù ´sù   ù ´sù ¯ ù ´sù ° ù ´÷ù ­ ù ´÷ù Á ù ³ f ¨ · ­¡ ¦%´ �a³ f ¬�¢ § ¸ 9ÄÄËCÞQ�,Ê�Æß,É@ÈYÏöâ�Û�Ö@×àÓ Ð ÜÆ�ÆCÈ éqë?ì,Í?Ì Ðk �,z8�?$����T$"��}z3���6�Q���Q�Iz x � � �M�,z=~)$ � �,y�z x �%y�~)�>�M�,zl��� x z3� � �M�,z*��~0�Izl��� 9 � x ��zn�M�,z%$Mz`���8~��7�0��~?�?�0$ � z%$�� x,� � x�Q�;~)$�~0�>�Mz%$>��� �M�,z��I� x ��~Ø�&� � �Q�;~)$�~0�>�Mz%$%�;~)�7�Mz%$ x �����%z x $����Q�,z � � ���M��~�ê���� ë x �0��~)����� x ¥¦§  @¨�¯K¸ � § ° �   · �®¢�¸ Q� §  Ø¨¨;  · «a¬C­��¡®@¨ª¯@°@�¦ ù ¢ ù ��� ù���ù ³ f ¨ · ­¡ ¦%´ �a³ f ¬�¢ § ¸ 9ÄÄËCÞQ�ÈÀÆß,É�×��¿âCÖCÞ¿É���È;ÉCÎ�Î,É�×�Ï â�Û�ÖØ×�Ó Ð ÜÆ�ÆCÈqé ë�ì¿Í?Ì ÐÀ � �>�0��$��IzK����$"!!�;~)�"�Mz%$ x �î~ x � �M� ��� x �0��~)����� x ��~ x �;z�y� �,z � �;~0��� x ¥¦§  @¨�¯K¸ � §  @¨�¨�  · «a¬C­�ª®@¨ª¯@°��¦ ù ¢ ù ��� ù���ù/´ ù�ú�ù ��� ùfù ³ f ¨ · ­¡ ¦%´ �a³ f ¬�¢ § ¸ 9ÄÄËCÞQ�È¿ÉCÎÎÀÉ?× Ï�â Û�ÖØ×àÓ Ð Ü�ÆÆCÈ éqë�ì¿Í�Ì Ðw|x �M�,z x z����Ä��zl�>����� x ��� � z � �}�Kz(�M�,z y+�Q���*�>�Ky{y�� x �}���?�Iz � w À ��$��}y(�����}�Kzl�*� x �M�,zl�Iz���$�� x ��~@��}z(�I����zl���

� �>�Ky{��}z%�Mz=��������� x,� � � ��$Mz � z�� x z � w À �C�;z%$�~)�,�.� x �T��� � �}�Kz x � x ãåä�æ>ç��

Page 62: Functional Programming Using Calm Light

õ0P���P [(_`K�In_6K D�æì�þ�u ���g����� $,� x ��� x,� � x ����~ x � ~�$ � �0���M�����T���%��z%$ � �0$My{z � �����M�,z � �@�¤�.� � � x,��� � x �>�,�.� x ��¥¦ ¾ · ¯��,¨���®?�ª¢ · Ä�ÄÓ�Ïöâ ÛÂÖ@×àÓ Ð Í?Ì�Ë�Îqéqë?ì,Í?Ì Ð¦ ¾ · ¯��,¨���¸@¨ · ¯��a8rÄ�ÄÓ�Ï Þ,ÎØ×�Ë�ÌÙºÓ Ð Í�Ì�Ë�Îaé ë?ì¿Í�Ì Ð¦ ¾ · ¯��,¨��À¯��À¨rÄÄÓ�ÏÚË�ÌÂÎ Ó Ð Í�Ì�ËÎqé ë?ì,Í?Ì Ð¦ ¾ · ¯��,¨��ج § °¿¢@¨1ÄÄÓ�Ï ì¿ÈÀÆÖ�Î�Ó Ð Í?ÌÂËÎqéqë�ì¿Í?Ì Ð� $,� x ��� x,� ���mé%Ô��3ô?ð ô>ÙK�ÿ� � zK�m�Q�,z{z>è�zl�>��� � ~���~?�¤���7��~���$,� x ��� x,�Ú� � x �>�,�.� x y�~?� x �0�=�;z��Iz�z x ��y�y{z � �P~)�Mz��}�ª¥� ÔKó>Ò�òüõQ× z��À������7���I�}� �Q�,z��0���M��������� èÂz%$�������Ky�z%���}y{zl�+$Qzl�0� ��$Mz � �T� x �}zl�"��~ö��$,� x ��� x,� � � x �>����� x ò �?�I�,zl������}y{������7�.�����K�3ï����?�I� � x,� ��� � � x z � ���M���Q�,z�¬ § ­¡¸�� � � x �>����� x ¥¦ ¬ § ­ª¸?�%Ä�ÄÓ�ÏÚÆCÍÀÎ��¿â Û�Ö�ÌÌ�É�È Ó Ð Í?ÌÂËÎqéqë?ì,Í?Ì Ð¦ ¾ · ¯��,¨���¸@¨ · ¯��a8�¼���  §§ °=­�¼¡Ä�¬ § ­¡¸?� ¸@¨,£��K°@­,¨rÄ�Ä��É@ÈÈÀÆ|³�ÓºÏ�Í�Ì�Ë�Îaé-� �k �,z�¾ · ¯��,¨?�?�ª  � § ¯��ª  � � x �>����� x ��$�� x �>�î~ x z � ��� x z+�M�;~)$�~0�>�Mz%$3~ x � ò �?���,zl�6�M�,z��,��~ x � ~)$ � �����M������¥¦ ¾ · ¯��,¨����¡  � § ¯��¡ 9ÄÄÓ�Ï Í?ÌÂËÎ Ó Ð Í?Ì�Ë�Îqéqë?ì,Í?Ì Ðï����?�I� � x,� ���T$Mzl��� ��$Mz � � �,z x � $������ x,� ����~ x � ~?��� x z=~@�,�������~)����� x ����� x�� � ���M���M�,z=~@�,�������~)����� x y ~��(�Mz%$Qy(� x ~)�Mz� ���M���0����~?�¤����$�� x ��� x,� �;z>� x,� � � x zK� 9 ��~ x � ~?��� x z ~��,��:����~)�,�.� x �������0�� � �Mz%$Qy(� x ~)�Mz{�� ~���~?�¤���"�Ã�M�,z�  ± ¯?¨� � x �>����� x 2 � $"�Ky©�M�,z{¯@°�y+� � ��}z)4�� � � ���Q� ò �?�I�,zl��~?�¤�9�;z x � � x,� �0���Q�����6� x ¸@¨À£���°�­,¨�~ x � ¸@¨,£��  ·· �

� $�� x �,� x,� � x �M�,z��,��~ x � ~)$ � z%$7$"�0$6�M�;~ x,x z��1¸Ø¨,£���  ·�· ��� � � x z � ���M���M�,z � �@�¤��� � � x,�{� � x �>����� x ��¥¦ ¾ ·   ·· ��®?�ª¢ · Ä�ÄÓ�Ïöâ ÛÂÖ@×àÓ Ð Í?Ì�Ë�Îqéqë?ì,Í?Ì Ð¦ ¾ ·   ·· ��¸@¨ · ¯��a8rÄ�ÄÓ�Ï Þ,ÎØ×�Ë�ÌÙºÓ Ð Í�Ì�Ë�Îaé ë?ì¿Í�Ì Ð¦ ¾ ·   ·· �À¯��À¨rÄÄÓ�ÏÚË�ÌÂÎ Ó Ð Í�Ì�ËÎqé ë?ì,Í?Ì Ð¦ ¾ ·   ·· �ج § °¿¢@¨1ÄÄÓ�Ï ì¿ÈÀÆÖ�Î�Ó Ð Í?ÌÂËÎqéqë�ì¿Í?Ì Ðk �,z � �@�¤��� � � x,� � � x �>�,�.� x ��$,� x ���������J�,�"$�� x,� ~�$ � �,y{z x � � �@�¤�.� � z � �� ~ x z � ��� x z+�Q�;~)$�~0�>�Qz%$J�"� ¸Ø¨,£��  ·�· ~ x ��M�,z x ò �?�I�,zl�=¸@¨,£��  ·· �¦ ¾ ·   ·· �� ?�¿£ § ¯��¡ 9ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙºÓ Ð Í�Ì�Ë�Îaé ë?ì¿Í�Ì Ð

Page 63: Functional Programming Using Calm Light

D0ä EGF3H3I*K�L�MAõ0P�öTH�S0VcE÷V�W3I�_`K�ø?[(_`K�I�_`Kì�þ�� ��������k �,zl�Iz�� x �����3��$��}y(�����}�Kzl� ò �?�I�Ã�M�,z�����~ x � ~�$ � �0���M�����3~ x � $Mz�~ � � $"�Ky©�M�,z��,��~ x � ~)$ � � x ������¥¦ ·  ¢�£�� § ¯��ª åÄÄÓ�Ï Í?ÌÂËÎ Ó Ð Þ,Î@×;Ë�Ì�Ùàé ë?ì¿Í�Ì Ð¦ ·  ¢�£��,¯��,¨1ÄÄÓ�Ï Í?ÌÂËÎ Ó Ð Ë�Ì�Îqé ë?ì,Í?Ì Ð¦ ·  ¢�£��@¬ § °,¢@¨rÄ�ÄÓ�Ï Í?ÌÂËÎ Ó Ð ì¿È,Æ�ÖÎqéqë�ì¿Í?Ì ÐÁrzl��~)�?�Izn� � �Q�,z>�.$ x ~@y{zl�î~ x � �I����zl�����M�,zl�Iz � � x �>����� x � � � x �0� x z�z � � ��$7�M�,z%$îz��,��F~ x ~)����� x �ì�þp´ �Zº�w3�+�(�6·��Z �����·��T�í �,z x ��$"� � $�~�ym�î�;~?�Kz(�"��$Mz�~ � � $"�Cy �0$���$�� x ���"���,�}zl�������*��� x zl��zl�"�Q~)$M�^�"���K�;z x ~ x � �Q���Q��zm�M�;~ x,x z������ x�M�,zl�Iz��,�}zl������ ���"! #%$'&)(+*,(+-/.0(214365"798:*"(2-/3<;2.0(+(+&)5"8À �;z x � x,� ~ x � �Q���Q��� x,� ���%��z%$ � �0$My{z � � ���M���M�,z � �@�¤��� � � x,�{� � x �>����� x ��¥¦ °@¾¡ ����,¯��%Ä�ÄÓ�Ï Þ,ÎØ×�Ë�ÌÙºÓ Ð Ë�Ì��¿â Û�Ö�ÌÌ�É�Èqéqë�ì¿Í�Ì Ð¦ °@¾¡ ����K°@­,¨1ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙºÓ Ð ÆKÍ,Î0�;â ÛÂÖ�Ì�Ì9É�Èêé ë?ì,Í?Ì Ð¦ ® § °,¸  �À¯���ÄÄÓ�ÏÚË�ÌU�;â�Û�Ö�Ì�Ì9É@È Ó Ð Í?ÌÂËÎaé ë�ì¿Í?Ì Ð¦ ® § °,¸  ��°�­À¨rÄÄÓ�ÏÚÆCÍÀÎ��¿â Û�Ö�ÌÌ�É�È Ó Ð Í?ÌÂËÎqéqë?ì,Í?Ì Ðk �,z °�¾ª ?�U�,¯�� � � x �>����� x �Q�,zl�";����M�,zÚz��Q�����Mz x ��zÂ� � �������,�}z x ~@y{z�~)$ � �,y{z x ���î~ x � $Qz%�"��$ x ��~ x z � � x ������Q�;~ x,x z��6� x �M�;~)� �,�}z ñ °�¾ª ?����°�­À¨^�>$Mz�~)�Mzl��~ x z � �,�}zÃ2p�0$n�"$"� x ��~)�Mzl�Ä�����7��5�z%$"� ��z x,� �M��� � ����z�� ���,���>4�~ x �$Mz%�"��$ x �{~ x �����M�����m�Q�;~ x,x z��J� x �M�;~)� �,�}zK�±Á=���M� � � x �>�,�.� x � � ~~�¤�J� � ��z%$My(���"�'��� x � ~)$Mz x �0������=&�7�}z x � � �0$$Mz�~ � � x,� �0$ � $������ x,� �>4??ÈA@ÿÊB@0CED

/ �'���Q�'� x,�=� � x �>����� x �T�Q���Q�Iz6�M�,z>��$6�Q�;~ x,x z��Â~)$ � �,y{z x ��� 9 � x ��z3�M�,z>��$���z��;~?�0���0$f���f� x �I�;zl�7�¤�;z � � x ~?��$Mz�~ � ��Q�.� �Iz � �Q�;~ x,x z������¡~ x � �M� � x,� ��~ x �;~��,�;z x � x �M� ���6��~0��z0ª/ �'���Q�'� x,� � x z�� � �M�,z��,��~ x � ~)$ � w À �Q�;~ x,x z����Ã2M¸@¨À£��À¯����%¸Ø¨,£���°�­À¨¡�8¸Ø¨,£��  ·�· 4=�;~��Cz�� x ��$Mz � ���>��~@��}zz>èÂzl�>�>�%ª

Page 64: Functional Programming Using Calm Light

õ0P�F�P EfFJH3WJW3L+G S¨[TWAY|V�GbLTS D<H��� ���JI KL&).M12*"(2-/79NPO%N<*BQR*,(+-TSNA79UWVXQ<7Y8:$'&X36*BZ[&)1\3<;2.0(+(+&)5"89 �Ky{zT� � �M�,z � � x �>�,�.� x �G� x ����~ x � ~)$ � � x �����%ál�0���M�����r�;~?�Kz��>�0$7$Mzl�I�?� x � � x,� � � x �>�,�.� x � � �0$";�� x,� � x �M�;~ x,x z�����¥¦ °@­,¨K¾­,¨?�®��¡¢ · ÄÄÓ�ÏÚÆCÍÀÎ��¿â Û�Ö�ÌÌ�É�È Ó Ð â ÛÂÖ@×àÓ Ð Í�Ì�Ë�ÎWé/ë?ì¿Í�Ì Ð¦ °@­,¨K¾­,¨?�¸Ø¨ · ¯���81ÄÄÓ�ÏÚÆCÍÀÎ��¿â Û�Ö�ÌÌ�É�È Ó Ð Þ,ÎØ×�Ë�Ì�ÙºÓ Ð Í�Ì�ËÎêé�ë�ì¿Í�Ì Ð¦ ¯��¾�­,¨���®?�ª¢ · Ä�ÄÓ�ÏÚË�ÌU�;â�Û�Ö�Ì�Ì9É@È Ó Ð â ÛÂÖ@×�é ë�ì¿Í?Ì Ð¦ ¯��¾�­,¨�� § ¯��¡ åÄ�ÄÓ�ÏÚË�ÌU�;â�Û�Ö�Ì�Ì9É@È Ó Ð Þ,ÎØ×�Ë�ÌÙàéqë�ì¿Í�Ì Ð��� ���^] _�.0*,5"`+NA&X8k �,z�z�����z����,�.� x ¬K�;£��K°C¬?�@¬ª¯ §  6���T$�~~���Iz � � �,z x ~ x � x �����T�K�;z%$�~������ x ��~ x,x �0�T�>�Ky{��}z%�Mz=�;zl��~��?�Iz*�M�,z�z x � � ��M�,z��,�}z��;~0�%��z�z x $Mz�~0�Q�,z � �¦ ¬K�;£��K°C¬?�@¬ª¯ §  9ÄÄÓ�ÏöÉ Ñ Ìºé÷hKÌ�ç0�,Æ@ì��Kì;ËCÈ;É

k �,z3z��?��z�������� x ¸@Á;¸ �Q�<aCÁ;¸ ��  ·· ° · 2�aCÁ�¸Q�  ·· ° · � $"�Kyx�Q�,z3y+� � ��}z�¸ØÁ�¸ 4�����$�~~���Iz � � �,z x ���Cy{z3y ~ x �}��!��P~)����� x � � �,�}zl����� � �0$M� � �,� z x ����M�,z��K��z%$�~)��� x,� ���a���Qz�y ¥¦ °@¾¡ ����,¯��º¼�¢cb · ¢®¢�£¿¢cb · ¢¿¼ÂÄ�Ä��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ï Þ�¿�Þ �Q�<d0¿�Þ �¿É?×�×�Æ@ש§�Ö�Ü@×;Ö,âCÖ�çÖ�Ü@×�ÖáÏfeªÆaÞÍ;â�Û ì�ËKÈ;ÉaÆ@× çË@תÉâKÎÆ@×0¿�§

k �,z � � x �>����� x �*�M�;~�� � zj�;~?�Kz(�Iz�z x � x �Q� ���*�Q�;~@���Mz%$=~)$Mz+����=��7��z x � � �0$J����$ x z�z � ��� â ~ x � y+�0$Mz�z�� �����2p�?�Iz � ��9y�~�� x �}� � �,z xÚ� �0$";�� x,��� ���M� �,�}zl�>4ï~ x � ~)$Mz � zl�"�>$��}��z � � x ãåä�æ>ç�������T�g���������Å`ÆgÇaÈ)É0Ê#Ë%ÇLggÍ°Î¦Ï ôÑÐ�õ�ô{ñ*Ó%Ô�õ�ø�ú!òüûKõ ®�°�¾ÀÁ��@¬ª¯ §  öú!ñ:hØòüõQ×Úú°Õ'û*ÐTÚ¤ô�õ;ñ�1jô�ó�i|û�Ó{ú°ðQùÀô�¸Ø¨ · ¯���8<j�ñ@ó{ñKð°×�ÔQ1�ô�õ�úüólkñKõ�Ù ø�û ùUð@òPõ ×öú#Ò�ô ø�ûKõ;ú!ô?õ;úüó{û�Ó�ú#Ò�ô*Ð%ðMó�úbÐ�Ú¤ô�ûKõ\ú#Ò�ô ó ô�ø�ûCõ?Ù ûCõ;ô�Ûnm%ð�ðIûKð�1�ô�ó�ó ñ~×Kô�ó�1�ÔCó�ú�éMô ùªð�òüõ;ú!ô>Ù�ûCõ¸@¨À£���  ·· ÛÅ`ÆgÇaÈ)É0Ê#Ë%ÇLggÍ#ÜZÏ ôÑÐ�õ�ô�ñ(Ó%Ôõ;ø�ú!òüûKõ � ®�ú!ñ:h@òPõ ×öñ(Ð�Ú¤ô�õ�ñ01�ô�ñ�ó�ñKð°×0Ô 1�ô�õ;ú=ñCõ?Ù�ùªð�òPõ�ú!òPõ ×öûKõ\ú#Ò�ô�ó�ú!ñKõ�ÙKñKð�Ùû0Ôú ùUÔú�ú#Òô�õ?Ô 1+éMô?ð3û,Ó ø¤Ò�ñKðIñKø�ú!ô?ðMó=ñKõ�ÙmÚ¤òüõ;ô�óîñ�ùCùÀô�ñKð�òüõQ×�òPõÚú#Ò�ôGÐTÚ¤ô�Ûom�ð�ð ûCðJ1�ô�ó�ó�ñl×Kô�óJ1(ÔKó�ú�éQôrùªð�òPõ�ú!ô�Ù{ûCõ¸@¨À£���  ·· Ûprq)s%ÇMD ������� � � � � ��$�~0�>������zJ�7� � z��Kz����K��~=��$"� � $�~@yZ� x � z�� x � x,� �Iy�~?�¤� � � x �>����� x ��� � ��� x,� ��z � � x �>����� x � ��� x,��M�,z � ���@�}z � �0$";����6�?�,�;~?�¤���Ú�;~)$ � z%$6�7� � z���� � ~ x � �"�+$Qz�~ � � í ���M�^�Iy�~?�¤� � � x �>����� x ����� x z���~ x �"$�~���z*�M�,z�y~ x � �Iz�zn�M�,z�~)$ � �,y{z x �>�=�Q�,z�� ~)$Mz���~?�¤�}z � � x ~ x � �M�,z*$Mzl�,��.�3�M�,z�� ��$"� � �?��zK�

Page 65: Functional Programming Using Calm Light

D:t EGF3H3I*K�L�MAõ0P«öTH�S0VcE÷V�W3I�_`K�ø?[(_`K�I�_`K

Page 66: Functional Programming Using Calm Light

S T#UWVYX Z\[ u/v

w oWi u b�l _ b�f x d b�i _ u i _

w�x �M�,z x z����1�;~)$"�G� � �M�,zl�Iz3�>�0��$��Iz x ���Mzl��� � z � �¤�¤����y����z�y�z x �î~*�Iy�~Ø� � � � x �>�,�.� x ~?�;�P~ x,� �;~ � zK� � ~)$��'� x,� �Ø~Ø�:� ���$"� � $�~@ym�|� � �M� ���5�P~ x,� �;~ � z6$Mzl��� �.$Qzl� � $������ x,� ~ �}z��Q����~?�9~ x ~?�}� 5�z%$î~ x � ~ �;~)$��Iz%$ � ��$G�M�,zî�P~ x,� �;~ � zK�Gï��0$��M�,z����$M���Q�Iz�� �î� $������ x,� z�~0�'�¤�}�¶���?�Q����$"� � $�~@ym���G��~@y ��à�� � �Q����$"�@��� � zl�j~Ã�I�;zl�7�P~?� � ~)��~����"$7�?�>�"��$MzK¥�ó ú!ðIô�ñ01 ó �k �,z>��$îy�~�� x �?�M~ � z6�����"����z3� x �Mz%$ � ~0��z � �"��� x �����3�M�;~ x,x z����T��$��,�"$�� x,� �1~ x � �"����z3y�~����M�,z � ~ � ~�� x �,�îó�ú!ð ô�ñ01ùÀñCú!ú!ô�ð�õ,ó��

ÿoy þ�ÿ z�ÿ�b��wĹ��9 �"$Mz�~�ym�å�;z���� x,� �"��~ x ~@�?���7$�~0�>� � ~)��~3�I��;zK¥|�M�,z>��$�~��>�"�;~?�U$Qz���$Mzl�Iz x ��~)����� x $Qz�y�~~� x �'� � �,� z x � $"�KyA�M�,z6�?��z%$��� � � z��Kz%$?�%���|���=���,� �¤�;���Q�"�'�}��}zJ�7�3��� �¤� � �,�"$Mz�~@ym��z>���M�,z%$Äê ���=�;~ x ��ë ��$'���n�?�'� x,� ���Ky{z%��$Mz � z�� x z � � � x �>�,�.� x ���!X{��,!9�"! |};2&�~<�M���X�A��Q��+$�&k �,z+�I��;z ¸@¨ ·  �¢�½^��� ~ �;~)$�~@y{z%�Qz%$���5�z � �I����zK� À x z���~ x ��� �¤� � �,�"$Mz�~@ym�`� � � x �Mz � z%$>���g� � �M�;~�$�~0�>�Mz%$��`�0$*� �~ x �m���M�,z%$6�I����zK� 9 �7$Mz�~@ym�T$Qzl��z>���Czj~��I�;zl�7�P~?�=�I� x ��~Ø�Â�C���Q��;0� x,� ����;Kz��M�,zn� x z � �0$r����������� k �,z z�y{���I�&�,�"$Mz�~@y��� � $����"�Mz x ¥¦rµ @ f ¶ ÄÄÓ�Ïaè,�ÀÖaÞ,Î@תÉCÖ��àé ëCÖÜKÞ,ÎØ× Ð� x � x z�y{���I�����"$Mz�~�yº���Q�"�Izl�7�Izl�%z��}z�y{z x ���6�Q�;~)�3~)$Mz � $����"�Mz x ��$Mzl��z � z � �����M�,z&êU½ ë 2������0�Mz)4��Q�;~)$�~��>�Mz%$��¦rµ @©½M�'ı½l�ÂÄ ½"� f ¶ ÄÄÓ�ÏÚË�ÌÂÎaÞ,Î@תÉCÖ��àé ëCÖÜKÞ,ÎØ× ÐB �}z�y{z x ���`�M�;~)�î~)$Mz x ���î��$Mzl��z � z � ���ê�½ ë ~)$Mz�ó%Ôaé ó ú!ðIô�ñ01 ó=�M�;~)�î~)$Mz=z��,�;~ x � z � � x �M�,z=z x �Q���Q��� x,� �,�"$Mz�~@y ¥¦rµ @©½M�'Ä µ @|½¤�ÂÄQ½"� f ¶ Ä«½"¡ f ¶ ÄÄÓ�ÏÚË�ÌÂÎaÞ,Î@תÉCÖ��àé ëCÖÜKÞ,ÎØ× Ð¦§  @¨�¸ê« µ @ ½�¼�¢cb¡®¿¼ f ¶ ¯�� µ @a¸åı½�¼�£¿ Ø¬�¼ f ¶ ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙ�ÞÀÎ@סÉKÖ��ºéqëKÖÜCÞÀÎ@× Ðk � �?���?���7$Mz�~@y-�>� x ��~)�Mz x ~������ x ��~ x ��z � z�� x z � ~0��¥

D0C

Page 67: Functional Programming Using Calm Light

D0D EfFJH3I*K�L�M4�<�0P SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3S¦§  @¨�¸Ø¨ ·  ¢�½g�®�°��¡®�¢@¨q¸R¨�« µ @a¸åÄ ¨ f ¶ ÄÄÞ,ÎØסÉKÖ����¿âCÆ�Ì9âCÖ�ÎcÏqèMÖ©Þ,ÎØסÉCÖ��ºÓ Ð èMÖ/ÞÀÎ@תÉCÖ��tÓ Ð èMÖ/ÞÀÎ@תÉCÖ�� é�ë�ì¿Í�Ì ÐÁ�� �¤� � � x,� ���"$Mz�~�ym�3� x �M� ��� � ~��^��~ x �;z��?�Iz � �� � � �¤�}z��Qzl����� x,� ~Ú�;~)$���� x,�Ú� � x �>����� x �0$ � z�� x � x,� ~ �}z��Q����~?�~ x ~?�}� 5�z%$�2p��~);�� x,� ~0� ~)$ � �,y{z x �j~Ã���"$Mz�~�yz� � �M�;~)$�~0�>�Mz%$�� ~ x � $Mz%�"��$ x � x,� ~Ã���"$Mz�~@y � � �"�0;Kz x �c4�� 9 �"$Qz�~@y�>� x ��~)�Qz x ~)����� x ÙKû�ô�ó3õ;ûKú'ø�û�ùUð6�,�,�?���"$Mz�~@y���¥|�M�,z��{~)$MzJ�'�}y{��}� ������� x �M�,z*�M~@y{z3���"$Mz�~@yÚ� 9 � x ��z(2 ~0� � z � �¤� ��Iz�z �P~)�Mz%$%46���"$Qz�~@y�y�~)�>�M� � x,� �;~0��~ � zl�,�"$"�?�>���}�Kz�z>è�zl�>�J� x ���"$Qz�~@ym��2����"$Mz�~�ym�î~)$Mz �,�����'����~?�¤�}�«ê�z�~)�Mz x ë ������"$Qz�~@ycy�~)���Q� � x,� 4���;~)$��'� x,� µ @\¨1ÄÚ¨ f ¶ � �¤� �b� x � ~��>���;~�$��Iz�¨m� x �}��� x ��zK¥G�M�,z��?$>���T�a�%�>��$"$Qz x ��z�� � ¨ � �¤� ��;z(�>� x ���,y{z � ��~ x � �M�,z���zl�>� x � ���%�>��$"$Mz x ��z � �¤� �'�;z z�y{���I����z � ��$Mz3�����%�;~)$���� x,� � �¤�¤�á��z���z%$ � ��$My{z � �

w|x �Qz%$ � ~��7� x,� ���"$Mz�~@y�� � ���M� ~ x � x �����*�M�;~ x,x z��=��~ x ��z � � x z � ���M���M�,z � � x �>����� x ¥¦ ¸Ø¨ ·  ¢�½g�K°K¬��®��¡¢���¡  § Ä�ÄÓ�ÏÚË�ÌU�;â�Û�Ö�Ì�Ì9É@È Ó Ð â ÛÂÖ@×WÞÀÎ@תÉCÖ�� é�ë�ì¿Í�Ì Ð$Mz%�"��$ x � x,� ~Ã���"$Mz�~@yz� � �Q�;~)$�~��>�Mz%$�� � � ���Q�)~)$Qz+$Mz�~ � � $"�Kyz�Q�,z&�Q�;~ x,x z��ï~�$ � �,y{z x ��� k �,z{z x � � � �,�"$Mz�~@y� �¤�¤�f�>��� x �7� � z � ���M�Ã�M�,z=z x � � � �M�,z��,�}zj~��"�����7�F~��Mz � �"�+�M�,z��Q�;~ x,x z����

w|x �M�,z��Q~@y{z � ~?�K�Q� x z���~ x ��� �¤� � �M�,z(�M�;~�$�~0�>�Mz%$6���"$Qz�~@yY~0�"�,�a�7�P~)�Mz � �7��~(�M�;~)$�~0�>�Mz%$J���7$�� x,� �?�'� x,� ¥¦ ¸Ø¨ ·  ¢�½g�K°K¬��¸Ø¨ · ¯���81ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙºÓ Ð â�Û�ÖØ×WÞ,ÎØסÉCÖ��àé ë?ì,Í?Ì Ð¦§  @¨�¸ê«�¸@¨ ·  �¢�½b��°C¬?�¸@¨ · ¯���8 ¼�¢cb¡®¿¼ÂÄÄÞ Ïöâ ÛÂÖ@×�Þ,ÎØסÉKÖ��àé ëCÖ�ÜCÞÀÎ@× Ð

!X{��,!9�JI �EQ<N<&X.0U�8�.0N<&Y5".0�6*,5J��&6�9.05"`2.XQ<&)19 �"$Mz�~�y�z��,��$Mzl�"�'��� x �Ú~)$Mz^���,�,y(���"�Mz � �7� Ú¤ñ:�%ð�ô~Ø�ñ0Ú�ÔñKú!òüûKõ;��� � zK�A�M�,z��ê~�$Mzöz>èÂzl�>�,���Cz����©��� �¤� � � x �}� � �,z x$Mzl��� ��$Mz � � k � ���f���T�?�Iz � ���� x �M�;~)�G���î~?�¤��� � � � �0$T�M�,z�z�~0�I��y�~ x �}����P~)����� x � � ê�� x �Mz%$�~��>���}�Kz ë ���"$Mz�~@y��å����;Kz*�M�,z���"$Qz�~@y ��� �¤�.� � $"�Kyz�M�,z�����~ x � ~)$ � � x ������� w � �Q� ��� � ~0� x �0���Q�,zm��~0�IzK�ÿ� � zK�(� � ���"$Mz�~@y�� � z%$Qz��}y{y�z � �F~��Mz��}��>�Ky{��}z%�Mz��}���>�Ky{�����Mz � �~=��$"� � $�~@ytz��Ø~?���;~)��� x,� ê?¸@¨ ·  ¢ ½b��°C¬���®?�ª¢?��ª  § ¸Ø¨,£��À¯�� ë � �0�� � $Mz�~ � z��Kz%$M� �M� � x,��,�(�"�=~ x z x � !°� � !ü�,�}z6� x ����~ x � ~)$ � � x �����'��z � �0$Qz � ����� x,� �>� x �"$"�@�Q�7�J�M�,zT$Mzl�,��� � �Q�,z1��$"� � $�~@y �|ï���$"�M�,z%$Qy+�0$MzK��P~)5���z��Ø~Ø�.�;~������ x � � ���"$Mz�~�ym�î~?�¤��� � � � �0$J�Q�,z=y�~ x �}����P~)����� x � � � x � x ���Mzm���"$Qz�~@ym��� � ��~ x z��;~@y{��}zK� � z(��~ x��� �¤� � �Q�,z3� x � x ���Mz(���"$Mz�~�y-� � � x �Mz � z%$������?�'� x,� �'� � z�z>è�zl�>���T�7������ � ��$Mzl�7���Iz��}� � �,z x �>�Ky{������~������ x �T���%�>��$�¥¦§  @¨ ·  ® ¯��À¨�¸Q�@¬ · °?½a� «¦ µ @-½�¹�¾ · ¯��À¨��,¯��,¨\�%Ä�¾ · ¯��À¨��®��¡¢ · ù±ù Ä ¬ § ­¡¸���¸@¨À£���°�­,¨1Ä ��Ã�Ħ ¯��,¨�¸Q�@¬ · °?½ ¹��?�U�CÃ�� ¶ Ä�ÄË�ÌÂÎCÞQ�Kì×;Æ�� Ï Ë�Ì�Î Ó Ð Ë�ÌÂÎ/ÞÀÎ@תÉCÖ�� é�ë�ì¿Í�Ì Ð¦§  @¨�¯��,¨;¸a« ¯��,¨;¸ �ج · °�½��5Ä�ÄË�ÌÂÎCÞYÏöË�Ì�ΩÞÀÎ@סÉKÖ��ºéqëKÖÜCÞÀÎ@× Ðí z x �0������z��M�;~)� x �ö��$�� x ��� x,� �a�%�>��$7$Mz � ~ x � �M�;~)�(�M�,z ��$"� � $�~�y �Mz%$My� x ~��Mzl��¥+�Q� �����I��� � �*�M�;~�� x � x zm� ��M�,z�z��}z�y{z x �����;~?�Kz��;z�z x z��@~?���;~)�Mz � ~ x � �M�;~��J�M�,zn� x � x ���Mzm���7$Mz�~@y#�;~0� x �0�=�;z�z x ��� �¤����� í z � �¤�¤���Iz�zn� x�M�,z x z������Izl�>����� x �M�;~)�3�M�,zl�Iz+�'� � z%!!z>è�zl�>��� � �¤�¤�����%�>��$*� x � z�y ~ x � ����� zK� � �,z x �Qzl����� � �¤� �1��z x z�z � z � �� ~y�~)�>�M� � x,��� � x �>����� x � x ���"$Mz�~@y����

Page 68: Functional Programming Using Calm Light

�<�0P���PÃSgK�M6L=H3\ \^H3K�EGF`V�W(X±H3W��AI�H3M3SQL=M3S D �ÿoy þ,u z�ÿ�b��wĹ ¹�wTg�Gº��%��y w3�(» ��w6�g���T�g�k �,z��I� x ��~Ø� � �0$���� �¤� � � x,� ���"$Qz�~@ym����~ x �;z��?�Iz � � ��$��;~)�"�Qz%$ x !!y�~)���Q� � x,� �Ø�Cz%$��M�,z�y � � � � z��Kz%$?� �,�"$Mz�~@yy�~)�>�M� � x,� ���8y+�0$Mz��>�Ky����z����Q�;~ x �M�,z*�?���;~?�å�;~)�"�Mz%$ x y ~)���Q� � x,� �!X{��BIE�"! �EQ<N<&X.0U U�.)Q<3<;2*"(+-�*"8r12&X8�Q<N<`+3�Q<*J��&à¡z%�6�?�3����~�$"� � ���M� ~+�'�}y{��}z�z��¿~�y{��}zK¥¦§  @¨©�ª  ± ¨�«R¬C­�ª®@¨ª¯@°�� µ @-½ ± � ¶ ³�� ± ÄÄÌ9É Ñ Î�ÏqèMÖ/ÞÀÎ@תÉCÖ��tÓ Ð èMÖWé ë�ì¿Í?Ì Ðk �,z%�¡  ± ¨ � � x �>����� x $Mz%�"��$ x �f�M�,zr�?$����'z��}z�y{z x ��� � �����=�,�"$Mz�~@y�~)$ � �,y�z x ���K~ x � � ~�� ��� � � �M�,z3���"$Mz�~@yZ���5z�y{���I�ª¥¦§  @¨�¸ê« µ @ ½M�5ı½¤�ÂÄr½,��� ¶ Ä�ÄÞ ÏÚË�ÌÂÎaÞ,Î@תÉCÖ��àé ëCÖÜKÞ,ÎØ× Ð¦ �ª  ± ¨�¸åÄ�ÄÓ�ÏÚË�ÌÂÎq馲¦ �ª  ± ¨�¸åÄ�ÄÓ�ÏÚË�ÌÂÎqéW�¦ �ª  ± ¨�¸åÄ�ÄÓ�ÏÚË�ÌÂÎqé��¦ �ª  ± ¨�¸åÄ�Ä��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ïf�ªÖ@׿޿É���ì�ÖËKÈÍ�סÉí z���~ x ��z�z � $7�Ky �Q�,z ��$Mz����.���?��z��;~@y{��}zl���M�;~����M�,z����"$Mz�~@y��;~��"�Mz%$ x µ @ ½ ± � ¶ y�~����M�,zl�öñCõ òüõ;òüú!òPñ�Úó�ô�×�1jô?õ;úb� � �M�,zm���7$Mz�~@y � 9 �?�Q��~ �;~)�"�Mz%$ x y(�?���=�;z($Mz�~ � ~��+ê>�M�,z+���"$Mz�~�y � ��� �Iz �?$����=z��}z�y{z x �=y�~)���Q�,zl�± ë ��ï���$"�M�,z%$My��0$MzK��� x ��zm���"$Qz�~@yYy ~)���Q� � x,� �;~0�*���?�%��z�z � z � �|�M�,z+���"$Qz�~@y ~)$ � �,y�z x ���;~0���;z�z x ù?ÒQð?ó òüø�ñ0Ú�Ú�ð1�ûlÙKò Ð�ô>Ù�~ x ��� �zl� x �0�6�>� x ��~~� x ~ x �{��� x,� z%$6�M�,z=�;~)$"�`�M�;~)�î�;~0�ï�;z�z x $Qzl�>� �Kx ��5�z � ��m�Q�,z=�¡  ± ¨ � � x �>����� x �

w �9� zJ�>�Ky{z��;~0�7;+�"�n�M�,z6� x � x ���Mz(���"$Mz�~@y�� � � x �Mz � z%$���� � zÄ��~ x �Iz�z3�M�;~)�T�M�,z*��~?�¤���T�"�=�¡  ± ¨���$"�@�0�0;Cz6�M�,zz��Ø~Ø�.�;~������ x � � �M�,z x zl��zl�"�Q~)$M���;~)$"�T� � �M�,z(���"$Mz�~@yÚ¥¦ �ª  ± ¨�¯��À¨�¸åÄ��¡  ± ¨à¯��,¨;¸åÄ �ª  ± ¨�¯��À¨�¸åÄ�ÄÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ Ì�É Ñ ÎaË�ÌÂÎCÞg¾�Ì9É Ñ ÎqË�Ì�ÎKÞg¾ Ì�É Ñ ÎaË�ÌÂÎCÞg¾Q¾Ð�Ô�ÔÔ�ÔÔÔ�ÔÔ�ÔÕCÖØ×�ÌÂË�ÌÙ8ÏÚÎ�ÛÂËCÞ É Ñ Çª×¡É�Þ�Þ,Ë�Æ�ÌaÛÂÖCÞqÎl¿@Ç'ÉRË�Ì�ÎM�ÜCÍÀÎaËCÞqÍ�Þ;ÉCçêßËÎ�ÛºÎ~¿@ÇáÉãÍ?ÌÂËÎáæÅCÆ�Ç�È¿ÉCÊ,É@ÈqË�Ì�Ç�ÍÀÎ'ÏÐ Ì�É Ñ ÎaË�ÌÂÎCÞg¾�Ì9É Ñ ÎqË�Ì�ÎKÞg¾ Ì�É Ñ ÎaË�ÌÂÎCÞg¾Q¾Ð ÔÔÔ�ÔÔ�ÔÔÔ�ÔÕCÖØ×�ÌÂË�ÌÙ8ÏÚÎ�ÛÂËCÞ É Ñ Çª×¡É�Þ�Þ,Ë�Æ�ÌaÛÂÖCÞqÎl¿@Ç'ÉRË�Ì�ÎM�ÜCÍÀÎaËCÞqÍ�Þ;ÉCçêßËÎ�ÛºÎ~¿@ÇáÉãÍ?ÌÂËÎáæ²\���àÓ�ÏäË�Ì�Îaé/�

Page 69: Functional Programming Using Calm Light

D0¯ EfFJH3I*K�L�M4�<�0P SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3Sk � �?���0���?�%��zl�"�����CzJ��~?�¤���G�"�8�ª  ± ¨*$Mz�y+�@�Kz=�Q�,z1�?$>���'z��}z�y{z x �>�|� � �M�,z6���7$Mz�~@yZ� x ���¤�����'�;zl�>�Cy{zl�åz�y{���I�K� k �,z x ��¡  ± ¨ � ~~�¤��� � �,z x ~��,��:�}z � �"���M�,z{z�y���� �^���"$Mz�~�y �g�'� x ��zK�b� x �M�,z � z�� x �.�,�.� x � � �¡  ± ¨¡���M�,z%$Mzn��� x ���,�"$Mz�~@y�;~)�"�Qz%$ x �M�;~)�%y�~)�>�M�,zl�î~ x � x �����P~?�=�Iz � y�z x �6� � �M�,z=z�y���� �����"$Qz�~@y �

w �T���6� � �>�0��$��Iz �?�Q�7�'�}���z(�"�+�I��zl�7� � �^�Iz��Kz%$�~?�����7$Mz�~@yc�;~)�"�Mz%$ x �î~0��� x ¥¦§  @¨©�ª  ± ¨�«R¬C­�ª®@¨ª¯@°��¦ µ @©½ ± � ¶ ³�� ±¦%´aµ @�� ¶ ³�� · ¢,¯K¸ º¹�»,¢,¯ § ­ ·  q¼@ �½,¾,¨Á¼CÃ�ÄÄÌ9É Ñ Î�ÏqèMÖ/ÞÀÎ@תÉCÖ��tÓ Ð èMÖWé ë�ì¿Í?Ì Ð��~0��zl�î~)$Mz*�"$,��z � � x �"��$ x � � $"�Ky-�7�K�m�7�{�?�0�7�"�Ky �9 �7$Mz�~@y �;~)�"�Qz%$ x �>�Ky{��� x z x ����~)$Qz x �0��$Qzl���"$����>�Mz � �7�������0�Mz � �;~)�7�Mz%$ x �n2°� x �Mz x � z � �"��y�~)�>�M�¶�,�"$Mz�~@yz��}z�y{z x ���>4��¡��������~ x ��z ~Ø���,� � � x �>����� x ��~?�¤���2��>�0$"$Qzl�I�?� x � � x,� �"� x � x !°�Mz%$Qy(� x ~?������� x �M�,z � $�~@y�y�~)$3�Mz%$My(��!x �@��� � ��4��Tï�� x �>����� x ��~@�,��z�~)$�� x,� ~0�6���7$Mz�~@y��;~)�7�Mz%$ x �>�Ky{��� x z x ���3~�$Mz3� x �Mz x � z � �"��y�~)���Q�����,�?���"$Qz�~@ym�T� ��M�,z+���"$Qz�~@yY~)$ � �,y{z x �?¥T�M�,z���~)$Qz���~?�¤�}z � � x �M�,z�~0�>�"�;~?�=���"$Mz�~�y ~)$ � �,y{z x ���;~ x � �M�,z��ö~)$Mz � �@�¤��� � z � �� ~�;~)�"�Qz%$ x � � ���Q���I���0�� � y�~)���Q���M�,z($Mzl�,��.�3� � �M� ���*��~?�¤����ï��0$îz��;~@y{��}zK��� ��� z � z�� x z�~��;~)$���z%$J$Mzl�>� �Kx ��5>� x,�~ x � x z�y���� ���Izl���,z x ��z(� � �Q�;~)$�~0�>�Mz%$>� ù ¢ ù ¥¦§  @¨�¸� <���¢R«¦ §  @¨ ·  �®a¸ R�q«©¬C­��¡®@¨ª¯@°@�¦ µ @ ½ ù ¢ ù Ä ¸ R� § � ¶ ³�� ù ¢ ùÀ²² §¦ ´aµ @ � ¶ ³�� µ|¶¦ ¯�� ¬C­�ª®@¨ª¯@°�� µ @©½ ù ¢ ù Äö¸ R� § � ¶ ³�� ù ¢ ù,²�²I§ ÄÄÞ;É<¡��ÀÖ�Ï â Û�ÖØ×WÞ,ÎØסÉKÖ��ºÓ Ð â�Û�ÖØ×WÈ,ËKÞ,Îaé ë?ì,Í?Ì Ð� z^�?�Iz � �M�,z^$Mzl�>��$��'�}�Kz��}� � z�� x z � � � x �>����� x ¸ R��� x ��� � zÂ�M�,z����"$Mz�~@y �;~)�"�Qz%$ x � � �M�,zÚ�?$�����$"��}zK� k � ���� z�� x ������� x �I���0�� � ��z�$Mz�~ � ~0��¥

/ � � �Q�,z�,�"$Mz�~@y©��� x �0��z�y{���I� ~ x � � � �����ï�?$�����z��}z�y{z x �=y ~)���Q�,zl� ù ¢ ù �¡~@�,��}� ¸ R���"���M�,zn$Mzl���3� � �M�,z���"$Mz�~@yÚ�K�}z%� § �;zn�M�,z*$Mzl������3� � �M� ���J��~?�¤�á~ x � $Mz%�"��$ x ù ¢ ù,²² § �/ �0�M�,z%$ � ���IzK� � ~~�¤�=2'$�~~���Iz£¢�¢ · ¸�  �@¬;¢,¯ § ­ ·   4 ñ

~ x � ¸� <�+�I������ � ��z*$Mz�~ � � x �M�,zÄ�Q~@y{z � ~?��2�z��?��z����T�M�;~)��� �'� x ��z3�.�`$Mzl�>� �Kx ��5�zl�r�?�Q�7�'�}�����z�y���� ���Izl�0�,z x ��zl�� � ù ¢ ù �0��� x z��Kz%$ � ~~�¤���>4��àÂzl�"�T�K��z%$�~)����� x ~?�¤�}�K� � z���~ x $Mz�~ � ��� ~���¥6ê�~ x � x !!z�y{���I���Izl���,z x ��z�� � ù ¢ ù ����~)$"�>� � ���M�ö~ x ù ¢ ù �À~ x � ���� �@�¤�.� � z � ���~��?�Q�7�'�}�����z�y���� ���Izl���,z x ��z(� � ù ¢ ù �� x �0�M�,z%$%z��;~@y{��}z`�����M�,zJ$Qzl�>� �Kx ������� x � � ~ x � x !!z�y{���I�m�Izl���,z x ��z*� � ù ¢ ù � �@�¤��� � z � ���~ ù b ù ���0$î~ ù b ù

~?��� x zK¥¦§  @¨�¸� <���¢ �cb «a¬C­��¡®@¨ª¯@°@�¦ µ @a¸ R���¢ § ı½ ù b ù � ¶ ³�� §�¤1µ�ù b ùI¶¦%´aµ @©½ ù b ù � ¶ ³�� µ�ù b ùI¶ ÄÄÞ;É<¡��ÀÖ��,Ü Ï â�Û�ÖØ×WÞ,ÎØסÉCÖ��ºÓ Ð â�Û�Ö@×qÈ,ËCÞÀÎaé ë?ì,Í?Ì Ð� z%$MzK�0�K��z%$�~)����� x ~Ø� �}�K� � x ��z3~ x ù ¢ ù �;~��å�;z�z x $Mzl�>� �Kx ��5�z � �0�Q�,z%�?$����'y�~����M� � x,� $"��}zT���=�Q���Q�Iz x � � x � � ��$7�M�,z%$y(���Iy�~����M�÷2�z>���M�,z%$ � $"�Cy ¸ R����¢��0$ � $"�Ky �M�,z��P~0��� ù b ù 4 � �¤�¤�6$�~~���Iz�~r¢�¢ · ¸�  �  ·· ° · z��?��z�������� x �1~ x � �M�,z� ���@�}z �;~)$��'� x,�ö� �¤�¤� � ~~�¤��� À x �M�,z��0�M�,z%$ �;~ x � �|� � �M�,z �?$������Q�;~)$�~��>�Mz%$*��� x �0�{~ x ù ¢ ù �r¸� <����¢ � �¤� �3$�~~���Iz¢�¢ · ¸�  �@¬;¢,¯ § ­ ·  ,��~ x � �Q�,z��Izl�>� x � $7���z�2 µ @-½ ù b ù � ¶ ³��¥�����"4 � �¤� �å�;z��7$��}z � �

Page 70: Functional Programming Using Calm Light

�<�0P.�QPRIUH3M6H3\^L*K�L�MTV§¦UL2�AI�HJM3SQL�M3S D0ók � ��� ��z��;~������0$n�����I�� ����~?�6� � ��$Mz � ���>���}�Kz��;~)$��Iz%$>��� � $Qz � ���>�,���Cz��;~)$��'� x,� ���($Mzl�>��$��'�}�Kz%! � zl�7��z x �{�;~�$��'� x,�

� ���M�r� x zÚ���Q��;Q!�~@�,z�~ � �7�0;Kz x � w�x ���M�,z%$ � �0$ � ���î~Ý��$Mz � ���>���}�Kz �;~)$>�Iz%$�����~¶�Iz%��� � 2��?�Q�7�'�}����ay(���"�;~?�¤�}�$Mzl�>��$������Cz)4���$"����z � ��$Mzl��� � � ���M�ö~)$Mz��Iz��}zl�>�Mz � ~0�%�>�0$ � � x,� �"�+�M�,z��I�;~��;z�� � 2 ~���y��Q���%4G�M�,z��?$��,�6�"�0;Kz x �!X{��BIE�JI �¨&X©�`2&X(ªQ<*".05�«2*"(21+*"(2-/*,(\8�Q<N<&X.0U $2.XQ:Q<&XNA(+8Áf� x � � x,� ��� x ���"$Mz�~�y��;~)�"�Mz%$ x �|���%�>��$6�Izl���,z x ���P~?�¤�}�K��� x �>� x �"$�~���� � ���M�{� � x � � x,� �f� x $Mz � ��F~�$1�;~)�"�Qz%$ x ��� � � ���Q���~ x �;z��Q���0� � � �ï~��T�a�%�>��$7$�� x,� � x �;~)$�~?�¤�}z���� 9 �"$Mz�~@y y�~)���Q� � x,� ��� � �;~�$�~ x �Mz�z � �"�{��z��;z%$ � �0$Qy{z � � $"�Kyc�}z � ��"�n$�� � �Q�?� ï��0$1z��;~@y{��}zK���>�Ky{�����,� x,� �M�,z*���,y�� � �M�,z3z��}z�y{z x ����� � ~ x � x �Mz � z%$6���"$Qz�~@yx�>�0�� � �;z � z�� x z � ~0��¥¦§  @¨ ·  ®q¸@¨ ·  �¢�½b��¸?­�½/� «a¬C­��¡®@¨ª¯@°@�¦ µ @©½M�'Äa¹�¸@¨ ·  ¢ ½b��¸?­K½a��Ãݾ4� ¶ ³��ݾ¦%´aµ @©½ ± Äa¹�¸@¨ ·  ¢ ½b��¸?­K½Y¹���� ± Ãà ¾¬� ¶ ³��\¾¦%´aµ @�� ¶ ³����%ÄÄÞ,ÎØסÉKÖ�����ÞÍc� ÏöË�ÌÂÎ Ó Ð Ë�Ì�ÎaÞ,ÎØסÉCÖ��ºÓ Ð Ë�Ì�Îqé ë?ì,Í?Ì Ð¦ ¸Ø¨ ·  ¢�½g�¸�­K½ � µ @-½M�5Ä ½l�Âı½,�5Är½,¡5Är½�­®� ¶ Ä�ÄÓ�ÏÚË�ÌÂÎqéW�0²k �,zö¸@¨ ·  ¢ ½b��¸?­K½ � � x �>����� x �?�Izl�n����� �?$��,� ~�$ � �,y{z x �{~0�{~ x ~0�%�>�,y(��P~)�"�0${����� � � x,� �M�,z����,y �>�Cy{�����Mz ���� � ~)$�� k �,zm��~?�¤�j¹�¸@¨ ·  ¢ ½b�¸�­K½Y¹���� ± Ã�Ã��?�Izl� ± � � ���Q� � ~0�8�?��� x � � x �M�,zm���7$Mz�~@y#�;~)�"�Mz%$ x �>�Ky��?� x z x ����%�>��$"$�� x,� ~��6�M�,z��}z � �`� � �Q�,z���~?�¤� �

>4??ÈA@gÊJ@0CED ���"$Qz�~@ym�å�;~)�"�Qz%$ x �'~)$Mz%�}z � ~Ø�U� x �}�n� x �M�,z8¬K­�ª®@¨¡¯Ø°�� ~ x � ½�¢@¨;®?��>� x ���"$"�?�>����� k �,z §  @¨{~ x ��0�M�,z%$ � �0$Mym�î~�$Mz�$Mzl�,�"$����>�Mz � �"���?���;~?�'�;~)�"�Mz%$ x ���Jï���$7�M�,z%$My+�0$QzK�;~m�,�"$Mz�~@y#�;~)�"�Mz%$ x ��~ x,x �0�=~@�,��z�~)$6� x �'� � z~ x �0�Q�,z%$î�;~)�"�Mz%$ x �ÿoy þ,� µ¶w`�gw3¹���g�T�|�l¯=�T» �+w6�g���T�g�9 � x ��z)~Ý�;~�$��Iz%$���� ~ � � x �>����� x ����;Kz�~ x �«���M�,z%$ � � x �>�,�.� x �3������~ x �;z �;~)$�~@y{z%�Qz%$���5�z � �0$ �;z��?�Iz � ~0��~�;~)$�~�y{z%�Mz%$�� � ~)$�~@y{z%�Qz%$����?�Iz � � x ����� x �M�,zT$�� � � �"!!�;~ x � �'� � z6� � ���"$Mz�~@y�!!y�~)���Q� � x,� $"��}zl���'�}y���P~)�Qz òüõ�Òô�ð�òPú!ô>ÙñKú!ú!ð�ò é¤Ô�ú!ô�ó+� � ~)�"�7$��}�����Mz � $�~@y{y�~)$>��� � ~�$�~@y{z%�Mz%$>�(�?�Iz � ~��{�;~)$>�Iz%$��n� x ���"$Mz�~�y��;~)�7�Mz%$ x �{~?�¤��� ��� �0$��M�,z�}y{��}z�y{z x ��~)����� x � � Ò�ò�×)Ò�ô?ð§�IûKð�ÙKô�ðr�;~)$��Iz%$>��� í z � �¤�¤�g�?�IzJ�Q�,z x z��a�rz��¿~�y{��}z*�"�=y+�0���}�@~)�Mz3�M�,zT� x �7$"� � �?�>�,�.� x� � �;~)$�~@y�z%�Mz%$���5�z � �;~)$��Iz%$>���!X{�� ]��"! °²±+.0U�$25"&ª³²./$2.MNA8´&)NPS7ªN%.0N<*JQ<;2U�&6Q<*"3P&6±+$2N<&X8:8:*"79(28Árz � ��$Mz���� �¤� � � x,� ~Ú�;~)$>�Iz%$ � �0${~)$����M�,y{z%�,����z��,��$Mzl�"�'��� x ��� � z x z�z � ~ �}z�� ����~?� ~ x ~?�}� 5�z%${~@��}z��"��$Mzl�>� �Kx ��5�z~)$����M�,y�z%�����*�K��z%$�~)����� x �î~ x � � x �Qz � z%$J�>� x ����~ x �>���Gà¡z%�6�?�ï�?$���� � z�� x z{~(�I����z � �0$T�"��;Kz x ��¥¦ ¨�ÁC¾ª \¨,°<µ� ?�W«¦ ¢�¶A·Xa ´�¸X¹:º ·Xa ´�»)¹´¸ ¬¼a ´¾½)¹´¿ ´ ¶�¢ ú ( ´ (�¢ ú (¦%´P¹´º�» °K¬t¯��,¨1ÄÄŤ¿ØÇ'É©Î�Æ�ÀÂÉ ÌàçÀÉ?ì�Ë�Ì9ÉKç'æ9 ;����,� � x,� ��P~ x ;��I�;~���zl�T���%��z%$ � ��$My{z � ����M�,z�¸�¾¡¢®� ¸ � � x �>����� x � z�� x z � ~0��¥¦§  @¨ ·  ®q¸?¾ª¢®� ¸R«a¬C­��¡®Ø¨¡¯@°@�¦ µ @©½ ù±ù;´)ù ®Ø¨ ù;´)ù ®�� ù Ä ¸?¾ª¢®� ¸r��� ¶ ³��º¹?Ã

Page 71: Functional Programming Using Calm Light

��ô EfFJH3I*K�L�M4�<�0P¨SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3S¦%´aµ @�� ¶ ³�� ¹?Ã�Ä�ÄÞ�Ç9Ö,â�É�ÞYÏ â ÛÂÖ@×WÞÀÎ@תÉCÖ��tÓ Ð Í?ÌÂËÎaé ë?ì,Í?Ì Ðk �,z��>� x �Kz%$����.� x � � ~ � � � �.�n2��Q�;~)$�~0�>�Qz%$%4|� x �"�(������� x �Qz � z%$î�Ø~Ø�.�,zn��� � � x z ���¡¥¦§  @¨�¯��,¨?�K°C¬?�K£;¯~8¡¯�¨q«©¬K­�¡®Ø¨¡¯Ø°��¦ ù � ù ��� ù £ ù ¢¸q®q³��à¹�¯��,¨?�K°K¬��®��¡¢ · ®ÀÃ/³º¹�¯��,¨?�K°K¬��®��¡¢ · ù � ù æ%´ �a³�� · ¢,¯K¸ à¹�»¿¢À¯ § ­ ·   ¼��;°K¨�¢ê£�¯~8ª¯?¨Â¼CÃ�Ä�ÄË�ÌÂÎ��ÀÆ@ì��ÀçË�Ù�ËÎºÏ â ÛÂÖ@×�Ó Ð Ë�Ì�Îaé ë�ì¿Í?Ì Ðk �,z�êØ¢�¸ ë ;Cz�� � �0$ � ~?�¤��� � � � �0$ x ~@y(� x,� ~ �;~)�"�Qz%$ x ¥`� x �M� ������~0�IzK���Q�,zj�@~)$��P~@��}zÚ® � �¤�¤����z{�?�0� x � �"���M�,z~0�>�"�;~Ø� � � � ����y�~)���Q�,z � �� ù � ù ��� ù £ ù � � ~)�"�Mz%$ x ��� � ��� � ���M� ¢¸{~)$Mz*��~?�¤��z � ñ0Ú¤òüñ@ó%ùÀñCú!ú!ô�ð�õ,ó��ï��0$��Q�,zm$Mzl�>� �Kx ������� x � � � x �Mz � z%$���� � z�~?��$Mz�~ � � � z�z��6�M�,z x z�z � � �0$�~ �;~�$�~@y{z%�Mz%$,�.5�z � �;~)$���z%$�� w|x �Qz � z%$$Mzl�>� �Cx �.�,�.� x ��� � � x z3����M�,zj¯��,¨; )8;  · ~ x ~?�}� 5�z%$ � z�� x z � ��z��.� � � w �����%�;~)$�~@y�z%�Mz%$���5�z � ���~ x �,y{z%$������@~?���,z$Mz���$Mzl��z x ��� x,� �M�,z=�Ø~Ø�.�,z(� � �M�,z=�?$��,� � � � �����`� � �M�,z x �,yj��z%$�¥¦§  @¨ ·  ® ¯��À¨� �8�  · � «a¬C­�ª®@¨ª¯@°��¦ µ @©½ ù � ù ��� ù £ ù ¢¸a®9Äa¹�¯��À¨� )8;  · ¹��?�6Á?�j��¯��À¨���°C¬���£�¯l8¡¯?¨q®,Ã�à · � ¶ ³�� ·¦%´aµ @�� ¶ ³����%ÄÄË�ÌÂÎ,É�Ù9É?× ÏäË�Ì�ÎqÓ Ð â Û�ÖØ×WÞ,ÎØסÉKÖ��ºÓ Ð Ë�Ì�Îaé ë�ì¿Í?Ì Ð¦ ¯��,¨; )8�  · �c¹�¸@¨ ·  ¢ ½b�K°K¬���¸@¨ · ¯��a8�¼Q�~� ¡<­�qª¼CÃ�Ä�ÄÓ�ÏÚË�ÌÂÎqéW�c�ÃÂ�Ä tí z ~)$Qz x � � $Mz�~ � �o�"� � $����Mz��M�,z��}z��Q����~?��~ x ~?�}� 5�z%$�����~);�� x,� ~��,�"$Mz�~@y � � �Q�;~)$�~��>�Mz%$����'~ x � $Mz%�7��$ x � x,� ~���"$Qz�~@y � � �"�0;Kz x ��� } z%�"��$ x � x,� ~^�"��;Kz x ���"$Mz�~�y � � ���M� � �¤�¤���;zÚz��À����0$Qz � ��R�M�,zÚ�;~)$��Iz%$(��� ~¶����y����zK�$Mz�~0�,� x ~@��}��zÅ=��7��z x �=~ x � � x �"� �����}�Kz � ~?�+� � �>�Ky{���Q�'� x,� ~j��z�� ����~?�1~ x ~?�}�Q5�z%$=~ x � ~��;~�$��Iz%$��¦§  @¨ ·  ® §   ±   · ¸ê«Ý½�¢Ø¨�®?�ภ� ¯?¨K�¦ µ @©½ ù ¹ ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½Æ¶�¢ ú (1Ä §   ±   · ¸Ç� ¶¦%´aµ @©½ ù à ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½I(�¢ ú (1Ä §   ±   · ¸Ç� ¶¦%´aµ @©½ ù � ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½Æ¢�¶<·Xa'Ä §   ±   · ¸Ç� ¶¦%´aµ @©½ ù ³ ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½ ¸)¹´º ·Ãa5Ä §   ±   · ¸�� ¶¦%´aµ @©½ ù Á ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½ »)¹´¸ ¬¼a5Ä §   ±   · ¸�� ¶¦%´aµ @©½ ùlÈ|ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½ ½)¹´¿ Ä §   ±   · ¸�� ¶¦%´aµ @©½ ù � ù ��� ù £ ù ¢�¸a®åÄê¹?¯��,¨; )8�  · ¹?¯��,¨?�K°C¬?�K£;¯~8¡¯�¨W®ÀÃà ��Ä ¸?¾¡¢�® �¸r��� ¶¦ ³�� µ @-½ ¹:º�» �%Ä §   ±   · ¸�� ¶ ÄÄÈ;É Ñ É�× Ï â Û�ÖØ×WÞ,ÎØסÉKÖ��ºÓ Ð Î�Æ�ÀÂÉ Ì�ÞÀÎ@סÉKÖ��àé ë�ì¿Í?Ì Ðí z�~0�7���,y{z*�M�,z%$Mz���� x ���}z�~ � � x,� �I�;~0��z�� x �M�,z3� x �������<`� � �å�}z%���?��z��¿~�y(� x z��M�,z �F~ x,� �;~ � z��M�;~�� � z � ~ x �(�"��$Qzl�>� �Kx ��5�zK� í z��I�;~?�¤� �;~?�Kz�� x �Mz � z%$����G� x �,�~)$����M�,y�z%�����*�K��z%$�~)����� x �î~ x � �;~)$Mz x �M�,zl�'��5�z � z��À��$Mzl�7�'��� x ��� k �,z�ÁT<Jï � �0$My-� � �M�,z � $�~@y{y�~�$G����¥¬ ± ¾ · ²�² «r¬ ± ¾ · �r¬ ± ¾ ·

´ ¬ ± ¾ · ³«¬ ± ¾ ·´ ¬ ± ¾ · Á«¬ ± ¾ ·´ ¬ ± ¾ · È ¬ ± ¾ ·´ ¹Ã¬ ± ¾ · ôP¹:º�»

Page 72: Functional Programming Using Calm Light

�<�0P.�QP�IUH3M6H3\^L*K�L�MTV§¦UL2�AI�HJM3SQL�M3S �Qæk �,z=�@~?���,zl�J�>�Ky������Mz � �����M�,z=�;~)$��Iz%$ � �¤�¤�'�;z{ñQé ó ú!ðIñKø?úåócð@õ;ú!ñ�÷ ú!ðIô�ô�óT2���&�>� x �"$�~0��� � �.�Q� ø�ûKõ�ø�ðIô�ú!ô ócð@õ�ú!ñ@÷Ø�� � ���Q�����6�Q�,z3� x �����*���"$,� x,� �0$J���"$Qz�~@y�4�� 9 �?�Q���"$Mz�zl�ï�;z���� x,� �"�(�M�,z � �@�¤��� � � x,� �I����zK¥¦ ¨�ÁC¾ª a¢@¨ ·   ã«¦ ¹ �,¨q°K¬t¯��,¨¦%´ ¢ § ­¡¸ã°C¬�¢Ø¨ ·  � �Áa¢@¨ ·   ¦%´�¸ ¯��­ª¸R°C¬ ¢@¨ ·   �Áa¢Ø¨ ·  � ¦%´�¸ ­ § ¨/°C¬�¢Ø¨ ·  � �Áa¢@¨ ·   ¦%´�½ ¯ � °K¬ ¢Ø¨ ·   �Áq¢@¨ ·  � åÄÄŤ¿ØÇ'É©Ö�Î@תÉÉ©çÀÉ?ì�Ë�Ì9ÉKç'æk �,z(¬ ± ¾ · � $�~@y{y�~)$���� ~@y�� � � ���0�?��� k ��y�~);Cz*����� x ~@y�� � � ���0�?��� � z � �¤�¤�ï~ � �K���J�Q�,z+�?���;~?�'��$Mzl��z � z x ��zl�� �0$�~)$����M�,y{z%�,�����K��z%$�~)�"�0$>�3~ x � ~0�"���,y{z��M�;~)��~?�¤���C�;z%$�~)�7�0$��=~0�"�,�a�7�P~)�Mz(�"���Q�,z��}z � ����<6� � �b�"���?�Izm�,�"$Mz�~@yy�~)�>�M� � x,� � ��$��;~�$��'� x,� � � z�y��?�,�=��~);Cz6� x �"�{~0�%�>�0� x ���Q�,z � ~0�>�T�M�;~��1y�~)�>�M� � x,� $"��}zl�î~�$MzÄ�Q���Q�Iz x ~0�%�>�0$ � � x,��"�n�M�,z3��z��;~?�0���0$T� � �M�,z8�?$����T�>�Ky{�?� x z x �T� � z�~0�Q��y ~)���Q� � x,� $"��}zK� k � ���f���r��$Mz � ���>���}�Kz��;~�$��'� x,� ��~ x � �Q�?��� x,�� z��¤�.!°; x � �îx �Qzl�M� x �����,zl���G���(����z�~��I�¶�7��$Qz � $����Mz��M�,z � $�~@y�y�~)$j~��?�@�Kz�� x ���?�Q�R~ � ~?���M�;~�� � $������ x,� �M�,z�>�0$"$Qzl�I�?� x � � x,� ��$Mz � ���>���}�Kz��;~�$��Iz%$%�;zl�>�Ky�zl�6�"$,�����P~?��� k �,zl�Iz*�Mzl�Q� x �����,zl��~)$Mz � zl�"�>$��}�;z � � x ãåä)ç��,~ x � �>� x �'������ x ~ �,� � x,� ~ x � x !°�Mz%$Qy(� x ~?� � �0$îz�~0�Q����$Mzl��z � z x ��z �}z��Kz����ª~ x � $Mz�y+�@��� x,� ��z � �"!°$Mzl�>��$>�'��� x � í z*�K����~~� x ¥¬ ± ¾ · ²�² « ¸ ­ § ¨

´�¸ ­ § ¨±�r¬ ± ¾ ·´�¸ ­ § ¨�³«¬ ± ¾ ·

¸ ­ § ¨ ²�² « ú ¨À°?½´�ú ¨À°?½�Á ¸ ­ § ¨´�ú ¨À°?½ È/¸ ­ § ¨

ú ¨À°?½ ²�² « ¹:º�»´ ¹Ã¬ ± ¾ · Ã

í � �¤��z`$Mz�y+�@�0� x,� �}z � �"!°$Qzl�>��$��'��� x � � z � �0$ � �0�9~@���0������z � �1~0�"�,�a�7�P~)���}����� �n� � �K��z%$�~)�"�0$>��� k � ���b��� x �0�'~î��$7�K��}z�y �~0�r��� x,� ~0� � z=��� �¤� � �>�0$7$Mzl�>�3~@�?���7$�~0�>�T�"$Mz�zl���9 � x ��z+���"$Qz�~@yYy ~)���Q� � x,� �;~0�Izl�������*�Q���)����zl�3� x �M�,z �?$��,�Ä�>�Ky��?� x z x �J� � ���"$Mz�~@y �;~)�"�Mz%$ x ��� � z���~ x,x �0��Iz�zn�M�,z � $�~@y�y�~)$î~@�?�@�Kz�~0�î~��;~�$��Iz%$�� í z x z�z � ~ � ��$"�M�,z%$6�"$�~ x � � �0$My�~)�,�.� x � � ~0�>�"��$�� x,� �>�Ky{y+� x ��$Mz��,�Àzl�� �'� $�~@y�y�~)$=$7���zl��2!�}z � �"! � ~��>�"�0$%4�� í z*�C����~~� x ¥¬ ± ¾ · ²�² « ¸ ­ § ¨a(; ¸Ø¨ ¬ ± ¾ ·

(� ¸Ø¨ ¬ ± ¾ · ²² « � ¸ ­ § ¨a(� �¸@¨ ¬ ± ¾ ·´ ³ ¸ ­ § ¨a(� �¸@¨ ¬ ± ¾ ·´ ¹�Á\�;°K¨C��¯���8WÁÀÃ

¸ ­ § ¨ ²�² « ú ¨À°?½�(; ¸Ø¨ ¸ ­ § ¨(� ¸Ø¨ ¸ ­ § ¨ ²² «�Á ú ¨,°�½�(� �¸@¨ ¸ ­ § ¨

´PÈsú ¨,°�½�(� �¸@¨ ¸ ­ § ¨´ ¹�Á\�;°K¨C��¯���8WÁÀÃ

Page 73: Functional Programming Using Calm Light

��ä EfFJH3I*K�L�M4�<�0P¨SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3S

ú ¨À°?½ ²�² « ¹:º�»´ ¹Ã¬ ± ¾ · Ã

<`� � � � z+��~ x �Iz�z+�M� ��� � $�~�y{y�~)$=~0�=~��;~�$��Iz%$(2 x �0�Qz��Q�;~)�J�Q�,z+�0$ � z%$*� � $"��}zl�=��zl�>�Ky{zl���}y{�?�0$7��~ x ����~ x �z�y{���I� ��$"� � �?�>�,�.� x �îy(�?���3~��,�;z�~)$%�P~0�,�%4�� k �,z����;~@�;zn� � �M�,z �;~)$��Iz%$T����¥§  Ø¨ ·  �®q  ± ¾ · «

§  Ø¨ ·  ® ·  ¸Ø¨�  ± ¾ ·\É «a¬K­�¡®Ø¨¡¯Ø°��µ @©½�¢�¶A·Ãa5Ä�½¿­ § ¨ É Ä ·  �¸@¨;  ± ¾ ·WÉ � ¶ ³�� É

´aµ @©½ ¸)¹:º ·Xa'Ä{½¿­ § ¨ É Ä ·  ¸Ø¨�  ± ¾ ·WÉ � ¶ ³�� É´aµ @�� ¶ ³�� ɯ�� ¬K­�¡®Ø¨¡¯Ø°�� µ @�½¿­ § ¨� ��ÂÄ ·  �¸@¨�  ± ¾ ·ÇÉ � ¶ ³�� É

¢?�¿£Ý½¿­ § ¨ «§  Ø¨ ·  ® ·  ¸Ø¨@½,­ § ¨ É «a¬K­�¡®Ø¨¡¯Ø°��

µ @©½ »)¹:¸ ¬6a'Äö¢@¨À°?½ É Ä ·  ¸Ø¨@½¿­ § ¨ É � ¶ ³�� É´aµ @©½ ½)¹:¿ Ä ¢@¨,°�½ É Ä ·  ¸@¨Ø½¿­ § ¨ É � ¶ ³�� É´aµ @�� ¶ ³�� ɯ�� ¬K­�¡®Ø¨¡¯Ø°�� µ @q¢@¨À°?½t ��ÂÄ ·  �¸@¨@½,­ § ¨ É � ¶ ³�� É

¢?�¿£W¢@¨À°?½à«©¬K­�¡®Ø¨¡¯Ø°��µ @©½ ¹:º�» ��� ¶ ³�� ¹ �À¨©�

´aµ @©½�¶�¢ ú (rÄ�  ± ¾ ·  åÄr½ (�¢ ú (W� ¶ ³��W í z��?�Iz � ���,zl������� x y�~)$7;a� � �,z%$Mz1�;~)$�~@y{z%�Mz%$������ � x � � x,� �1~ x � $Mzl��������|�����¤�¤�;�;~��CzG�"�3~@�,��z�~)$��Gà¡z%�|�?���>� x ��� � z%$�M�,zÚ  ± ¾ · � � x �>�,�.� x ¥&�Q�}z�~)$����K�%~0�(��� � x ~0�� ?�����($Mzl�>� �Cx �.5�z � � � z�y(�?��� �;z�$Mz�~ � ���"�ö��� �¤� � �M�,z���z � �My+� ������,���"$Qz�z�� � �M�,zn$Mzl�������� k � ���8��z � �My+� ���J���,���"$Qz�z����8z>���M�,z%$*$Mzl���"$,���>�Qz � �7�� ���������z�� � ��� x ��~0�Iz ·  ¸Ø¨�  ± ¾ · � �zl�x �0�=z x �>�0� x �Mz%$�~ x ���C�;z%$�~)�7�0$����0$6���3���*�Q�,z��7$Mz�z($Mz���$Mzl�Iz x ��� x,� �M�,z�~ �,� ������� x 2p�0$*���,���"$�~0�>�,�.� x 46� �  ���~ x ��M�,z{z��,��$Mzl�"���.� x �}y{y{z � �P~)�Qz���� � �@�¤��� � � x,� �M�,z�~ �,� �����}�Kz��K�;z%$�~)�"�0$�� k �,z%$Mz � ��$MzK� ·  �¸@¨�  ± ¾ · y(�?���=�;zm��~Ø� �}z �� ���M�  ���~0��~ x � x �Mz%$My{z � �P~)�Mz($Mzl�,��.�?�ª~ x � ~0�%�>�,y(��P~)�Mz(���,���"$Mz�zl�8��� �¤��� � $"�Cy-������� x �Mz%$Qy{z � �P~)�Mz($Mzl����������M�,z�"$Mz�z(�>� x ���"$7�?�>�"�0$*�>�0$"$Mzl�I��� x � � x,� �"���M�,zn�K�;z%$�~��"�0$=~ x � �M�,z �F~����3z��,��$Mzl�"���.� x z x �>�0� x �Mz%$Mz � � k �,z��?� � ��� �  ± ¾ · ��zl�>�Ky{zl��¥§  Ø¨ ·  �®q  ± ¾ · «

§  Ø¨ ·  ® ·  ¸Ø¨�  ± ¾ ·  ?�\«©¬C­��¡®Ø¨¡¯@°@�µ @©½�¢�¶A·Ãa5Ä�½¿­ § ¨� ��5Ä ·  ¸Ø¨�  ± ¾ · ¹§¢ § ­¡¸à¹� ?��Ê� 0�;Ãé �� ¶ ³��q 

´aµ @©½ ¸)¹:º ·Xa'Ä{½¿­ § ¨� 0�'Ä ·  �¸@¨�  ± ¾ · ¹ ¸ ¯��­ª¸à¹� ���Ê� 0��Ã�é �� ¶ ³��q ´aµ @�� ¶ ³��q ?�

¯�� ¬K­�¡®Ø¨¡¯Ø°�� µ @�½¿­ § ¨� ��ÂÄê¹ ·  ¸@¨;  ± ¾ ·  ?�CÃa ��Ç� ¶ ³��q ��<`� � �  ± ¾ · $Qzl�>� �Kx ��5�zl�1~���$"� � �?�>�% ?�32���î½,­ § ¨?4��K~ x � ~��,��:�}zl� ¹ ·  �¸@¨�  ± ¾ ·  ?�KÃT�7�*�M�,zT$Mzl���|� � �M�,z6���7$Mz�~@y �� �%�>�0$ � � x,� �"���M�,z{~ �,� �����}�Kz+�C�;z%$�~)�7�0$3z x �>��� x �Mz%$Qz � 2°� � ~ x ��4��?�Q� ��� � � x �>����� x � � �¤�î~@�,��}��½¿­ § ¨ � � ���Q� � �¤� �$Mz%�"��$ x ���Ky{z� 0�;� k �,z x �M�,z=��$"����zl�"�6�>� x ��� x �,zl� � ���M�r¢ § ­ª¸�¹� ?��Ê� 0�;Ã=~0��� x �Mz%$My�z � �F~��Mz�$Mzl�,��.�?� w�x �M�,z=z x � �~+�>�0$7$Mzl�>�I�}���;~Ø�F~ x ��z � �7$Mz�z � �¤�¤�á��z=��$"� � �?��z � 2p�?��� x,� �M�,z=�P~0���`$"��}z�� � ·  ¸@¨;  ± ¾ · 4��

í ���M���M�,z��Q~@y{z��>� x �'� � z%$�~������ x �6� x ½,­ § ¨�~ x � ·  �¸@¨@½,­ § ¨¡� � z���~ x �>�Ky{��}z%�Mzn�M�,z��;~)$>�Iz%$�� �K����~~� x � x,� ¥

Page 74: Functional Programming Using Calm Light

�<�0P.�QPRIUH3M6H3\^L*K�L�MTV§¦UL2�AI�HJM3SQL�M3S �´H

¦§  @¨ ·  ®q  ± ¾ · «¦ §  @¨ ·  �® ·  �¸@¨;  ± ¾ ·  ?�\«©¬K­�ª®@¨¡¯Ø°��¦ µ @ ½Æ¢�¶<·Xa'Ä{½¿­ § ¨� 0�'ÄR¹ ·  ¸@¨;  ± ¾ · ¹§¢ § ­ª¸à¹� ���Ê� 0��Ã�Ãé  � ¶ ³��q ¦ ´aµ @ ½ ¸)¹´º ·Ãa5Ä{½,­ § ¨� ��5ÄR¹ ·  ¸Ø¨�  ± ¾ · ¹ ¸ ¯��­ª¸à¹� ���Ê� ���Ã�ÃÃ\ Ç� ¶ ³��a ¦ ´aµ @ � ¶ ³��q ?�¦ ¯��q¬C­��¡®Ø¨¡¯@°@� µ @�½,­ § ¨  ?�ÂÄê¹ ·  ¸Ø¨�  ± ¾ ·  ?�KÃa 0�Ç� ¶ ³��a 0�¦¦ ¢��;£Ý½,­ § ¨�«¦ §  @¨ ·  �® ·  �¸@¨Ø½¿­ § ¨� ?�\«©¬K­�ª®@¨¡¯Ø°��¦ µ @ ½ »)¹´¸ ¬¼a5Äö¢Ø¨,°?½c ��5ÄR¹ ·  ¸Ø¨@½,­ § ¨ ¹ ¸ ­ § ¨�¹� ?�0Ê� 0�;ÃÃ�Ãã �� ¶ ³��a ¦ ´aµ @ ½ ½)¹´¿ Ä ¢@¨À°?½t ��5ÄR¹ ·  �¸@¨@½,­ § ¨�¹ ½ ¯ � ¹� ?��Ê� 0�;ÃÃÃR Ç� ¶ ³��q ¦ ´aµ @ � ¶ ³��q ?�¦ ¯��q¬C­��¡®Ø¨¡¯@°@� µ @q¢Ø¨,°?½à ?�ÂÄê¹ ·  ¸Ø¨@½,­ § ¨q ?�KÃa 0�Ç� ¶ ³��a 0�¦¦ ¢��;£W¢Ø¨,°�½t«R¬C­�ª®@¨ª¯@°��¦ µ @©½ ¹´º�» �¬� ¶ ³�� ¹ �À¨/�¦%´aµ @©½Æ¶�¢ ú (1Äö  ± ¾ ·  åÄ ½I(�¢ ú (W� ¶ ³��a 9ÄÄÉ Ñ Ç¡× ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì Ð�¡Í�È,Î�ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì ÐÖÎ�Æ�� ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì Ð� x � � z���~ x�x � � �"$M���0��$î�;~)$���z%$�¥¦   ± ¾ · ¹ §   ±   · ¹�¸Ø¨ ·  ¢�½g�K°K¬��¸Ø¨ · ¯���8 ¼�¹��~�Q� � ¡6Á:­ªÃC³0qQý ¢ª¼CÃÃ�ÄÄÓ�ÏÚÖÎØסÉ�É/éÌË¡Ë�̪ÍÞ �,�;ÈÍ�Þ-�,�;ÈÍÞî��Í?ÌÂÎ��)��Í�Ì�ÎY� � �LË�Í�È,Ω�§Í?Ì�Î/Â9��Í?ÌÂÎ�Ä �Q� ��Í?ÌÂÎst�¥XÎ �!X{�� ]��JI ϲ.0N<.0U�&6Q<&)N<8r8:*"U/`25".)Q<*"(2-Y*"(+;2&XN<*BQ<&X1�.)Q:Q<N<*"«2`�Q<&X8w�x �M�,zî��$Mz������0�?�'z��;~@y{��}zK� �M�,zî�;~)$>�Iz%$�� ·  �¸@¨;  ± ¾ · ~ x � ·  �¸@¨Ø½¿­ § ¨*��~�;Kzî~ x ~@�?���7$�~0�>�G�I� x ��~?�(�"$Mz�z= ?�î~��'~)$"!� �,y{z x �1~ x � �;~��"�|��� � � �îx �"�*�Q�,z6$Mzl������=�Q��$"�0� � �($Mzl�>��$������CzÄ��~?�¤���=�,�?�M��~���¹ ·  ¸Ø¨�  ± ¾ · ¹�¢ § ­¡¸Â¹� ���Ê� ���Ã�ÃÃ�w!�å� z3�Iz�zJ���?�Q���;~�$��Iz%$��r~0� x � x !°�Qz%$My(� x ~?���`2�(; ¸@¨Q¬ ± ¾ · � $"�KyA�Q�,z � $�~@y{y�~)$1~��?�@�Kz)4g�M� ���r�;~)$�~@y�z%�Mz%$�~0�>�>�'~0�~ x � x �,z%$����Mz � ~)�"�"$��}�����Mz*� � �M�,z x � x !°�Mz%$Qy(� x ~?��� 9 � x �Q�,zl�'��5�z � ~��"�"$��}�����Mzl�%~)$Mz�����y(��P~)�Mz � ����M�,z*$�� � � �î�;~ x ��'� � zl�`� � �,�"$Mz�~@ycy�~)�>�M� � x,� $"��}zl���!X{�� ]��^] ÐÌ*,-9;+&)N:ÑÒ7ªN<1+&)Nr$+.0N<8:&XN<8w�x �M�,z � z�� x ������� x � �   ± ¾ · � � z�y�~?� x �0������z��M�;~)�(�M�,z��;~�$��Iz%$��   ± ¾ · ~ x � ½,­ § ¨o� x �M�,z�� x z��;~ x � ~ x �·  �¸@¨;  ± ¾ · ~ x � ·  ¸Ø¨@½,­ § ¨�� x �M�,z+�0�Q�,z%$��;~ x � �;~?�Kz{z��;~0�>�I�}���M�,zm�Q~@y{zm���7$"�?�>�"��$MzK� k � z�y��,�;~0�'��5�z��M� ����'�}y(�¤�P~)$����I�K��� �1� z � z�� x z��;~�$��Iz%$�� � �0$3~ �,� �.�,���Cz+2p$Mzl�����9y(������}�������~)���}�Kz)4J�C�;z%$�~)�7�0$��r���¡¥¦§  @¨�¢�££�°�¾ «a¬C­��¡®Ø¨¡¯@°@�¦ µ @©½Æ¢�¶A·Xa�� ¶ ³��º¹Q¬K­�ª®@¨¡¯Ø°�� ¹ ± ÊIÁ¡ÃR³��/¢ § ­¡¸�¹ ± Ê Á¡Ãæ%´aµ @©½ ¸X¹:º ·ÃaÇ� ¶ ³��à¹Q¬K­�¡®Ø¨¡¯Ø°��Y¹ ± ÊIÁªÃ©³�� ¸ ¯��­ª¸�¹ ± ÊIÁªÃæ ¢��;£Ý½,­ § ¨,°�¾W«/¬K­�ª®@¨¡¯Ø°��¦ µ @©½ »X¹:¸ ¬¼aÇ� ¶ ³��à¹Q¬K­�¡®Ø¨¡¯Ø°��Y¹ ± ÊIÁªÃ©³�� ¸ ­ § ¨á¹ ± ÊIÁ¡Ã�æ%´aµ @©½ ½X¹:¿ � ¶ ³��º¹Q¬C­��¡®Ø¨¡¯@°@��¹ ± Ê Á¡Ã©³�� ½ ¯ � ¹ ± Ê Á¡Ã�Ã�ÄÄ

Page 75: Functional Programming Using Calm Light

�ct EfFJH3I*K�L�M4�<�0P SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3SÖç�çÆ�Ç ÏöÎÆ�ÀÂÉ Ì�ÞÀÎ@תÉCÖ��tÓ Ð ÖÎØסÉÉ/ÓWÖ�Î@תÉÉaÓ Ð ÖÎØסÉÉaéqë�ì¿Í�Ì Ð�¡Í�È,Î�Æ�Ç ÏöÎÆcÀ�É�Ì�Þ,ÎØסÉCÖ��ºÓ Ð Ö�Î@סÉ�É�ÓaÖ�Î@סÉ�ÉqÓ Ð Ö�Î@סÉ�É©é ë?ì,Í?Ì Ð� z���~ x $Mz � $,�.�Qz��M�,z�  ± ¾ · �;~)$>�Iz%$3~0��¥¦§  @¨ ·  ®q  ± ¾ · «¦ §  @¨ ·  �® ·  �¸@¨;  ± ¾ ·  ?�\«©¬K­�ª®@¨¡¯Ø°��¦ µ @ê¢K££�°�¾ ¬rÄ ½¿­ § ¨� 0�'Äê¹ ·  �¸@¨;  ± ¾ · ¹Q¬ ¹� ?�0Ê� ���ÃÃ�é �� ¶ ³��q ¦ ´aµ @ � ¶ ³��q ?�¦ ¯��q¬C­��¡®Ø¨¡¯@°@� µ @�½,­ § ¨  ?�ÂÄê¹ ·  ¸Ø¨�  ± ¾ ·  ?�KÃa 0�Ç� ¶ ³��a 0�¦¦ ¢��;£Ý½,­ § ¨�«¦ §  @¨ ·  �® ·  �¸@¨Ø½¿­ § ¨� ?�\«©¬K­�ª®@¨¡¯Ø°��¦ µ @使­ § ¨,°@¾q¬rÄ ¢@¨À°?½t ��5Äê¹ ·  ¸Ø¨@½¿­ § ¨º¹Q¬Y¹� ���Ê� 0��Ã�Ãé  � ¶ ³��q ¦ ´aµ @ � ¶ ³��q ?�¦ ¯��q¬C­��¡®Ø¨¡¯@°@� µ @q¢Ø¨,°?½à ?�ÂÄê¹ ·  ¸Ø¨@½,­ § ¨q ?�KÃa 0�Ç� ¶ ³��a 0�¦¦ ¢��;£W¢Ø¨,°�½t«R¬C­�ª®@¨ª¯@°��¦ µ @©½ ¹´º�» �¬� ¶ ³�� ¹ �À¨/�¦%´aµ @©½Æ¶�¢ ú (1Äö  ± ¾ ·  åÄ ½I(�¢ ú (W� ¶ ³��a 9ÄÄÉ Ñ Ç¡× ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì Ð�¡Í�È,Î�ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì ÐÖÎ�Æ�� ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì Ð<`� � � � z*��~);Kz�~ � �@~ x ��~ � z3� � �M�,zl�Iz�����y� �P~)$,�.�,��zl�Ä� x �0$ � z%$`�"� � z�� x z{~ � z x z%$�~Ø�9�;~)$��Iz%$ � �0$ï��z � �"!�~0�7���a�7�P~)�,���Cz�K��z%$�~)�"�0$>��� w ��� x ~@y{z`��� §  Ø¬¨?�¢¸�¸K°,®�~ x � ���%�;~�$�~@y{z%�Mz%$,�.5�z � �� ~ �;~)$���z%$ � �0$T�K��z%$�~)�"�0$>�1~ x � ~ �;~)$���z%$ � �0$z��,��$Mzl�"�'��� x ��¥¦§  @¨ ·  ® §  Ø¬¨?�¢¸�¸K°,®\°@¾�¨;  · ½�«¦ §  @¨ ·  �® ·  �¸@¨� ?��«/¬K­�ª®@¨¡¯Ø°��¦ µ @ã°�¾ ¬rÄ ¨�  · ½t ��5ÄR¹ ·  �¸@¨�¹M¬#¹� ?�0Ê� 0�;ÃÃ�é �� ¶ ³��W ¦ ´aµ @ � ¶ ³��q ?�¦ ¯�� ¬C­�ª®@¨ª¯@°�� µ @\¨;  · ½c ��ÂÄR¹ ·  ¸Ø¨� ?�KÃa 0�Ç� ¶ ³��a 0�'ÄÄÈ;É�ì�Î0�,ÖCÞ�Þ,ÆÀâtÏ�ÀèQÖ©ÞÀÎ@תÉCÖ��tÓ Ð èQÜ�Ó�èMÜ�Ó Ð èQÜ � Ó Ð �ÀèQÖaÞ,ÎØסÉCÖ��ºÓ Ð èMÜ � Ó Ð èMÖ©Þ,ÎØסÉKÖ��ºÓ Ð èMÜaé ë?ì,Í?Ì Ð<`� � � � z���~ x $Qz � z�� x z�  ± ¾ · ~���¥¦§  @¨ ·  ®q  ± ¾ · ¸Ø¨ · « §  @¬¨?�¢�¸¸K°,®a¢K£�£°@¾R½¿­ § ¨�¸Ø¨ ·¦ ¢��;£Ý½,­ § ¨ ¸Ø¨ · « §  @¬¨?�¢�¸¸K°,®ö½,­ § ¨,°�¾ ¢@¨,°�½c¸@¨ ·¦ ¢��;£W¢Ø¨,°�½t«R¬C­�ª®@¨ª¯@°��¦ µ @©½ ¹´º�» �¬� ¶ ³�� ¹ �À¨/�¦%´aµ @©½Æ¶�¢ ú (1Äö  ± ¾ ·  åÄ ½I(�¢ ú (W� ¶ ³��a 9ÄÄÉ Ñ Ç¡× ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì Ð�¡Í�È,Î�ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì ÐÖÎ�Æ�� ÏöÎ�Æ�À�É�Ì�Þ,ÎØסÉKÖ��ºÓ Ð Ö�Î@תÉÉ©é ë?ì,Í?Ì Ð� x � � z���~ x�x � � �"$M���0��$ � z�� x �����}�Kz��;~)$��Iz%$?¥

Page 76: Functional Programming Using Calm Light

�<�0P.�QP�IUH3M6H3\^L*K�L�MTV§¦UL2�AI�HJM3SQL�M3S ��C¦   ± ¾ · ¹ §   ±   · ¹�¸Ø¨ ·  ¢�½g�K°K¬��¸Ø¨ · ¯���8 ¼�¹��~�Q� � ¡6Á:­ªÃC³0qQý ¢ª¼CÃÃ�ÄÄÓ�ÏÚÖÎØסÉ�É/éÌË¡Ë�̪ÍÞ �,�;ÈÍ�Þ-�,�;ÈÍÞî��Í?ÌÂÎ��)��Í�Ì�ÎY� � �LË�Í�È,Ω�§Í?Ì�Î/Â9��Í?ÌÂÎ�Ä �Q� ��Í?ÌÂÎst�¥XÎ �� ~)$�~�y{z%�Mz%$���5�z � �;~)$���z%$��%~)$Mz3�?�Iz � �� � �0$ � z�� x � x,� � z x z%$�~?���;~)$���z%$��T���?�M� ~�� §  @¬�¨���¢¸¸�°¿®*�M�;~)�6��~ x �;z*�?��z �� ���M� � �:è�z%$Mz x �T� x ����~ x ��zl��� � x �0�M�,z%$8z��¿~@y����zn� � ~��?��z � �� � z x z%$�~?���;~)$>�Iz%$T���6�Q�,z�¸Ø¨�¢ · �;~)$���z%$ � z�� x z � ~0��¥¦§  @¨ ·  ®q¸@¨;¢ · ¾ «a¬C­��¡®Ø¨¡¯@°@�¦ µ @ݾ ± ÄR¹�¸@¨�¢ · ¾�à § � ¶ ³�� ±%²�²I§¦%´aµ @�� ¶ ³�� µ|¶ Ä�ÄÞ,Î�Ö@× Ïr�ÀèQÖ©ÞÀÎ@סÉKÖ�� Ó Ð èQÜ � Ó Ð èQÖaÞ,ÎØסÉKÖ��ºÓ Ð èQÜaÈ,ËKÞ,Îaé ë�ì¿Í?Ì Ðk �,z�¸@¨;¢ · �;~)$>�Iz%$��.�Qz%$�~)�Mzl��5�z%$"�+��$�y��0$Mz3���}y{zl�������%~)$ � �,y�z x �r¾ ~ x � $Qz%�"��$ x �T�M�,z8�������J� � $Mzl���������� í z������¤�¤��;~?�Kz(�"� �;zm��~)$Qz � ��|� x �?�'� x,� �M�,zl��z � z x z%$�~?�1�;~)$���z%$��î��zl��~)�?�Iz+� � �M�,z���$Mz � ���>���}�Kz x ~)�"��$Mzn� � �;~�$��'� x,� �(ï��0$z��;~@y{��}zK��¸Ø¨�¢ · ¾ � �¤�¤� x z��Kz%$T���?�%��zl�"� � ��¤�}�m�Mz%$Qy(� x ~)�MzT� � ¾{�;~0�'~*$"��}z � ��$G�M�,zîz�y{���I���,�"$Mz�~@y��;~)�7�Mz%$ x ¥|�M� ���$"��}z � � �¤�'y�~);Kz*�Q�,z��Izl�>� x � $7���zn� � ¸@¨;¢ · �?�Iz��}zl�"�%ª!X{�� ]��^� °²±+.0U�$25"&ª³²$+.0N<8:*"(2-�./(+7ª(43679(9Q<&ñ�Q´ÑÅS§N<&X&n5".0(+-9`2.0-9&� �{~ x z��;~@y{��}z^� � �;~)$���� x,�Ý� ���M�©�;~)$�~@y{z%�Qz%$���5�z � �;~)$��Iz%$���� � z��I�;~?�¤�=��� �¤� � ~ö�;~�$��Iz%$ � �0$(�M�,z��P~ x,� �;~ � zÔ´Õ�Ö²Õ¬×ÃÕ�Ø 2�Ù ×ÛÚ 4�Ü�Ý�� � � ���M�Ö���6; x � �îx �"�{��z x � x �>� x �Mz����"! � $Mz�zK�ïb��$��,���C��z%�3�?� � z�� x z�~(�I����z � �0$T�M� ���3~?�}�,�;~@��z%��¥¦ ¨�ÁC¾ª \¨,°<µ� ?�W« ú ´�Þ ´rß Ä�ÄŤ¿ØÇ'É©Î�Æ�ÀÂÉ ÌàçÀÉ?ì�Ë�Ì9ÉKç'æà �}�Kz x ~ x � x �����J� � �M�,z � �0$My Õ ß Õ ���M�,z3� � z�~ � ��$ï~ �;~)$��Iz%$6$Qzl�>� �Kx ��5>� x,� �.������¥

/ �?$������)�"�n$Mzl�>� �Kx ��5�z3�M�,zJ�Izl���,z x ��z Õ � ���M��~ �;~)$��Iz%$ � £�2 � �0$6Õ'ûKð�Ù+ÙKôÑÐ�õ�òPú!òüûKõ�4g$Qz%�"��$ x � x,� � x� �0$My ~)����� x� x �0$ � z%$6�7�j��� �¤� � ~��;~)$���z%$6$Mzl�>� �Kx ��5>� x,� � x �}� Õ ñ/ �M�,z x �"�+$Mzl�>� �Kx ��5�z ß ñ/ ~ x � �"�+�?�Iz*�Q�,z=�;~)$��Iz%$î��� �¤����~)�T�M�,z �?$����J���Qz����"�($Mzl�>� �Kx ��5�z��Q�,z��Izl���,z x ��z Õ �

k �,z � z�� x ������� x � � � £���3~�� � ��� ��� � ��¥¦§  @¨ ·  ® � £ê«/¬K­�ª®@¨¡¯Ø°��¦ µ @©½ ú Ä � £ § � ¶ ³�� ¹Q¬C­��¡®Ø¨¡¯@°@� µ @ ½ ú � ¶ ³��W¼�¢;¼Kà ²�²I§¦%´aµ @©½ Þ Ä � £ § � ¶ ³�� ¹Q¬C­��¡®Ø¨¡¯@°@� µ @ ½ Þ � ¶ ³��W¼Òb9¼Kà ²�²I§¦%´aµ @�� ¶ ³�� µ|¶ Ä�ÄßçYÏÚÎ�Æ�ÀÂÉ Ì�ÞÀÎ@סÉKÖ�� Ó Ð ��ÎÆcÀ�É�Ì�Þ,ÎØסÉCÖ��ºÓ Ð ÞÀÎ@×�Ë�ÌÙ � È,ËKÞ,Îaé ë?ì,Í?Ì Ðk �,z � ­ � � x �>����� x 2 � ��$�Õ'ûKð�ÙmÔCó�ñl×Kô¤41��� �¤� � �=~ �;~)$��Iz%$J��zl�0�,z x �7� x,� ~ �������3� � �;~�$��Iz%$���¥¦§  @¨ ·  ® � ­W«/¬K­�ª®@¨¡¯Ø°��¦ ¾ ²² ¾ § ³�� ¹Q¬C­��¡®Ø¨¡¯@°@� µ @\¾ ± Äê¹ � ­ê¾ § à § � ¶ ³�� ±0áا æ%´aµ�¶ ³��º¹Q¬K­�ª®@¨¡¯Ø°�� µ @�� ¶ ³�� ¼¼KÃ�ÄÄßCÍ Ïs�ÀèQÖaÞ,ÎØסÉKÖ��ºÓ Ð Þ,ÎØ×�Ë�Ì�Ù � ÈÀËCÞÀÎ�Ó Ð èQÖaÞÀÎ@סÉKÖ��ºÓ Ð Þ,ÎØ×�Ë�ÌÙàé ë?ì,Í?Ì Ðk �,z � ­ � � x �>����� x ��� � � � ��� � $"�Ky#~=�������3� � �;~)$��Iz%$��ãâ6ä � � �0$'åãæjæ<çèç�é9�,~(�'� x,� �}z��;~)$��Iz%$

Page 77: Functional Programming Using Calm Light

��D EfFJH3I*K�L�M4�<�0P¨SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3S¬C­��¡®Ø¨¡¯@°@� µ @ÒâXê�ëXê�Ä�çcç�çKÄJâ6ì}ëÃì6� ¶ ³�� µ ë)ê,Ä�çcç�çKħë6ì ¶

� � ���Q�����6�Q�,z��Izl�0�,z x �7� x,� � � �;~)$���z%$���â6ä � k �,z�y�~�� x �;~�$��Iz%$ � ����¥¦§  @¨ � «a¬C­��¡®Ø¨¡¯@°@� µ @ � £ § Är½ ß Äê¹ � ­ § à · � ¶ ³�� · Ä�ÄßYÏÚÎÆcÀ�É�ÌtÞÀÎ@תÉCÖ��tÓ Ð ÞÀÎ@×�Ë�ÌÙàé ë�ì¿Í?Ì Ð¦ � µ @©½ ú Ħ½ Þ Är½ Þ Ä±½ ß Är½ ú Är½ Þ Ä±½ Þ � ¶ ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙà驧�Ö�ÜÜg§¦ � µ @©½ ß � ¶ ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙà驧 §w|x �M�,z ��$Qz��0���0�?���;~�$��Iz%$�� � z��?�Iz � ~ x � x �Mz%$My{z � �P~)�Qz��������+� � �;~)$��Iz%$>�n� x �0$ � z%$��"�ö��� � � � �M�,z��Izl�>� x �

�;~)$���z%$�� í z���~ x $Qz � z�� x z � £ � ���M�������J�?�'� x,� �,�?�M�ö~ �����,��¥¦§  @¨ � «¦ §  @¨ ·  �® � £ ��· «a¬C­�ª®@¨ª¯@°��¦ µ @ ½ ú Äê¹ � £c¹M¬C­�ª®@¨ª¯@°�� µ @ ��·W· ı½ ú � ¶ ³�� · á ¼�¢¿¼CÃà ¾�� ¶ ³��ݾ¦ ´aµ @ ½ Þ Äê¹ � £c¹M¬C­�ª®@¨ª¯@°�� µ @ ��·W· ı½ Þ � ¶ ³�� · á ¼Òb�¼CÃà ¾�� ¶ ³��ݾ¦ ´aµ @ � ¶ ³�� �·¦ ¯�� ¬C­�ª®@¨ª¯@°�� µ @๠� £�¹Q¬K­�¡®Ø¨¡¯Ø°�� µ @�� ¶ ³��W¼¼CÃ�à ¾%ı½ ß Ä ¾à¸@¨ · � ¶ ³��W¸Ø¨ · ÄÄßYÏÚÎÆcÀ�É�ÌtÞÀÎ@תÉCÖ��tÓ Ð ÞÀÎ@×�Ë�ÌÙàé ë�ì¿Í?Ì Ð¦ � µ @©½ ú Ħ½ Þ Är½ Þ Ä±½ ß Är½ ú Är½ Þ Ä±½ Þ � ¶ ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙà驧�Ö�ÜÜg§¦ � µ @©½ ß � ¶ ÄÄÓ�Ï Þ,ÎØ×�Ë�ÌÙà驧 §� z%$MzK� � £���8y�~ � z ���a��~?�|�"� � �;~ x � ��~);Kzl�î~0�ï�;~)$�~@y{z%�Qz%$ ��· 2 � �0$�Õ'ûKð�Ù�ðIô�ø�û>×Kõ;òí��ô�ð74 � ���Q��z*� x �����P~?�1�Ø~?���,z�����M�,z��;~)$���z%$ � ���M��~ x z�y{���I���,�"$Mz�~@y#�;~)�"�Mz%$ x � k � ���=�;~)$�~@y{z%�Mz%$�~0�%�>�,y(��P~)�Mzl�`� x �Mz%$My{z � �P~)�Qz+$Mzl����������å~ x ���� � z����}�Kz%$Mz � ~)�`�M�,z�z x � � � �;~�$��'� x,� �M�,z�� x �����P~?����zl�0�,z x ��z Õ � � � �Mz%$J�Q�,zl�7;0� x,��� �0$`�M�,z=��$Mzl�Iz x ��z(� � ß �a�.������?�Iz � �"���;~)$��Iz*�M�,z(�Izl�>� x � �Izl���,z x ��z Õ �

ÿoy þ'´ îï���ÿ�º(���©�g�Tw6»&�%��y� ���,y{y�~)$Q�m� � �M�,z��>� x �,�"$"�?�>���T�@�Kz%$6���7$Mz�~@ym�%~ x � � � ��$,��y�.�,���Czl�6�@�Kz%$6���"$Qz�~@ym����� � �}�Kz x � x ãåä�æ>ç��

� x ~?���Mz%$ x ~)���}�Kz��"���;~)$��'� x,�ö� ���M�¶�,�"$Mz�~@ym� ~ x � ���7$Mz�~@y y ~)���Q� � x,� ~)$Mz+�Q�,z�®�¢�½ §�§   ± ~ x � ®�¢�½ § Á�¢�®®��$"� � $�~@ym���

�\� z%��~~�¤�}z � ��$Mzl�Iz x ��~)����� x � � ���7$Mz�~@ym�¡~ x � ���"$Mz�~@yWy�~)���Q� � x,�%� ��� ��� � � x,� ê���$Mz � ���>���}�Kz%�;~)$��'� x,� ë �Iz�y�~ x �����%���~ x ��z � �0� x � � x ã ä:t)ç�� � �,z%$Mzj~Ø�.�Qz%$ x ~)���}�Kz��Iz�y ~ x �,���%�8~)$Mz � �}�Kz xÚ� ���M�����Cy{z3���Q�"�'�}��}zn�}y{��}z�y{z x ��~)����� x ��������T�g���������Å`ÆgÇaÈ)É0Ê#Ë%ÇoÎ�ðbÍ°Î±Ï ô°Ð%õ;ô{ñ ùÀñKðQó ô?ðGÓ�ûKð�ú#Ò�ô�Ú ñCõQ×0Ôñl×Cô�û�Ó8ùªðIô°Ðr÷ ñKð�òüú#ÒQ1�ô�ú!òüø�ô�÷MùªðIô�ó�ó�òPûKõ¿óJ×Kô?õ;ô�ðIñKú!ô>Ù�é%ð�ú#Òô×KðIñ01(1�ñKð�ñ

Page 78: Functional Programming Using Calm Light

�<�0P�F�PRY*_�M`K�F3L=MZM6L=H��3V�W(X �0�¬ ± ¾ · ²�² « ¹:º�»

´ �s¬ ± ¾ · ¬ ± ¾ ·´ ³R¬ ± ¾ · ¬ ± ¾ ·´ ÁR¬ ± ¾ · ¬ ± ¾ ·´PÈ ¬ ± ¾ · ¬ ± ¾ ·

ò ó ô ú#Ò�ô�Ú¤ô�÷@òPø�ñ0Ú'ñKõ�ñ0Ú�ðc��ô�ð�Ó�ûKð{ñKð�òüú#ÒQ1�ô�ú!òüø ô�÷QùªðIô�ó�ó òüûKõ¿óÄ×Kò#Ø�ô?õ�ñ éMû0Ø?ô�ÛTógÒ�ô�ðIô�ócÔ Ú¤úîû�Ó�ú#Ò�ô ù,ñKðQó ô?ð�1(ÔCó ú�éQôú#Ò�ô{òüõ;ú!ô�×Kô?ð3ðIô�ócÔ Ú¤ú!òPõ ×TÓ�ð û�1�ú#Ò�ô{ô~Ø�ñ0Ú�ÔñKú!òPûCõ�û,Ójú#Ò�ô�ñKð�òPú#Ò 1jô?ú!òPø�ô�÷Mù¡ð ô�ó�ó�òüûKõ6k'ò ÛFô�Û�òüúüó�ú°ðQùÀô(1(ÔKó�ú6éMô:ñ

¨À°Aµ� ���³�� ¯��,¨Å`ÆgÇaÈ)É0Ê#Ë%ÇoÎ�ðbÍ#Ü m%õ;ð�òPø¤Ò ú#Ò�ô�ú°ðQù,ô=¨À°Aµ� ��\ñQéMû�Ø�ô�Õ'òPú#Òöñ�ø�ûKõ¿ó ú!ð>Ôø�ú!ûKð ¹:½ ¬ º�» °C¬�¸@¨ · ¯���8(Ó�ûKð�ò�ÙKô?õ;ú!ò Ð�ô?ðMóÅkñKõ�Ù�ô�õ;ð�òüø%Ò�ú#Ò�ô+Ú¤ô�÷@òPø�ñ0Ú�ñKõ�ñ0Ú�ð�� ô?ð|Ó ûKð�òüú1ú!ûÚð ô�ø�û�×Kõ�òè��ô=ò#ÙKô�õ�ú!ò Ð%ô�ðQó�é%Ôò�Ú¤ú�Ó ðIû01#ñ0Ú ù?Ò�ñ éMô?ú!òPø(Ú¤ô�ú!ú!ô?ðMóripÔ�ùKùÀô?ð�ûKðÚ¤û0Õ'ô�ðIø�ñ@ó�ôÆjQÛõô�ô�õ ×Kú#Ò�û,Ó�ò�ÙKô?õ;ú!ò Ð�ô?ðMó*1�ñ0ð&éQô(Ú¤ò�1�òüú!ô�ÙQÛ

Page 79: Functional Programming Using Calm Light

��¯ EfFJH3I*K�L�M4�<�0P SgK�M6L=H3\ÂSmHJW��AI�HJMÄSQL=M3S

Page 80: Functional Programming Using Calm Light

ö T#UWVYX Z\[ u\u

w o/b�f x b�÷rkmf u d iWk�g�iWb�l _ b�f x _ u d b�iqbpo u`ck�l d eõ÷1bpoqerkmf

9 � � ~�$�� � z��;~?�Kz��?�Iz � ��~@y��6à�� � �Q�� x ~ x � x �Mz%$�~��>���}�Kz � ~��K� w �n����~?����� �?� �"�'�}��}z��"�ö��$"� � $�~@y � x ��~@y��à�� � � �6� x ~��;~)���Q��!°�0$��}z x �Mz � � ~?�ª¥ � $,�.�,� x,� ���0��$>��z��>� � z�� x ~ �,�}zK���;~?�0� x,� ���*�>�Ky{� �¤�}z � � x �"��~ x z��Àzl�>����~@��}z��$"� � $�~@y �'~ x � z��Àzl�>���,� x,� �M�,z���$7� � $�~@y �0�����'� � z�� � �M�,zÃ��~@y �`àU� � �Q��z x �0��$"� x y�z x ��� w|x �Qz%$�~0�>���}�Kz��?�Iz����� $Mz�~�� � �0$r��z�~�$ x � x,� �M�,z��P~ x,� �;~ � z ~ x � ��� ���7;C�����Qzl����� x,��x z �a� � x �>�,�.� x ���=Á%~)���Q�m�?��z6���%y+��$MzÄ�>� x �Kz x �}z x �6�"�� z��Kz����K� �F~�$ � z%$î��$"� � $�~@ym���Q�Q�;~)�6�I���0�� � ��z��?�M~@��}z � ���M���0���3; x � � �}z � � z*� � ��~@y �bàU� � �Q���<`�0�Mz � �0$ â ~0�7� x �"�Q�I�R�?��z%$���¥Ú�;~)���Q� �>�Ky{� �¤�P~)����� x ��� x �0��~?�Ø~~�¤�P~@��}z^� x �Q�,z�����~ x � ~?��� x z���~�y��Äà�� � � �~@�,�������~)����� x � w �6$Mzl��� �.$Qzl�6�M�,z âL�5í z x �0��$"� x y�z x �n2��Iz�z*�M�,z(�%~@y�� à�� � � �îy�~ x �;~?�°4��ÿ�ÿ3þ�ÿ z�ÿwÄ��»+w3·� ����z�+�g 3y3�gw3¹��9 ��~ x � ~Ø�.� x z���$"� � $�~@ym�r~)$Mz��>�Ky{���Q�Iz � � � ~(�Izl���,z x ��z�� � �,��$�~0�Izl���a�>� x ��~�� x z � � x � x z*�0$6�Iz��Cz%$�~?�g�Mz����1�,�}zl���� ��$�~0�Izl�=~)$Mz(�M�,z+�M~�y{z{~0�=~)�3�"�K��}z��Kz���¥=z��,��$Mzl�"�'��� x �����Ø~?���,z � zl�Q�P~)$�~)����� x ���g�I����z � zl�Q�F~�$�~)����� x ����z�����z����,�.� x� zl�Q�P~)$�~)�,�.� x ����~ x �ö� ��$Mzl�>���}�Kzl��� í �,z x z��Àzl�>����� x,� �M�,z+����~ x � !�~?��� x z���$"� � $�~@y���$"� � �?��z � ���Ã�M�,z��>�Ky�� � �}z%$��~?�¤�'�,��$�~0�Izl�=~)$Qz�z��,zl�>���Mz � � x �0$ � z%$�� k �,z��Ø~?���,zl�*� � z��À��$Mzl�7�'��� x �=~ x �ö� zl�Q�P~)$Mz � � ���K�;~?�'�Ø~)$,�F~����zl� ~)$Mz x �0���$�� x �Mz � �;��� � z��Kz%$�� � ����~ x � !�~Ø�.� x z���$"� � $�~@yc�;~0�T�"����z%$ � ��$My©� x ����� ~ x � �0���M�����8z��À������7���I�}�K�� z%$Mz�����~��M~@y{��}z���$7� � $�~@yÚ���M�;~)�î��$,� x ���3�M�,z x �,y���z%$J� � �Q�;~)$�~0�>�Mz%$>�3~ x � �M�,z x �,y��;z%$3� � ��� x zl�3� � ���������~ x � ~)$ � � x �������¿�:��;Kzn�M�,z � ®fø x �¤�������¤�:���I�K�§  Ø¨�®?�ª¢ · ¸a« ·  @¬ �'Äħ  Ø¨ § ¯��¡ �¸a« ·  @¬ �'ÄĨ · Á� �¯ §  )¨ · ­ª R£°

§  Ø¨�®a« ¯��¾�­,¨?�®?�ª¢ · ¸Ø¨,£��,¯�� ¯��®?�ª¢ · ¸ ² «z­Q®��¡¢ · ¸«�x�Âį?¬�®R« ù ®�� ù ¨C�ª ?� § ¯��ª ¸ ² « ­ § ¯��¡ ¸÷�A�©  § ¸� à¹?Ã

£°@�¡ � ¯�¨C�±¬K�;£��K°C¬?�@¬ª¯ §  ê³��¾ · ¯��,¨?�,¯��,¨ ­Q®?�ª¢ · ¸åÄ ¾ · ¯��À¨���¸@¨ · ¯��a8�¼©®?�ª¢ · ¢®@¨;  · ¸�Ê�¼¡Ä¾ · ¯��,¨?�,¯��,¨ ­ § ¯��¡ �¸åÄ ¾ · ¯��À¨���¸@¨ · ¯��a8�¼ § ¯��¡ �¸��7®��9¼¡Ä  ± ¯?¨q�

��ó

Page 81: Functional Programming Using Calm Light

¯0ô EGF3HJI�K�L=M4�A�0P^SgK�HJW��JH�G=[TW3L«I�MÄ[*X`M6H3\�S�HJW���SQL=I�H3M6H3K�LAE6[T\^IGVÆGgH3KgV%[TWÄÄ

k �,z ¯��¾­À¨���®?�¡¢ · � � x �>����� x $Mz�~ � �*�Q�,z x z������Q�;~)$�~��>�Mz%$ � $"�Ky ~ x � x �����+�M�;~ x,x z��J2��,z%$MzK�r¸@¨À£��,¯������M�,z�Q�;~ x,x z��Ä�>� x,x zl�>�Mz � �"�¶����~ x � ~)$ � � x �����%4�� w �+$�~~���Izl��z�����z����,�.� x ¬C�¿£���°C¬��ج¡¯ §   � �,z x $Qz�~0�M� � x,� �Q�,z�z x �� � �M�,z��,�}zK� k �,z�  ± ¯?¨ � � x �>����� x ~��?�0$"�>�3�M�,z���$"�a��zl�7��� w ��� ~)$ � �,y�z x �`���*�M�,z{z�� ��������~)�"�?�`� � �M�,z���$"�a��zl�7�����~?�¤��� x,�   ± ¯?¨(���3~@�?�,�@�����Mz��}� x zl��zl�"�M~)$M���"�{z x �,��$Mz���$"�C�;z%$ ò �?�I� � x,� � � �M�,z��0���Q�����J�M�;~ x,x z������� �"���,y�z��M� ���8��$"� � $�~�y©���T� x �,�}z�®K°�­��,¨[�ü½ § � k ���>�Ky{� �¤�}z(�����U����y�����Ã$"� x �Q�,z{®¢ ½ § ®+�>�Ky{y ~ x � � $"�Ky�M�,z��>�Ky�y�~ x � � x �Qz%$M��$Mz%�Mz%$�¥

®¢ ½ § ®a³K°�®K°@­�À¨�®K°@­�,¨[�ü½ §k �,z��>�Ky�� � �}z%$ ��$"� � �?��zl��~ x z��,zl�>����~@��}z �,��z ®�°�­�À¨¡�úùG�0�«��~ x\x � � $"� x ®�°�­�À¨ � �.�Q�R�M�,z��,z��}�«� � �M�,zë ��~@y �.$7� x ë �>�Ky{y�~ x � ¥®¢ ½ § · ­� ®K°�­��,¨Z@q®�°�­�À¨õ�P½ §k � ���3�I���0�� � � ���I��P~?�����Ky{z%�Q� � x,� ����;KzK¥¡�QýW®?�ª¢ · ¢®@¨;  · ¸�ʶ�l¡ § ¯��¡ ¸¨�ø x � z%$ûø x � ���g�Q�,z�®K°�­��,¨ �,�}zm��~ x ~0�>�"�;~?�¤�}�ö�;z{z��,zl�>���Mz � � ��$Mzl�>�����K�Ãü��?�,���:��;Kz ~ x �Ã�0�M�,z%$²ø x �¤�¨�>�Ky{y ~ x � �~0��� x ¥� È ®K°@­�,¨j@W®�°�­��,¨õ�P½ §k � ����~Ø���,� � ��$";a�3� x � z%$ â 9 !"ý À*9 �¡��$"�@�0� � z � �M�,z�z��Àzl�>����~����z �,��z���� � �}�Kz x z��a�Mz x ���.� x �M  ±  À� k �;~)�`������� �� z��>�Ky{� �¤�}z ®�°�­��,¨õ�P½ § ~0� � �@�¤�.� � ��¥®¢ ½ § ®a³K°�®K°@­�À¨õ�Q  ±  R®K°@­�,¨[�ü½ §� z���~ x $"� x ®�°�­��,¨õ�M  ±   � �.$Qzl�>�I�}�K�ª~0��� x ¥®K°@­�À¨õ�Q  ±  r@ê®K°�­��,¨[�ü½ §9 z�z��Q�,z*$Mz � z%$Qz x ��z�y�~ x �;~?� � �0$îy+�0$Qz3� x� �0$My ~)����� x � x ®¢ ½ § ®À�ÿ�ÿ3þ,u µ«�g 3y3�gw3¹��î�%� �U�2þ*�T�gw3·r��·��T�w ���������Q�"�'�}��}z��"�^�I����.�(� x z ��$"� � $�~@y � x �7���Iz��Kz%$�~?��������$���z��,�}zl���=�Iz��;~�$�~)�Mz��}���>�Ky{� �¤�}z � � k � ��� � ~?�K�¡������~?��Q�;~ x,� zl� � � x ���3��y�����Ý~ � ��¤�=$Mzl�>�Ky�� � �P~)�,�.� x � � �M�,z{��$"� � $�~@y �nà¡z%���?�`�¤�¤���?���"$�~)�Qzm�M�;~��J� x �M�,z���$Mz��0���0�?�z��;~@y{��}zK� í z��I������T����� x � � � y+� � ��}zl��¥�� x z3�M�;~)�f��y����z�y�z x ����� x �Qz � z%$6�>�0� x �Qz%$�� ñ ~ x �0�M�,z%$T�M�;~��1�;z%$ � �0$Qym��M�,z�~0�>�7�;~?� �>�0� x ��� x,� � � z%$Mz3���6�Q�,z��?$����6� x zK�®�°�­��,¨�  · �P½ § ¥¹�Áq®�°�­�À¨�  · �ü½ § ÁÀèÁK¾¡ a®�°�­��,¨�  · «�ÿ\½¿­,¨;¢�b §   � ¢ §r² ¯��,¨��5Äħ  Ø¨©�¡  � ¯���¯�¨q«�ÿ � ¢ § « ¯���¯�¨��5Ä�ħ  Ø¨�¯��ª® · ®R«�®�� � ¢ § @³q®�� � ¢ § �x�ÂÄħ  Ø¨ ·  �¢K£�®R«�®�� � ¢ § ÄÄ� z%$Mz3���6�M�,z��,�0��$���z � �0$T�M�,z y�~~� x ��$"� � $�~@y ��� x �,�}z3½�¢À¯��'�P½ § �

Page 82: Functional Programming Using Calm Light

�<�0P���P�I=M*[*X6M6H3\ÂSmV�WASQL�� L�M6H�GoY|V�GbLTS ¯�æ¹�Á�½�¢,¯��o�ü½ § ÁÀç  Ø¨�®?�ª¢ · ¸a«q®K°�­��,¨;  · �Q�?�ª  � �'Äħ  Ø¨ § ¯��¡ �¸a«q®K°�­��,¨;  · �Q�?�ª  � �'ÄĨ · Á� �¯ §  )¨ · ­ª R£°

§  Ø¨�®a« ¯��¾�­,¨?�®?�ª¢ · ¸Ø¨,£��,¯�� ¯��®K°@­�,¨;  · � �,¯��¡® · ®��¡¢ · ¸åį?¬�®R« ù ®�� ù ¨C�ª ?��®�°�­��,¨�  · �Q�,¯��ª® · § ¯��¡ ¸ê  § ¸� à¹?ã°@�¡ � ¯�¨C�±¬K�;£��K°C¬?�@¬ª¯ §  ê³��¾ · ¯��,¨?�,¯��,¨º¹�®K°@­�À¨�  · � � ·  ¢�£/®��¡¢ · ¸,Ã�Ä ¾ · ¯��À¨��¸Ø¨ · ¯���8 ¼©®?�ª¢ · ¢�®@¨;  · ¸EÊ�¼Âľ · ¯��,¨?�,¯��,¨º¹�®K°@­�À¨�  · � � ·  ¢�£ § ¯��ª ¸,Ã�Ä ¾ · ¯��À¨��¸Ø¨ · ¯���8 ¼ § ¯��¡ ¸¨�7®��9¼ÂÄ  ± ¯?¨q�

ÄÄ<`�0������z(�M�;~)�3$Mz � z%$Qz x ��zl�*�"��� � z x ���¤�;z%$�� � z�� x z � � x y�� � ��}z�®K°@­�,¨;  · �ü½ § ~)$Qzj��$Qz��,�Àz � � ���M���Q�,z x ~�y{z�� ��M�,z y+� � ��}zK�5®�°�­��,¨�  · �;~ x � ���^� ��2p�M�,z�êQ��� x,� � ~��I� ë ����y��?��� ¥`� � ��� x � z%$��"�>�0$Mz(�M�;~�$�~0�>�Mz%$��c4�� w!�%� z �;~ ��'�}y{��}� z x �Mz%$Mz � �ª  � �;� � �0$�� x �,��~ x ��zK���M�,z��>�Ky�� � �}z%$ � �0�� � �;~?�Kz�~0�"�,�,y{z � �¡  � ���3~ x � � z x �,� �;z%$ � zl�Q�P~)$Qz �� x �M�,z��>��$7$Mz x �8y+� � ��}zK�¡~ x � ���"�,�,z � ~ x ê>� x � z�� x z � � � z x ���¤�;z%$ ë z%$"$"�0$?����Ky{� �¤��� x,� �M� ���8��$"� � $�~�y $Qzl�0� ��$Mzl�`� � �+�>�Ky�� � �P~)�,�.� x ���Mz��?���,����?�6� x z � x ~?����� x ;0� x,� ���Qz����®¢ ½ § ®a³®q®K°@­�À¨�  · �ü½ §®¢ ½ § ®a³®�½�¢À¯��o�ü½ §®¢ ½ § ®a³K°\½�¢À¯���®�°�­��,¨�  · � � °Ý½�¢,¯��o� � °} � x,x � x,� �M�,z=��$"� � $�~@y���� � � x zj~0�r�;z � �0$MzK¥®¢ ½ § · ­�ã½�¢,¯��A@q®K°@­�,¨;  · �ü½ §k �,z8³�®6�K���,�.� x �"�=®¢�½ § ®�y�z�~ x ��ê¤�>�Ky{� �¤�}z�� x ��� ë ñ �M�;~��������)�M�,z��>�Cy{� �¤��z%$=�����0�� � x ���9~)�"�Mz�y����g�"����$"� � �?��z%~����~ x � !�~?��� x z%z��Àzl�>����~����z%��$"� � $�~@y � $"�Ky¦�M�,z � �}�Kz x �,�}zK�K�����G�'�}y{��}�j~ x �C�6ü zl�>�|�>� � zr�,�}z32!�,�}zl�r®�°�­��,¨�  · � � °��½�¢À¯��o� � °�4�� k �,z'� x ~?���� x ;�� x,� �,�;~0��zl�g��~�;Kzl���M�,z�� � �r� � °8�,�}zl�å~ x � ��$"� � �?��zl�|�M�,zrz��Àzl�>����~����z'½�¢À¯���� À �6üIzl�>��,�}zl�îy(�?���%��z=��� x ;Kz � � x �Q�,z*$�� � �Q�T�0$ � z%$�¥ � �0$%z�~0�M� � �.�C�;~?��� � z x ���¤�;z%$����M�,z=y+� � ��}z � z�� x � x,� ���îy(�?���6�>�Ky{z�;z � �0$Mz*�Q�,z�y+� � ��}zl�6�M�;~��6�?�Iz3�����

� $Mz��,� � x,� ~?�¤�3z��a�Qz%$ x ~?�6� � z x ���¤�;z%$��{��o�M�,z x ~@y{z�� � �M�,z>��$ � z�� x � x,� y+� � ��}z����m�,�Ky{z%���}y{zl�(�Qz � �.���?���k �,z%$Mz � �0$MzK���M�,z���~@y � à�� � � ���>�Ky{� �¤�}z%$���$"�@��� � zl��~ y{zl�Q�;~ x ���Iyz�"�+�Cy(���*�M�,z3½¡°�£�­ §   �Q���;~)$"�`� x z����Mz%$ x ~?�� � z x �,� �;z%$>��� k �,zÄ�I�����Mz�yty�~~� x ��~~� x �î~��������6� � ê � z � ~)���� ë y+� � ��}zl���?��~?�¤�}z � �M�,z*�>��$"$Mz x �I�}�+�K��z x z � y+� � ��}zl���~ x � � �,z x z��Kz%$f���1z x �>�0� x �Mz%$��'~ x � � z x ���¤�;z%$ � �.�Q���0���G�M�,z1½¡°�£�­ §   �Q�î�;~�$"���~���=�Iz�~)$��Q�,zl�G�Q��$"�0� � �n�M�,z6�K��z x z �y+� � ��}zl��� �"��� x � � x z6�Q�;~)� � z�� x zl���M� ���|� � z x �,� �;z%$?� 9 z�~)$>�M�,z � y�� � ��}zl�%~?� � ~����b� x �Q��� � z*�M�,zîy+� � ��}z3��z>� x,��>�Ky{� �¤�}z � 2��Iz�~)$>�M�,z � �?$��,�%4��;~ x � �,�Ky{z����}��$�~)$M��y+� � ��}zl�3� �9� z x z%$�~?���?�IzK� w�x ~ �,� ������� x �?� � � � ��$Mzl�>���}�Kzl��~)$Mz��$"�@��� � z � �"��~ �,� ~ x � �"�+$Mz�y+�@�Kz�y+� � ��}zl� � $"�Cy �Q�,z��:�����3� � �K�;z x z � y+� � ���zl��¥

/ ¦ °�¾ª ?�º¼M½¡°£@­ §  ;¼ÂÄ�Ä=�7� ~ �,� ½¡°�£�­ §  *� x�� $"� x �T� � �M�,z������,� ñ/ ¦ ® § °¿¸ W¼Q½¡°�£�­ §  ;¼¡ÄÄG�"�+$Mz�y+�@�Kz%½¡°�£�­ §   � $"�Cy �Q�,z=���������

ï���$T� x ����~ x ��zK� � z���~ x $Qz � $����Mz��Q�,zî½�¢,¯��'�ü½ § �,�}z�~@�?�@�Kz�~0��¥

Page 83: Functional Programming Using Calm Light

¯0ä EGF3HJI�K�L=M4�A�0PrSgK�HJW��JH�G=[TW3L«I�MÄ[*X`M6H3\�S�HJW���SQL=I�H3M6H3K�LAE6[T\^IGVÆGgH3KgV%[TW¦ °@¾¡ ��º¼�®�°�­�À¨�  · ¼ÂÄ�ħ  Ø¨�®?�ª¢ · ¸a«\�¡  � �'Äħ  Ø¨ § ¯��¡ �¸a«\�¡  � �'ÄĨ · Á� �¯ §  )¨ · ­ª R£°

§  Ø¨�®a« ¯��¾�­,¨?�®?�ª¢ · ¸Ø¨,£��,¯�� ¯��¯��ª® · ®��¡¢ · ¸åį?¬�®R« ù ®�� ù ¨C�ª ?�à¯��¡® · § ¯��¡ ¸£°@�¡ � ¯�¨C�±¬K�;£��K°C¬?�@¬ª¯ §  ê³��¾ · ¯��,¨?�,¯��,¨º¹ ·  �¢K£�®?�ª¢ · ¸,Ã�ľ · ¯��,¨?�¸Ø¨ · ¯���8 ¼©®?�¡¢ · ¢�®@¨�  · ¸EÊ ¼¡Ä¾ · ¯��,¨?�,¯��,¨º¹ ·  �¢K£ § ¯��¡ �¸,Ã�ľ · ¯��,¨?�¸Ø¨ · ¯���8 ¼ § ¯��ª ¸¨�7®?��¼ÂÄ  ± ¯?¨q�

ÄÄ� � �Mz%$T�M�,z ¦ °�¾ª ?�º¼@®K°@­�,¨;  · ¼ � �.$Qzl�>���}�KzK���M�,z3� � z x ���¤�;z%$î�¡  � ~)���"�Ky�~�������~?�¤����$Mzl�������Czl�T�"� ®�°�­�À¨�  · ¸ �Q�?�ª  � �

w � � � � y+� � ��}zl�����Q~��Ú½ª°£U� ~ x � ½¡°£Q��� � z�� x z��?�0�M�R~ � ���K�;~Ø���Ø~Ø�.�,zÚ¬ª�f�M�,z x ¬¨� x ~^�Q���}z x � y+� � ��}z® § ¯C ��,¨o$Mzl���@�}�Kzl���"� ½¡°�£����Q�@¬�� � ½¡°�£��&�����K��z x z � ����� x �0��½¡°£Q���=��$+� � ½¡°�£����;~��{��z�z x �C�;z x z � y��0$Mz$Mzl��z x �I�}���M�;~ x ½ª°£Q��� À �M�,z%$ � ���IzK�����3$Mzl���@�}�Kzl�`�"��½¡°�£ ���Q�@¬ª�Tï���$T� x ����~ x ��zK���M�,zn� � �+�I�����Mz�y y+� � ��}zl��¯��À¨~ x � ¬ § °,¢@¨��?���M� � z�� x z(�M�,z�� x �,�Ã� � z x ���¤�;z%$(�;�6Á��0�M�Úy+� � ���zl��¯��,¨ ~ x � ¬ § °¿¢@¨ ~)$Qz��K��z x z � �� � z � ~)����������� ¯��À¨o�>�Ky{zl� �?$������ � z x ��zK� ± �aÁ¨���� x � z%$����"� � � ~����Q�,z�� x �Mz � z%$ ~ �,� ������� x ����� x ��z^�Ã���+$Qzl���@�}�Kz � �"�¯��À¨��Q�0����Á����=~ � �Qz%$6�M�,z � ��$Mzl�>�,���Cz ¦ °�¾¡ ��º¼�¬ § °,¢@¨�¼¡ÄÄ �y+� � ��}z�¬ § °,¢@¨��>�Ky{zl�ï�?$������¡~ x � �Q�,z*� � z x �,� �;z%$�����6$Qzl���@�}�Kz � �"�{¬ § °,¢@¨?� �0�;�ÿ�ÿ3þ,� �©í+��g�gw6�f|�� *�9 �Ky{z � ���K�;~?��� � z�� x z � � x ~{y�� � ��}z�~)$Qz x �0�`� x �Mz x � z � �"� �;z(�?�Iz � �0���>�'� � z�� � �M� ����y+� � ��}zK� k �,z x �����`���� � � � ��$"� � $�~@y{y(� x,� ���I�C��z x �����7�jz��,�?��$"�T�M�,z�y©�0�����'� � z*� � �Q�,z=y+� � ��}zK�?�,���Q�;~)�T�M�,zÄ�>�Cy{� �¤��z%$*��~ x �Q�,zl�";�M�,z��ö~)$Mz x �0�*�?�Iz � � x ~ x �0�M�,z%$=y+� � ��}zK� � �����;��� x z{y�~?� � ���I���"��z��,�?��$"��~ � ~)��~��I����z�~@�?���"$�~0�>�I�}�K���M�;~)������ � ���M���0���î���,������7��5>� x,� �M�,z(���"$"�?�>�7��$Mz*� � �M�,z��I��;zK� k � ���8z x ����$Mzl�`�M�;~)�6���M�,z%$îy+� � ��}zl�*��~ x,x �0�î��� �¤� � �0$� x �I�;zl�>�n�K�6üIzl�>���`� � �M�;~)�3�I����z � �.�Q���0��� � �)� x,� �M��$"�0� � �^� x zn� � �Q�,z � � x �>����� x �*� x �M�;~)�3�I����zjz��,�?��$"�Mz � � x�M�,z � z�� x � x,� y+� � ��}zK� k � ���8�,z��}�?�T� x � $������ x,� �Q�}z�~ x � � z�� ��!p���7$"�?�>�"��$Mz � ��$"� � $�~�ym���k �,z � ~?�J�"� � �3�M�;~)��� x ��~@y���à�� � �Q�|���|�"� � $����Mz�~ x z��,��:���7����� x �Mz%$ � ~0��zK�)��$g�0���M�����G�'� �Kx ~)�"��$QzK�0�I�;zl�7� � �0� x,��M���Q��z�� � z x ���¤�;z%$����M�;~)��~�$Mz������'�}��}z � $"�Ky �M�,z��0�����'� � zK� � �¤�J�0�M�,z%$� � z x ���¤�;z%$�� � �¤�¤�Ä$Mz�y ~~� x �.����~?�J�7���M�,zy+� � ��}zK�Jï���$ � ���K�;~?�'�Ø~?���,zl�����M�,z>��$*�I����zl�îy(�?���8�;z � ���Cz x ����;~ x � � k �,z�� x �Mz%$ � ~0��z����J�>� x ��~~� x z � � x ~ �,�}z� ���Q��z x ~@y{z3���6�Q�,z=y+� � ��}z x ~@y{zK� � ���M�Úz��a�Qz x �'��� x �ü½ § ¯�� z%$Mz3��� � �0$�� x ����~ x ��zj~ x � x �Mz%$ � ~0��z � �0$T�M�,z{®K°�­��,¨;  · y+� � ��}zK�?�Q�;~)�î~@�?���"$�~��>���T�M�,z*�I��;z�®K°@­�À¨�  · ¥¹�Áq®�°�­�À¨�  · �ü½ § ¯YÁ,èÁK¾¡ a®�°�­��,¨�  · Ä�Ä ¹�Áq¢���¢�bª¸@¨ · ¢®Ø¨a¨ÁK¾¡ �ÁÀÃ� ¢ § ­ª Ý�¡  � ² ¯��,¨�³��a®K°@­�,¨;  ·¢?�¿£�¯��ª® · ² ®K°@­�À¨�  · ³��\­�¯?¨¢?�¿£ ·  �¢K£ ² ®K°@­�À¨�  · ³�� ¯��À¨rÄÄ

Page 84: Functional Programming Using Calm Light

�<�0P.�QPRHJö`SgK�M6HnE3KgVc[TW ¯<Hw|x �Qz%$ � ~���zl��y(�?������z&�>�Ky�� � �}z � �Iz��;~)$�~)�Qz����K� � � � z��Kz%$��|� x ��z��M�,z�� x �Mz%$ � ~0��z � �0$�y+� � ��}z%Ù��;~0� ��z�z x�>�Ky{� �¤�}z � ��~ x ��y+� � ���z Ú �M�;~)�3�?�Izl��ÙA��~ x �;zn�}y{y{z � �P~)�Qz����^�>�Ky{� �¤�}z � ��z��Kz x � � �M�,z*�}y{��}z�y{z x ��~)����� x � �

Ù ��� x �0�î�Cz%�J�>�Ky{� �¤�}z � �0$8z��Kz x x �0�%�Kz%� � $����"�Mz x �T��� x �'� � z%$�¥®¢ ½ § ®a³®q®K°@­�À¨�  · �ü½ § ¯®¢ ½ § ®a³®�½�¢À¯��o�ü½ §®¢ ½ § ®a³®q®K°@­�À¨�  · �ü½ §®¢ ½ § ®a³K°\½�¢À¯���®�°�­��,¨�  · � � °Ý½�¢,¯��o� � °k �,zÖ��y����z�y�z x ��~������ x ½�¢À¯��'�P½ § �>�0�� � �;z^�>�Ky{� �¤�}z � ��z � ��$Mzö®�°�­�À¨�  · �ü½ § � k �,z�� x �}�R$Mzl��� ��$Mz�y{z x � � �0$�>�Ky{� �¤��� x,� ½�¢,¯��o�ü½ § ���`�M�,z=z�� �����Mz x ��z(� � ®K°@­�,¨;  · � � ¯�� �M�,z��>�Ky�� � �}z � � x �Qz%$ � ~���z�� � �Q�,z{®K°@­�À¨�  · y+� � ���zK������T�g���������Å`ÆgÇaÈ)É0Ê#Ë%ÇoÎ?Î�Í°Î�� û�1îù�Ú ô?ú!ô3ú#Òôî®K°@­�,¨�ø�û01(1jñCõ?Ù�ñ8òPúÂó�Ò�û�ÔQÚ�Ù�éQô�ñQé%Ú¤ôîú!û�û�ù,ô�ðIñKú!ô�ûKõ{ó�ôlØ?ô�ðIñ0Ú7Ð�Ú¤ô�óÅka×Cò�Ø?ô�õ{ûCõú#Ò�ô�ø�û01(1jñCõ?Ù�Ú òüõ;ô)Û�=òüõ;ú"ñr¸@Á;¸ � ��®K°�½½�¢��;£�� § ¯��¡ �òFó ñKõöñKð�ðIñ0ð{û�Ó=ó�ú!ð�òPõ ×@óÅk9ø�ûCõ;ú!ñKòüõ;òüõQ×�ú#Ò�ô�ø�û01(1�ñKõ�Ù:��Ú¤òüõ;ôñKð°×0Ô 1�ô�õ�úüó�ú!û�ú#Ò�ô8ùªðIû�ø�ô�ó�ó¤Û

Page 85: Functional Programming Using Calm Light

¯:t EGF3HJI�K�L=M4�A�0PrSgK�HJW��JH�G=[TW3L«I�MÄ[*X`M6H3\�S�HJW���SQL=I�H3M6H3K�LAE6[T\^IGVÆGgH3KgV%[TW

Page 86: Functional Programming Using Calm Light

Uq[�X �����

`ckml d ÷ u o u u�v b�l d ÷ u

¯0C

Page 87: Functional Programming Using Calm Light
Page 88: Functional Programming Using Calm Light

ö T#UWVYX Z\[ u��

w � s w l b�÷õ÷ � b�f gmn b g u

í z���$Mzl�Iz x �G� x �M� �����Q�;~@���Mz%$%~(�'�}y{��}z��F~ x,� �;~ � zK¥ �n9 à�2 �j9 y ~?�¤�bà�~ x,� �;~ � z)4�� k � ���5�P~ x,� �;~ � zT���r�;~0�'����~?�¤�}��M�,z���!p��~?���>����?�+2'�M�,z�����$Mz��}� � � x �>����� x ~?�T;Kz%$ x z��=� � ��~@y��°4îz x $����Q�,z � � ���M��~��>� x � �.�,�.� x ~?���>� x �,�"$"�?�>��� k �,z�>� x � ������� x ~?�%y(�?���3��z�~��I��zl�7�F~Ø���>� x ���"$"�?�>�?�¡�;zl��~)�?�Iz��0��$��P~ x,� �;~ � z � �¤�¤����zm���,�,y(���"�Qz � �7����~?�¤�.!!�� !!�Ø~?���,zK¥�M� �?�����M�,z��>� x � �.�,�.� x ~?�f��~ x,x �0�î�;z�~ � � x �>����� x ��n9 à©��$"� � $�~@ym��~�$Mz���� �¤�����,� � $"�Ky x �,yj��z%$����'�@~)$��P~@��}zl��� � � x �>�,�.� x ~?�îz��À��$Mzl�7�'��� x ��2���!�~@�?���7$�~0�>����� x �>4��

~@�,�������~)����� x � ~ x � �>� x � ������� x ~?����� � x �n9 àa��$"� � $�~@y �>� x �'�������(� � ~ � ���K�;~?� � zl�Q�P~)$�~)����� x � � ~ x � � z x ���¤�;z%$� z%�"�,� x,� �?�0� x � �7�*�M�,z3�@~?���,zJ� � ~ x z��,��$Mzl�"�'��� x � k �,zî��$��}y(�����}�Kz � � x �>����� x ���M�;~)�%~)$Mz3~?�Ø~�� �P~@��}z�~)$Qzîzl�0�;~Ø�:���I��;z%� � z�z xöx �,y���z%$��=~ x � ~)$����M�,y{z%�,��� � � x ~�$M���K��z%$�~)����� x ��� k �,z+�>� x �>$Mz%�Mz+�I� x ��~?��� � ��9 àÝz��,��$Mzl�"�'��� x �n��~ x�;z � zl�"�>$��}�;z � 2 ~�yj� � � �����?�|�}�?4�~���¥

¬ ± ¾ · ²² « ¹:º�»´ ¹:½ ¬ º�»´ ¼C¯�¬�¼o¬ ± ¾ · ¼�¨C�¡ ��9¼Â¬ ± ¾ · ¼�  § ¸ ¿¼Â¬ ± ¾ · ¼�¬ª¯,¼´ ¼�¹Ø¼�¬ ± ¾ · ¼CÃÀ¼´ ¼�®¿¼ ¹´½ ¬ º�» ¼9��¼Â¬ ± ¾ ·

~ x � �M�,z��I� x ��~?�&� � � zl�Q�P~)$�~������ x ����� � ���Cz x ~0��¥½  ® §#²² «�¼ §  @¨�¼ ¹´½ ¬ º�» ¼Òbª ;¼Â¬ ± ¾ · ¼ÂÄ�¼

´ ¬ ± ¾ · ¼ÂÄ�¼� $����M�,y{z%�����=� � x ~)$Q���K�;z%$�~������ x � � � �¤�'�;z � $����"�Mz x � x ��$Qz��,� �?�Q�'������� x ~ x � � � �¤�'�;z���� x,� �"�+�M�,z��Q�P~0�7� ¹:½ ¬ º�» �k �,z(®+�I�yj���@� � �¤�¤�'��F~?���M�,z�$7�@�}z*� � �Q�,z(��~@y��g;Kz�� � �0$ � ¬C­��¡®Ø¨¡¯@°@���

í zJ����~)$7�'��� � z�� x � x,� �M�,z3~@�?���7$�~0�>�=�I� x ��~?��� � �n9 àÚz��À��$Mzl�7�'��� x �%~ x � � � ��9 àÃ�"�K��}z��Kz��¡�,��$�~0�Izl��� k �,z x� z � z�� x z ~ �;~)$��Iz%$�� x ��$ � z%$+�"�Ý��$"� � �?��zä~��?���"$�~0�>���I� x ��~?�R�"$Mz�zl� � $"�Ky �M�,z��>� x �>$Qz%�Mz��I� x ��~?�«� � ��9 à��$"� � $�~@ym���ÿ�u þ�ÿ � z�� w6í+��g�gw6�f ��¸+�3gwT�]g�g�T���í z{z x �>� � z �Ø~)$��P~@��}z x ~@y{zl� ��� x �,y��;z%$>��� k �,zl��z x �,y��;z%$���$Mz���$Mzl�Iz x ���M�,z�é�òPõ�ÙKòPõ ×�ÙCôIùªú#Ò�� � �Ø~)$��P~@��}zl���ï���$T� x ����~ x ��zK���Q�,z � � x �>����� x � � ± $Mz%�7��$ x � x,� ± 2p�M�,z �n9 à^� � z x �����I� � � x �>����� x 4 � �¤�¤�9�;zn$Mz���$Mzl�Iz x �Mz � ~0��¥ú bª¸�¹Ø¼ ± ¼0Ê ¿ ¢ · �CÃ

¯ �

Page 89: Functional Programming Using Calm Light

¯0¯ EGFJH3I*K|L=M4�c��P�H�S�GGd�HASQ\^H�G9G�GgHJW(X+_|H�X`L� x � �M�,z �n9 à�~��,��:����~)�,�.� x � � x �>����� xÚ� � ���M� � ���� � ��z � $,�.�7�Mz x � x �%~@y���¥¹Q¬K­�ª®@¨¡¯Ø°��q¬ ³��º¹Q¬K­�¡®Ø¨¡¯Ø°�� ± ³��R¬'¹ ± ÃÃ�Ã� �0�� � ��z*$Mz���$Mzl�Iz x �Mz � ~���¥ú bª¸�¹Ø¼�¬�¼0Ê ú bª¸�¹Ø¼ ± ¼0Ê ú ¾�¾1¹ ¿ ¢ · �ãÊ ¿ ¢ · �KÃÃÃ~ x � �I������ � ��z=�0�}z � z � ~0���M�,z��"$Qz�zK¥ ú bª¸

ú b¡¸¼�¬Â¼¼ ± ¼ ú ¾¾

¿ ¢ · � ¿ ¢ · �

����� ��� ��� � ��� ��� � ���¿ ¢ · �&�I������ � �;z*$Qz�~ � ~0�*ê�~ x �a�%�>��$"$Qz x ��zJ� � �M�,zî�Ø~�$��P~@��}z=�?�0� x � ��(�M�,zî���M��~@�?���"$�~0�>����� x{x � � z3z x �>��� x !�Mz%$Mz � � �,z xö� �)� x,� �"� � ~)$ � �M�,zn$"� �0�J� � �M�,zj~@�?�,�"$�~0�>�J��� x ��~?���"$Qz�z ë � w|x ����$3z��;~@y{��}zK� � �,z xö� �)� x,� � $"�Ky¿ ¢ · ���"�+�M�,z*$"� �0��� �M�,z(ä x � ~@�?���7$�~0�>����� x�x � � z � z�z x �>�0� x �Qz%$6� x �"$"� � �?��zl�6�M�,z�¼�¬�¼=�@~)$��P~@��}zK�k �,z x �,y��;z%$�� z x �>� � � x,� �Ø~�$��P~@��}zl�n� x ~@�?���"$�~��>���I� x ��~?�¶�"$Mz�zl�n� �%� � x �>����� x ~?�3z��,��$Mzl�"���.� x �{~)$Mzm��~Ø� �}z �ê�ý�z�Á�$"� �Ûü x ê x �,y��;z%$�� ë � k �,z��Q�;~)$�~��>�Mz%$��T�M�;~�� � z�~)�"��~0�Q���"��~��?���"$�~0�>�,�.� x x � � zl�J�'�}y{��}�^�Iz%$M�Kz�~0� � ���>��!y{z x ��~)����� x ¥|�M�,z�� � �¤�¤� x �0�'�;z3�?�Iz � ���{~ x �(� � �M�,zJ�Iz�y ~ x �,���8~ x ~?�}�a��zl�=�Q�;~)� � z � �¤�¤�Â��z%$ � �0$Myx� x �M�,z3�"$Mz�zl���k �,z*�I��;z�� � ��9 àÝ~@�?���7$�~0�>�J�I� x ��~?�m�"$Qz�zl����� � z�� x z � ���¡¥¦ ¨�ÁC¾ª a¢¸ § « ß °��ª¸@¨ °C¬ ¯��,¨¦ ´ ¿ ¢ · °K¬�¯��À¨¦ ´}ß °��¿£q°C¬�¢�¸ § Áa¢¸ § ÁW¢�¸ §¦ ´+ú ¾¾ °K¬�¢¸ § Áq¢�¸ §¦ ´+ú b¡¸ê°K¬�¸@¨ · ¯��a8WÁq¢¸ §¦¦ ¢��;£©¨À°�¾U�¢¸ § « ½  �® § °K¬ ¸Ø¨ · ¯���8\ÁW¢�¸ § ÄÄŤ¿ØÇ'É©ÖKÞÈ ç,É�ì�Ë�Ì9ÉCçáæŤ¿ØÇ'É©Î�Æ�Çg�,ÖCÞ�Èqç,É�ì�Ë�Ì9ÉCçáæÿ�u þ,u µ¶w`�g�b�%��y�� z�� �+�g 3yJ�gwĹ��<`� �W� z*�>�Ky{zn�"�(�M�,z=��$"�K��}z�y � � � z�� x � x,� ~��>� x �>$Mz%�Mz��I� x ��~?� � �0$ �n9 à ��$7� � $�~@y���~ x ��� zl�Q�F~�$�~)����� x ���k �,z��Q���)����z6� � �M�,z6�>� x �>$Mz%�Qzï~��I�;zl�>�G� � �Q�,z���$7� � $�~@y������G�'�}y{��}�{~îy ~)�"�Mz%$|� � ��~0�,�MzK� k �,zT� x z � z��Q��� �Q�Iz�,z%$Mz(���n�Q�.� �Iz+�"���M�,z��I� x ��~?�^� � ��!p��~?���>����?��2�z��?��z������M�;~)� � z � �¤�¤���?�Iz��M�,z�éQñKø�h?ócÚ¤ñ@ó>Ò�Q�;~)$�~��>�Mz%$=�;zl��~)�?��z�M�,z%$Mz���� x �«ê�� ë � x �0��$(;Kz���?��~)$ � �>4�� í z � �¤�¤�J�?�Iz��Q�,z ølÔð�ð�òPô>Ù��Kz%$>�'��� x �n� � zl���;~?���.�I�R~ x � ~)$����M�,y�z%������ � x �>����� x ��� í z � �¤�¤��~?�����+�?��zj~ ùªðIôÑÐ1÷ x ����~)����� x 2 �~ �F~�à����I��4 � �0$6�M�,z>��$=~@�,�������~)����� x � í z � �¤� � � $����Mz�ê%�c¹���R��ÃR¡ ë � x �,�Mz�~ � � � ê,¹��~� �;Ã)�Q¡ ë � k �,z¨ê�¯�¬�! ê ¨C�ª ?�"!$#ã  § ¸� %!'& ë �>� x ���7$"�?�>� � �¤�¤�î�;z � $����"�Mz x ê@¯?¬�! ê¨C�ª ?�"!$#ã  § ¸� %!'&�¬¡¯ ë �9~ x � � � �¤�6$Mz%�"��$ x �M�,z{¨C�ª ?� �;~)$"� � �,z x ! ê ��� � ��è�z%$Mz x � � $"�Ky ô^2�ô ~0�>���3�Q�Q�?� ~0�� ~?���'��� ��� x �n9 à¶�>� x � �.�,�.� x ~?���>4��

(*),+$-/.0+21/34-652-/-/798�:<;482;>=<-/[email protected]:<MAN O<7PNQ7SRQT�U/VWNQ7@;4:<?�-X:IY<;6Z[1�\*NE]ENQY^1_Y<-Y<+$-a`b-/\*+H1_7ANQ\�1/]�Y<:<-�1_Y<`-X7AYI;�Z�c'd[\�1/]Q\/MA]QM�=Y<-/:<`=/C

Page 90: Functional Programming Using Calm Light

�c��P���P�IUH3M3S0V�W�XZH�S�G¶I�MÄ[*X`M6H3\�S ¯0ó!0IE�BIE�"! e�&ñ+*"36.05'.0(+.05J�+8:*,8k �,z��>� x �>$Qz%�Mzj~0���;zl�>�6� � �n9 à ��$"� � $�~@ym� � �¤�¤�'�;z�z>���M�,z%$ � zl�Q�P~)$�~)�,�.� x �T� � �M�,z � �0$My ¥

§  @¨ ò#ÙKô�õ�ú!ò Ð%ô�ðãbª �ô�÷QùªðIô�ó�ó òüûKõ'Ä�0$�¥

ô�÷Mù¡ð ô�ó�ó�òüûKõ'Ä� � ���Q� � �¤�¤�á��z�� x � z%$��,�"�Q� � ~���¥

§  @¨�¯�¨¾bª �ô�÷QùªðIô�ó�ó òüûKõ5Äk �,zT�"�0;Cz x ����$"� � �?��z � ����M�,zr�}z�� ����~Ø�Â~ x ~?�}� 5�z%$ � �¤�¤�U$Mz���$Mzl��z x �G�M�,zT;Kz�� � �0$ � � §  @¨¡��b¡ À�,¯?¬j~ x �   § ¸� ,�l�Q�,zJ®� � x � z%$��0�Q�,z � �0���@�;~�$Mz x �Q�,zl�Izl���~� x �Qz � z%$����¤� � z x ���¤�;z%$����À~�$����M�,y{z%�������K�;z%$�~)����� x �å~ x � �Mz%$My(� x ~)��� x,� �Iz�y(���>�@��� x ���í z*$Mz%�?��z��,z%$Mz=y+� ���6� � �Q�,z��>� � z*�M�;~)� � z � z��Kz����K��z � � x �M�;~@���Qz%$Äæ~ô(�0$T� x �Q�,z�~ x � � z%$����"�(�����%z��,z%$��7���Izl���9 ;��}�,� � x,� ��F~ x ;��I�;~0��zl��¥¦§  @¨ ·  ®q¸?¾ª¢®� ¸R«a¬C­��¡®Ø¨¡¯@°@�¦ µ @©½ ù±ù;´)ù ®Ø¨ ù;´)ù ®�� ù Ä ¸?¾ª¢®� ¸r��� ¶ ³��º¹?æ%´aµ @�� ¶ ³�� ¹?Ã�Ä�ÄÞ�Ç9Ö,â�É�ÞYÏ â ÛÂÖ@×WÞÀÎ@תÉCÖ��tÓ Ð Í?ÌÂËÎaé ë?ì,Í?Ì Ðk �,z*�I��;z�� � �"�0;Kz x ����� � �}�Kz x ���¡¥¦ ¨�ÁC¾ª \¨,°<µ� ?�W« ¶Q¬ » ´¾Þ ¬ ´ ¶ ú�¸�Þ�½ ú ´ ½Lf:» ´ ¶�¢ ú ( ´ (�¢ ú (¦ ´ ¹ » ´¾» �Q¬ º ´ ¬�¶¼a�¬ ´ » ¹ ´ a0¬ ¸)¹Rߦ ´ ¹´º�» °C¬ ¯��,¨ ´ ¹´½ ¬ º�» °K¬ ¸Ø¨ · ¯���81ÄÄŤ¿ØÇ'É©Î�Æ�ÀÂÉ ÌàçÀÉ?ì�Ë�Ì9ÉKç'æw�x �Mz � z%$>��¥¦§  @¨�¯��,¨?�K°C¬?�K£;¯~8¡¯�¨q«©¬K­�¡®Ø¨¡¯Ø°��¦ ù � ù ��� ù £ ù ¢¸q®q³��à¹�¯��,¨?�K°K¬��®��¡¢ · ®ÀÃ/³º¹�¯��,¨?�K°K¬��®��¡¢ · ù � ù æ%´ �a³�� · ¢,¯K¸ à¹�»¿¢À¯ § ­ ·   ¼��;°K¨�¢ê£�¯~8ª¯?¨Â¼CÃ�Ä�ÄË�ÌÂÎ��ÀÆ@ì��ÀçË�Ù�ËÎºÏ â ÛÂÖ@×�Ó Ð Ë�Ì�Îaé ë�ì¿Í?Ì Ð¦§  @¨ ·  ® ¯��À¨� �8�  · � «a¬C­�ª®@¨ª¯@°��¦ µ @©½ ù � ù ��� ù £ ù ¢¸a®9Äa¹�¯��À¨� )8;  · ¹��?�6Á?�j��¯��À¨���°C¬���£�¯l8¡¯?¨q®,Ã�à · � ¶ ³�� ·¦%´aµ @�� ¶ ³�� ¹:º�» ��ÄÄË�ÌÂÎ,É�Ù9É?× ÏäË�Ì�ÎqÓ Ð â Û�ÖØ×WÞ,ÎØסÉKÖ��ºÓ Ð Î�Æ�ÀÂÉ Ìàé ë?ì,Í?Ì Ðí z($Mzl���7$����>� �n9 ào� � z x ���¤�;z%$��*�"� �;z+�>�Ky��?�Q�Iz � � � ��� � z%$���~��Iz=�}z%�"�Mz%$>�����M�,z�z>� � �Q���?$>���3��z>� x,� �'� �Kx �¤�U��~)���}�KzK�� x z��À��P~ x ~)�,�.� x ~@���0���6�M�,z{¯@£, ?�,¨ � � x �>�,�.� x ��~ x �;z � �0� x � � x �M�,z��M�;~����Mz%$ � z � ����~��Mz � �"�(�M�,z�~ x � � z%$��T�"�z��,z%$��7���Izl�n2��Q�;~@���Mz%$(æ)�04�� k �,z � � x �>�,�.� x�� ���Cz x �,z%$Mzn���*�|��� � �Q����� � ��èÂz%$Qz x �=~ x � �Qzl�������.�>�6$Mzl�,��.�3� x �0$ � z%$3�"��Iz�z � z%�M�,z%$T���`���3~n;Kz�� � �0$ � 2 §  Ø¨¡�Abª ,�0çcç�ç"4=��$ x ����¥¦§  @¨�¯Ø£¿ ��,¨��cb­À¬q«\½�¢:µ;  ��¸@¨ · ¯��a8hg ùrù ÄÄËçÀÉ ÌÂÎ��,ÜKÍKì Ï�Þ,Î@×;Ë�Ì�Ùà驧 §¦§  @¨ ·  ® ¯@£, ?�À¨ §  �� «a¬C­�ª®@¨ª¯@°��

Page 91: Functional Programming Using Calm Light

ó0ô EGFJH3I*K|L=M4�c��P�H�S�GGd�HASQ\^H�G9G�GgHJW(X+_|H�X`L¦ µ @©½ ù ¢ ù ��� ùÆ��ù ¢¸a®9Ħ ¹?¯�¬ §  ?�4��«�g©¨C�ª ?�º¯@£, ?�,¨ §  ?�¦   § ¸ Ìb¡ )8ª¯��¦ ¸ Ø¨����,¨C�U�®��¡¢ · ¯@£, ?�À¨���b�­,¬ §  ?�à®åĦ ¯@£, ?�À¨�¹�¸�­¡®® §  ?��æ  ?�;£;Ãa¸�� ¶ ³��q¸¦%´aµ @�� ¶ ³�� ¹|½�¢Ø¨�®���¸?­�b��¸Ø¨ · ¯���8 ¯@£¿ ��,¨?��b­À¬q� §  ?�¦ � ¯�¨C� ¼ §  @¨Â¼ã³��Y¶Q¬ »¦ ´ ¼Òbª ;¼ã³�� Þ ¬¦ ´ ¼C¯�¬�¼ã³�� ¹ »¦ ´ ¼�¨K�¡ ��9¼ã³�� » �Q¬ º¦ ´ ¼�  § ¸� ;¼ã³��R¬�¶¼a�¬¦ ´ ¼�¬ª¯,¼ã³��R» ¹¦ ´ ¸a³�� ¹´½ ¬ º�» ¸ÀÃ�ÄÄËçÀÉ ÌÂÎ�ÏöË�Ì�Î/Ó Ð â ÛÂÖ@×WÞÀÎ@סÉKÖ��ºÓ Ð ÎÆ�ÀÂÉ Ìàé ë�ì¿Í?Ì Ð� $Mz�~0��� x ~����z �}z��Q����~?�1~ x ~?�}� 5�z%$ � �0�� � �?�Iz�~��;~0�I����~����zn�"�($Mzl�>� �Kx ��5�zn;Kz�� � �0$ � � � ~����Mz%$��

� $��}y(�����}�Kz=�C�;z%$�~)�,�.� x ��~)$MzG$Mzl�>� �Kx ��5�z � ��3�M�,z � �@�¤��� � � x,�8� � x �>����� x � � � ���Q�{~?����� � z%�Mzl�>�>���¤� �}z � ~Ø�?�K�;z%$�~��"�0$��~ x � z x � �`� � � x �����?¥¦§  @¨q°@¾¡  · «R¬C­�ª®@¨ª¯@°��¦ µ @©½ ù � ù;´)ù ³ ù;´�ù Á ù¿´�ùÅÈ�ù;´)ù « ù ¢�¸q®Ç� ¶ ³�� ¹´½ ¬ º�» ¹�½�¢:µ;  ��¸@¨ · ¯��a8j�ê®Àæ%´aµ @©½�®�� ¶ ³��\¾ ·   ·· �¸Ø¨ · ¯���8 ¼ ¹�§§  �8�¢ § ®?�ª¢ · ¢�®@¨;  · ² ¼ÂĦ ¾ ·   ·· � ��;£ § ¯��ª �¹�®?�¡¢ · �ج,° · � ·  ¢K£a®,Ã�Ħ · ¢À¯C¸  ¹�»¿¢À¯ § ­ ·  W¼ ú a<¶©¾¡¢ · ¸À¯���8¼Cæ%´aµ @�� ¶ ³���¾ ·   ·· � ?�¿£ § ¯��¡ /¼Ò·��¡  ± ¾¡ �®@¨; K£W ��;£a°K¬t¯��¾�­,¨�¼¡Ä¦ · ¢,¯K¸ º¹�»,¢,¯ § ­ ·  q¼ ú a<¶/¾ª¢ · ¸,¯��a8�¼KÃ�ÄÄÆ�ÇáÉ?× Ï â�Û�Ö@×qÞ,Î@תÉCÖ��ºÓ Ð ÎÆcÀ�É�Ìàé ë?ì¿Í�Ì Ðk �,z �}z�� ����~Ø� ~ x ~Ø��� 5�z%${�;~0�n�M�,z��Q~@y{z����"$7�?�>�"��$Mz�~0�n�M�,z�� x z � �}�Kz x � x �Q�;~@���Mz%$�ælôÚz��?��z����m�Q�;~)� ��z�~ � � x,���P~ x ;��3~)$Qz���;0�}�,��z � �¦§  @¨ ·  ® §   ±   · ¸@¨ · «�¸?¾¡¢�® �¸a¸@¨ · Ħ ½�¢@¨;®?��¸Ø¨ ·r� ¯?¨C�¦ µ @©½ ù ¹ ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½Æ¶�¢ ú (rÄ §   ±   · ¸@¨ · � ¶¦%´aµ @©½ ù à ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½I(�¢ ú (rÄ §   ±   · ¸@¨ · � ¶¦%´aµ @©½ ù ® ® ù Äö¸?¾ª¢®� ¸r��� ¶ ³�� µ @-½Æ¶ ú�¸�Þ�½ ú Ä §   ±   · ¸@¨ · � ¶¦%´aµ @©½ ù � ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½ ½�f:» Ä §   ±   · ¸@¨ · � ¶¦%´aµ @©½ ù Ä ù Ä�¸?¾¡¢�® �¸r��� ¶ ³�� µ @-½§a0¬ ¸X¹<ß Ä §   ±   · ¸Ø¨ · � ¶¦%´aµ @©½ ù � ù ��� ù £ ù ¢�¸a®åĦ ¹?¯��,¨� �8�  · ¹?¯��,¨���°C¬?�K£�¯l8¡¯�¨W®ÀÃÃݨÀ°AµrĦ ¸�¾¡¢®� ¸r��� ¶ ³�� µ @-½I¨À°Aµ1Ä §   ±   · ¸@¨ · � ¶¦%´aµ @©½ ù ¢ ù ��� ù���ù ¢�¸a®åĦ ¹�¸� @¨����,¨K���®��¡¢ · ¯Ø£¿ ?�À¨��cb­,¬/� ®9Ä ¯@£, ?�À¨x�CÃ\¨,°<µrĦ ¸?¾ª¢® �¸r��� ¶ ³�� µ @-½I¨À°Aµ1Ä §   ±   · ¸@¨ · � ¶¦%´aµ @R°�¾ª  · ¨À°AµrÄ ¸�¾¡¢®� ¸r��� ¶ ³�� µ @ ½I¨,°<µrÄ §   ±   · ¸@¨ · � ¶¦ Ä�Ä

Page 92: Functional Programming Using Calm Light

�c��P���P�IUH3M3S0V�W�XZH�S�G¶I�MÄ[*X`M6H3\�S ó�æÈ;É Ñ É�× Ï â Û�ÖØ×WÞ,ÎØסÉKÖ��ºÓ Ð Î�Æ�ÀÂÉ Ì�ÞÀÎ@סÉKÖ��àé ë�ì¿Í?Ì Ðk �,z��}z�� ����~Ø��~ x ~?�}�Q5�z%$`$Mz%�"��$ x �î~����"$Mz�~@y � � �"�0;Cz x �T�M�;~)�6�Q�,z=�;~)$��Iz%$ � � �¤�G$Mzl��z>�}�Kzj~���~�$ � �,y{z x ���!0IE�BIE�JI ϲ.0N<8:*"(2-k �,z � x ~?� �����M�����J� � �0��$3�;~�$��Iz%$ � �¤� �1��zj~@�?�,�"$�~0�>�*�I� x ��~Ø�&�"$Qz�zl�6� � �I��;z�¢�¸ § �0$î¨,°@¾��¢�¸ § � k � ���`�}y{����}zl��M�;~)� � z � �¤�¤� � z%�Mzl�>��� x �?�0� x � � � z x ���¤�;z%$��Ú~)���;~�$��Iz%!°���}y{zK� w�x �M� ������~0��zK� � z � �¤�¤��$�~~���Iz��M�,zP·��b;°�­��;£z��?��z�������� x � z�� x z � ~0��¥¦   ± ®� ?¾,¨ª¯@°@��·���b;°@­�¿£a°C¬�¸@¨ · ¯���8rÄ�Äh Ñ âÉMÇåÎË�Æ�Ìx��Ì�Ü�ÆCÍ?ÌÂçaç,É�ì�Ë�Ì9ÉCçáæí z�~?����� x z�z � ~ � � x �>����� x � � ���Q� � �¤�¤� �>�Ky{�����Mz*�Q�,z3� � x � � x,� � z����M�?�T� � �Ø~)$��P~@��}zl��� k �;~)� � � x �>�,�.� x �'�}y{��}����Q��;a� � �0$3�M�,z{���Q�'������� x � � �M�,z��?$>���*�a�%�>��$7$Mz x ��z+� � ~ �Ø~)$��P~@��}z x ~@y{zn� x ~���������� w � � �¤�¤��$�~~���Izf·���b¿°�­�¿£�� ��M�,z%$Mz3��� x �m���?�Q�����%�>��$"$Mz x ��zK�¦§  @¨�b¯��¿£�¯��a8���£¿ ?¾À¨C� ¸ · �;°q«¦q§  Ø¨ ·  �®Tb¯��¿£ã� «©¬C­��¡®@¨ª¯@°@�¦ µ|¶ ³�� · ¢À¯C¸� à¹·���b;°@­�¿£W¸,æ ´ ¨ ²² § ³��q¯?¬�¸ê«©¨q¨C�ª ?� ¿ ¢ · ��  § ¸ Yb¯��;£º¹��?�U�Cà §¦ ¯���b�¯��;£A� · �¿°¦ Ä�ÄÜË�Ì�ç�Ë�ÌÙU�,çÀÉQÇåÎ�Û ÏÚÞÀÎ@×�Ë�ÌÙºÓ Ð Þ,ÎØ×�Ë�ÌÙ�ÈÀËCÞ,Î Ó Ð ÖCÞ�È�é ë�ì¿Í?Ì Ðí z ~?����� x z�z � ~ � ���K�;~?�3z x �0��$"� x y{z x �?���>� x ��~~� x � x,�Ýx ~@y{zl�(� � ~?��$Mz�~ � �\���0� x � � � z x ���¤�;z%$���� k �,z � �.�C�;~?�z x �0��$"� x y�z x �+�>� x ��~~� x � ��$Mz � z�� x z � x ~�y{zl� � �0$n�M�,z zl�0�;~?�����I�)~ x � ~)$,�.�Q�,y{z%����� � � x �>�,�.� x ��� í z�$Mz���$Mzl�Iz x ��M�,z � �.�C�;~?�ªz x �0��$"� x y{z x �î~0�r~*$Mz � z%$Mz x ��z*�'� x ��z3z�~��M� ��9 à � zl�Q�P~)$�~������ x�� � �¤�9~)� � y�z x �f�.� � ���M��~ x z �Rx ~�y{zK�¦§  @¨�¯���¯�¨�� �� � « µ ¼~�ª¼ÂÄ�¼�³;¼¡Ä�¼:Á;¼ÂÄ�¼ È ¼ÂÄ�¼�«¡¼ ¶ ÄÄË�ÌÂËÎ0�;É ÌÂÊ�Ï ÞÀÎ@×�Ë�ÌÙàÈ,ËKÞ,Îaéji0§Akb§�¾¦§�Ó�§0¾¦§ÒÓb§�¾¦§>l�§0¾Z§�ég§/m¦§  @¨r8 § °:b¡¢ § � �� � « ·  Ø¬�¯��¯?¨?� ?� � Ä�ÄÙ¡ÈÀÆÜ�ÖCÈ �¿É ÌÂÊcÏÚÞ,ÎØ×�Ë�ÌÙ�ÈÀËCÞ,ÎRתÉ?ì�éRסÉ�ìni�§ kb§�¾¦§�Ó�§0¾Z§�Óg§0¾¦§4l|§0¾±§�éb§Xmí z x � �#� �}�Kzö~ �;~)$>�'� x,� � � x �>����� x©� ��$ �n9 àq��$7� � $�~@y����±Á5�F~ x ;a��~)���M�,z ��z � � x,x � x,� � � �M�,z^���"$�� x,� ~)$Mz��;��}�,�;z � �¦§  @¨ ·  ®R¨,°@¾ «a¬C­��¡®@¨ª¯@°@�¦ µ @-½Æ¶ ¬ » Är½ ¹:½ ¬ º�» ¯@£5ı½ Þ ¬rÄ�  ± ¾ ·  �¸¸,¯Ø°��  åı½§a0¬ ¸X¹<ß � ¶ ³�� ½  �® § ¹?¯@£�Ê� Àæ ´©µ @q  ± ¾ ·  �¸¸,¯Ø°��  åı½§a0¬ ¸X¹<ß � ¶ ³�� ½  �® § ¹@¼C¯�¨�¼0Ê� ,æ¦ ¢��;£W  ± ¾ ·  ¸�¸,¯Ø°�� «a¬C­��¡®Ø¨¡¯@°@�¦ µ @º¹�  ± ¾ · ­p8 § °Rb¡¢ § �� ?� � Ãã �� ¶ ³��a ¦¦ ¢��;£W  ± ¾ ·W· �;°a«¦ §  @¨ ·  ® ·  ¸@¨� ��Ý«a¬C­�ª®@¨ª¯@°��¦ µ @c¹�¢@¨À°?½ · �;°�Ãa ��5ÄR¹ ·  ¸Ø¨�¹ ú ¾¾5¹� ?�0Ê� ���ÃÃ�Ãã �� ¶ ³��a ¦ ´©µ @Ç� ¶ ³��a ��

Page 93: Functional Programming Using Calm Light

ó0ä EGFJH3I*K|L=M4�c��P�H�S�GGd�HASQ\^H�G9G�GgHJW(X+_|H�X`L¦ ¯��q¬C­��¡®@¨ª¯@°@�¦ µ @©½�¶ ú�¸�Þ�½Qú Är½ ¹:½ ¬ º�» ¯Ø£5ı½ ½�f:» ÄR¹�  ± ¾ · ¹?¯@£ ²² · �;°;Ãé  � ¶ ³�� ú bª¸�¹�¯@£ãÊ� ,æ ´aµ @à¹�¢@¨,°�½ · �;°;é ?�¡ÄR¹ ·  ¸Ø¨  ��Cé ��W� ¶ ³��W ��¦¦ ¢��;£W¢Ø¨,°�½ · �;°a«a¬K­�¡®Ø¨¡¯Ø°��¦ µ @-½ ¹:½ ¬ º�» ¯@£W� ¶ ³��¦ ¹Q¨ · Á�b¯��¿£�¯��a8���£¿ ?¾À¨C� ¯@£ · �¿° � ¯�¨C��·��b;°@­�;£a¸q³��¦ ¾ · ¯��,¨?�¸Ø¨ · ¯���8 ¼Ò·���b;°@­�¿£ ú a<¶�¯@£, ?�,¨ª¯?¬ª¯C  · ² ¼ÂĦ ¾ · ¯��,¨?�¸Ø¨ · ¯���8q¸åÄ�¾ · ¯��À¨��?�ª  � § ¯��ª �¹�Ã�Ħ · ¢À¯C¸  ¹�»¿¢À¯ § ­ ·  W¼ ú a<¶©¾¡¢ · ¸À¯���8¼CÃ�æ ´©µ @-½ ¹:º�» �¬� ¶ ³�� ß °��ª¸@¨©�¦ ´©µ @-½ ¹ »'ÄR¹�  ± ¾ ·a· �¿°�Ãa ?�¡Är½ » � ¬ º ÄR¹�  ± ¾ ·a· �¿°�Ãa 0�'Ħ ½�¬�¶¼a�¬1ÄR¹�  ± ¾ ·ê· �;°;é 0¡'ı½M» ¹ � ¶ ³�� ß °@�;£9¹� ?�0Ê� ��ãÊ� �¡�æ ´©µ @-½Æ¶�¢ ú (1ÄR¹�  ± ¾ ·ê· �;°;é åı½ (�¢ ú (W� ¶ ³��a åÄ�ÄÎÆ�Ç ÏöÎÆcÀ�É Ì Þ,Î@תÉCÖ��ºÓ Ð ÎÆ�Çb�ÀÖCÞÈ/é�ë�ì¿Í�Ì ÐÉ Ñ Ç¡×ªÉ�ÞÞÀËÆ�Ì ÏöÎÆcÀ�É�Ì�Þ,ÎØסÉCÖ��ºÓ Ð ÖKÞÈqé ë?ì,Í?Ì ÐÉ Ñ Ç¡× ÏÚÞÀÎ@×�Ë�ÌÙ�ÈÀËCÞÀÎqÓ Ð ÎÆcÀ�É�Ì�Þ,ÎØסÉCÖ��ºÓ Ð ÖKÞÈqé ë?ì,Í?Ì ÐÖÎ�Æ�� ÏÚÞÀÎ@×�Ë�ÌÙ�ÈÀËCÞÀÎqÓ Ð ÎÆcÀ�É�Ì�Þ,ÎØסÉCÖ��ºÓ Ð ÖKÞÈqé ë?ì,Í?Ì Ðk �,zm�>�Cy{��}z%�Mz{�;~)$���z%$*�M�;~)� � z � �¤� �T�?�Iz+$Mz�~ � ��~����"$,� x,� ���>� x �Kz%$"�������*� x �"��~����7$Mz�~@y ��~ x � ��$"� � �?��zl���M�,z�"�0;Cz x ���"$Mz�~@y©�M�;~��T���%�;~)$��Iz � ¥¦§  @¨©¾ª¢ · ¸  �ب,°@¾�¸ê«©¨,°@¾1¹ §   ±   · ¹�¸@¨ ·  ¢ ½b��°C¬���¸@¨ · ¯��a8a¸,Ã�Ã�ÄÄÇåÖØ׿޿É��,Î�Æ�Ç Ï�Þ,Î@×;Ë�Ì�ÙºÓ Ð ÎÆ�Çb�ÀÖCÞÈ/é�ë�ì¿Í�Ì Ðà¡z%�3�?�T�"$M���0��$ � $�~@y{y�~�$J2 � z � � x �0�3~)� � y�z x �T�M�,z � ���K�;~?�9z x �0��$"� x y{z x ��~)�îz�~0�Q� � zl�Q�P~)$�~������ x ¥=�Q� ��� � �¤� ��;z��;z%$ � �0$My{z � ~ � �Qz%$*�M�,z+�Iz�y�~ x �����(�"$Mz�~��My{z x �*� � �n9 à\��$"� � $�~@ym�c4�� í z x z�z � �"� � $����Mz � ���,���zî+� x �'� � z���"$,� x,� ���?�'� x ��z+®n���6�Q�,z����"$�� x,� zl�"��~��;z��Q�;~)$�~��>�Mz%$��¦ ¾ª¢ · ¸  �ب,°@¾à¼ §  @¨q¬�b¡  ® ® ± � ± Ä�¼ÂÄ�ÄÓ�ÏÚÎÆ�Çb�ÀÖCÞÈ/époÂÉâ@È-��§�ìf§<��ü;ÜCÞ-�0§ Ñ §R�rqCÖØ׬� � �¦ ¾ª¢ · ¸  �ب,°@¾à¼ §  @¨ ± b¡ ÷����¹�¹¤® ® ± � ± ö��Ã�Ä�¼ÂÄ�ÄÓ�ÏÚÎÆ�Çb�ÀÖCÞÈ/éoÂÉâ@È-��§ Ñ §<��ü?ÇÇ ��ü?ÇÇ��AqCÖØ×4�)�rs�Æ�Ì¡ÞÀÎ�� � ��ü?ÇÇ���ü�ÜKÞ-��§ Ñ §R�tqKÖ@×4� � �rsÆ�Ì¡ÞÀÎY� �Q� �ø x ���0� x � � � z x ���¤�;z%$��=~ x � � x � z�� x z � �K�;z%$�~)�"�0$��8~)$Mz��>�0$"$Qzl�>�I�}� � z%�Mzl�>�Qz � ¥¦ ¾ª¢ · ¸  �ب,°@¾à¼ §  @¨qÁ�b¡ �8Z¡'Ä�¼¡ÄÄ��ÌÂÜÆKÍ?Ì�ç�ü�dÒ Ëç,É�Ì�Î�Ë@ì�ËÀÉ?×�Ï Ù��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ï�i;ÖËCÈ�ÍKתÉO§"ü�dÒÝÇ9Ö@׿ÞÀË�Ì�ÙT§¦ ¾ª¢ · ¸  �ب,°@¾à¼�¬#¹�¯?¬ �©¨K�¡ ?� �W  § ¸� W³)¬¡¯Ã«�±¡5Ä�¼ÂÄ�Ä��ÌÂÜÆKÍ?Ì�ç�ü�dÒ Ëç,É�Ì�Î�Ë@ì�ËÀÉ?×�Ï ì��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ï�i;ÖËCÈ�ÍKתÉO§"ü�dÒÝÇ9Ö@׿ÞÀË�Ì�ÙT§¦ ¾ª¢ · ¸  �ب,°@¾à¼ áã± Á1Ä�¼ÂÄ�ÄÍÈ�È;É�Ù�ÖCÈWâ Û�ÖØ×�ÖÀâCÎ,É�×%Ï Ô��Ì�âCÖKÍ?ÙÛÂÎqÉ Ñ âÉMÇåÎË�Æ�Ì8Ï�i;ÖËCÈ�ÍKתÉO§"ü�dÒÝÇ9Ö@׿ÞÀË�Ì�ÙT§

Page 94: Functional Programming Using Calm Light

ö unvWVYX Z\[ u%w

x f ozy d u x _ u l b�f oqe%`�_ k h w � d iWk gmiWb�l _

w�x �Q� ���`�Izl�>����� x � � z � �}�Kz�~(�Iz�y�~ x �����3�"$Mz�~)�Qy{z x ��� � ��9 àö��$7� � $�~@y���� í z � � �¤���?��z+Ù0ð@õ;ñ01�òüøjú°ðQù,ô�ø¤Ò�ô�ø�hØòüõQ×C���� zK� � z � �¤�¤� �Qzl���6�M�,z*�I��;z��>�0$"$Qzl�>� x zl�"�T� � ��$"� � $�~@ym� � ��$�� x,� �M�,z>��$6� x �Mz%$M��$Mz%��~������ x �ÿ�� þ�ÿ zn�6¹ w3�J|����þ6w3·����T�í z x z�z � ~(�I����z � �0$ ��9 ào�Iz�y�~ x �������Ø~Ø�.�,zl�n2'$Mz���$Mzl�Iz x ��� x,� $Mzl��������`� � �>�Ky{������~������ x �>4�� � �Iz�y�~ x �����=�@~?���,z� �¤�¤�á��z�z>���M�,z%$=~ x � x �Qz � z%$����0$î~��%~@y�� � � x �>����� x ~?�9�@~?���,z � $"�Ky �n9 à �Ø~?���,zl�`�"� �n9 à �@~?���,zl���¦ ¨�ÁC¾ª a¸  ½ � ¢ § « ß °@�¡¸@¨ � ¢ § °C¬�¯��,¨¦ ´ »�­�� � ¢ § °C¬Y¹�¸ �½ � ¢ § ³��W¸� �½ � ¢ § Ã�Ä�ÄŤ¿ØÇ'ÉãÞ¿ÉÒ�ÂÊÖCÈ/ç,É?ì;Ë�Ì�ÉCç'æí z x � � � z�� x z�� � ��z�����z�������� x ��� k �,z��?$����`� x z � �¤�¤�9�;zn�?�Iz � � �,z x � z�z x �>�0� x �Mz%$3~ x �¤�¤��!°� ��;z � ��$"� � $�~@y~ x � � �¤�¤��$Mz���$Qzl�Iz x �*$7� x !°���}y{z+�I����z{z%$"$"��$���� k �,z(�0�Q�,z%$*� x zn��� �,z��}� � �� � �0$ � z���� �C� � x,� ¥`�.� � �¤�¤���;z($�~�����z �� �,z x �0��$T� x �Qz%$M��$Mz%�Mz%$*2��Iz�y�~ x ����� � � x �>�,�.� x 4 � �zl��� x �"��~ x �¤�¤�}z � ~?�=�'���"�;~)����� x �k �,z � �@�¤�.� � � x,� � � �{z��?��z�������� x � � �¤�¤�1�;z�$�~~���Iz � � x ��~0��z�� � $"� x !°�,��y�z �n9 àÂ� ��;z�z%$"$7�0$��;~ x � � x ��~��Iz�� ���� � � � �0��$J��z�y�~ x �����3�"$Mz�~)�My�z x ��¥¦   ± ®� ?¾,¨ª¯@°@� ¹�§§ ¨�ÁC¾ª K£5Ä�Äh Ñ âÉMÇåÎË�Æ�Ì4Í�ÈÈÀÎ~¿@ÇáÉCçRç,É�ì�Ë�Ì�ÉCçáæ¦   ± ®� ?¾,¨ª¯@°@��a, �½�¢��,¨ Þ ­�8/°C¬�¸@¨ · ¯��a8rÄ�Äh Ñ âÉMÇåÎË�Æ�Ì\dªÉÒ�ÂÖ�Ì�Î${�Í�Ù�çÀÉ?ì�Ë�Ì9ÉKç'æí z{y(�?��� � ���Cz�~��Iz�y ~ x �,��� �Ø~?���,z��"���0��$=�;~0�'��� � � x �>�,�.� x �(2�zl���;~?����� �Ý~ x � ~)$����M�,y�z%�����(�K�;z%$�~)����� x �>4�� k �,zx z���� � � x �>�,�.� x �"$�~ x � � ��$Mym�%~���~@y � � � x �>����� x � x �"��~ x ��9 à �Ø~?���,zK�¦§  @¨�¯���¯�¨��¸� �½�¢?�,¨ª¯C®�¸©®�¢�½ § �@¬K­� «¦ »@­� � ¢ §¦ ¹M¬C­�ª®@¨ª¯@°�� ß °��ª¸@¨ � ¢ § �à³��¦ »@­� � ¢ § ¹Q¬K­�¡®Ø¨¡¯Ø°�� ß °@�¡¸Ø¨ � ¢ § ½c³�� ß °@�¡¸Ø¨ � ¢ § ¹�®¢�½ § �جC­�\�ê½9æ ´ �q³�� · ¢,¯K¸  ¹�§§ ¨�ÁC¾ª K£�æ ´ �a³�� · ¢À¯C¸�  ¹K§�§ ¨ÁK¾¡ �£�Ã�Ä�ÄË�ÌÂËÎ0�Þ;ÉÅ��Ö�Ì�ÎËÀâ�Þ Ïr��Ë�ÌÂÎqÓ Ð Ë�Ì�ÎqÓ Ð Ë�Ì�Î � Ó Ð Þ;ÉÅ��Ê�ÖCÈqéqë�ì¿Í�Ì Ð

ó<H

Page 95: Functional Programming Using Calm Light

ó:t EGF3HJI�K�L=M��)�QPR_|W+K}| I�L+��SQL=\^H3W+KbVcE�S�[TYRH�S�G¶I�M*[*X6M6H3\ÂS<`� � �,~0�"�����7�P~)�Mz�~��%~@y���à�� � � � � � x �>����� x �7�jz�~��M� �n9 à ��$Qz � z�� x z � � � x �>����� x ¥

¦§  @¨�®�¢�½ § �@¬K­�ª®@¨¡¯Ø°��/«a¬C­�ª®@¨ª¯@°��¦ ¼l�¡¼©³���¾ ·  Ø¬¡¯ ± �¦ ´ ¼@³;¼©³���¾ ·  Ø¬¡¯ ± ³¦ ´ ¼:Á;¼©³���¾ ·  Ø¬¡¯ ± Á¦ ´ ¼ È ¼©³���¾ ·  Ø¬¡¯ ±WȦ ´ ¼�«¡¼©³�� ¹Q¬C­��q�R½c³�� ¯?¬©�¿«?½�¨C�ª ?� �©  § ¸ ã��æ ´ ¸q³�� · ¢,¯K¸ à¹la¿ �½�¢?�À¨ Þ ­a8�¼Å·�¼µC�;° � �a¾ · ¯�½å¯?¨ª¯ �  ;¼CÃ�ÄÄâCÖ��¡ÈQ�Kì¿Í�Ì9âKÎËÆ�Ì ÏÚÞÀÎ@×�Ë�ÌÙºÓ Ð Ë�ÌÂÎ Ó Ð Ë�Ì�Î Ó Ð Ë�ÌÂÎaé ë?ì,Í?Ì Ðw�x �M�,z��M~@y�z � ~?��~0��� � �0$î�;~)$���� x,� � � z x z�z � z � ~ � ���K�;~?�9z x �0��$"� x y{z x � � $"�Cy � � ���M�Ã�M�,z=� � x � � x,� � z����M��� �� � z x �,� �;z%$>� � ~0���>�Ky{�����Mz � � � z x z�z � ~���z�y�~ x �����%z x ����$"� x y{z x � � $"�Ky � � ���M���M�,zT� x �Qz%$M��$Mz%�Mz%$ � �¤� � � z%���Q�+�M�,z�Ø~Ø�.�,zn$Mz���$Mzl�Iz x �Mz � ��+� � z x ���¤�;z%$���� k �,z � ���K�;~?�G�Iz�y�~ x �����îz x ���.$7� x y{z x � � �¤�¤�9��z�~($Mz � z%$Mz x ��z*� x �M�,z��������6� ���$Mz � z�� x z �Ú�n9 à �@~?���,zl���¦§  @¨�¯���¯�¨��¸� �½�« ½�¢?¾ ¹Q¬C­�� ± ³�� ¯��¯?¨?�¸  ½�¢��,¨¡¯K®¸Â¹�®¢ ½ § �@¬C­��¡®�¨¡¯Ø°�� ± Ãæ ¯���¯�¨��� ?� � ÄÄË�ÌÂËÎ0�Þ;ÉÅ� Ï Þ¿ÉÒ��Ê�ÖCÈqÈ,ËKÞ,Îaéi�i¿Í�Ì�ÊÖKÈ ë?ì,Í?Ì Ð ¾^i,Í?Ì�Ê�ÖCÈ ë�ì¿Í�Ì Ð ¾�i¿Í?ÌÂÊÖKÈ ë?ì,Í?Ì Ð ¾^i¿Í�Ì�Ê�ÖCÈ ë�ì¿Í?Ì Ð ¾^i,Í?ÌÂÊÖCÈWë?ì¿Í�Ì Ð m¦§  @¨r8 § °:b¡¢ § �¸� �½�« ·  Ø¬�¯��¯?¨?�¸  ½8Ä�ÄÙ¡ÈÀÆÜ�ÖCÈ ��Þ;ÉÅ� ÏÚÞ;ÉÅ��Ê�ÖCÈaÈÀËCÞ,ÎRתÉ?ì�éתÉ?ìni�i¿Í�Ì�ÊÖKÈ ë?ì,Í?Ì Ð ¾^i,Í?Ì�Ê�ÖCÈ ë�ì¿Í�Ì Ð ¾�i¿Í?ÌÂÊÖKÈ ë?ì,Í?Ì Ð ¾^i¿Í�Ì�Ê�ÖCÈ ë�ì¿Í?Ì Ð ¾�i¿Í�Ì�Ê�ÖCÈ ë�ì¿Í?Ì Ð mÿ�� þ,u zn�6¹ w3�J|����~:�+�(�G|�� *�(�k �,z6�Iz�y�~ x ����� � � x �>����� x ���G�M�,z�� x �Mz%$M��$Mz%�Mz%$|������z�� � � k �,z%$MzT���|� x z � �0$åz��À��$Mzl�7�'��� x �1~ x � � x z � �0$ � zl�Q�P~)$�~)�,�.� x ���k �,zn� x z � �0$8z��À��$Mzl�7�'��� x �*�>�Ky{�����Mzl�3�Q�,z��Ø~Ø�.�,z(� � ~ x �n9 àÝz��À��$Mzl�7�'��� xÚ� $"�Cy ~ x z x ����$"� x y{z x � · �;°;� k �,zz x �0��$"� x y�z x � � �¤�¤�J�>� x ��~~� x �M�,z��Ø~?���,zl�(� �î� ���K�;~Ø� �}� � z�� x z � �n9 àa�@~?���,zl����$�� � �Mz�y{���0$�~)$Q� �n9 à©�Ø~?���,zl���w �`���6��$ � ~ x ��5�z � ~��î~ ���������¡~ x � �M�,z x �,y��;z%$��`$Mz���$Mzl��z x ��� x,� �Ø~)$,�F~����z(���%�>��$"$Mz x ��zl� � �¤�¤�1�;z��?��z � ~0��� x � ����zl�� x �7�+�M�,z=z x �0��$"� x y�z x ���¦§  @¨ ·  ®\�,¨K�a� «a¬C­�ª®@¨ª¯@°��¦ µ|¶ ³�� · ¢À¯C¸� à¹�»,¢,¯ § ­ ·   ¼ �À¨C�9¼Kæ ´�±�²² § ³��q¯?¬a�¿«�� ¨K�¡ ?� ±   § ¸� ã�À¨C�Y¹I�¡³��Cà § ÄÄÌ�Î�Û ÏöË�ÌÂÎ�Ó Ð èQÖaÈÀËCÞ,Î/Ó Ð èQÖaé ë�ì¿Í?Ì Ð¦§  @¨ ·  ®q¸  ½�¢��,¨ · �;°a«¦ §  @¨ ·  ®a¸� �½à«a¬C­�ª®@¨ª¯@°��¦ ß °��¡¸Ø¨©�à³�� ß °@�¡¸Ø¨ � ¢ § �¦ ´�¿ ¢ · ¹I��é³��\�,¨C�ê� · �;°¦ ´rß °��;£9¹� ���Ê� ��ãÊ� 0¡�Ã\³��¦ ¹|½�¢@¨;®?��¸� �½t �� � ¯?¨K� ß °@�¡¸@¨ � ¢ § ��³��a¸� �½c 0¡¦ ´rß °@�¡¸@¨ � ¢ § �à³��a¸� �½c 0�¦ ´ �q³�� · ¢,¯C¸�  ¹K§§ ¨ÁK¾¡ K£;æ ´�ú b¡¸�¹%��Ê� |½�ÃR³��R»@­� � ¢ § ¹Q¬C­�� ± ³��W¸� �½�¢?�,¨ ¹ ±%²�² · �;°�ÃR |½�Ã

Page 96: Functional Programming Using Calm Light

�)�QP.�QPRLGe*HJ\^I+GbLTS ó0C¦ ´�ú ¾¾1¹� ?�0Ê� 0�;é³�� ¹|½�¢Ø¨�®���¸  ½  ��¦ � ¯?¨K� »�­�� � ¢ § ¹M¬¡Ã©³��\¬Y¹�¸  ½t 0�;æ ´ �q³�� · ¢,¯C¸�  ¹K§§ ¨ÁK¾¡ K£;æ ¯���¸  ½¦ Ä�ÄÞ;ÉÅ��Ö�Ì�Î�ÏÚÞ;ÉÅ��Ê�ÖCÈaÈÀËCÞ,Î/Ó Ð ÖCÞ�È Ó Ð Þ;ÉÅ��Ê�ÖCÈqé ë?ì,Í?Ì Ðk �,z{y ~~� xö� � x �>�,�.� x y(�?���=�;z�~@��}z+�"���"$Qz�~)��~ x ��9 à � zl�Q�P~)$�~)����� x �åz��@~?���;~)�Mz��.�?�9~ x � �,� � ~��Mzm�Q�,z � �.�C�;~?�z x �0��$"� x y�z x ���Ä2p8 § °Rbª¢ § � ?� � ~ x � 8 § °:b¡¢ § �¸� �½b4��¦§  @¨�¸� �½�¢?�,¨ª¯C®�¸R«a¬C­�ª®@¨ª¯@°�� ½  �® § ¹�¸�Ê� ,é³��¦ §  @¨ ·  �¸?­ § ¨q«�¸  ½�¢��,¨z­p8 § °:b¡¢ § �¸� �½� ¦ ¯��j8 § °:b¡¢ § � �� � ² «�¸ ²�² ­p8 § °:b¡¢ § � �� � Ħ 8 § °:b¡¢ § �¸� �½ ² « ·  �¸?­ § ¨ ²�² ­p8 § °:b¡¢ § �¸� �½îĦ ¾ · ¯��,¨?�¸@¨ · ¯���8 ¼ ú a<¶ ¿ ¢ § ­ª a°K¬à¼ÂĦ ¾ · ¯��,¨?�¸@¨ · ¯���8q¸åĦ ¾ · ¯��,¨?�¸@¨ · ¯���8 ¼/¯K¸ ¼ÂĦ ¹|½�¢Ø¨�®�� ·  �¸?­ § ¨ � ¯�¨C�¦ ß °��ª¸@¨ � ¢ § �à³��\¾ · ¯��,¨?�,¯��,¨\�¦ ´ »@­� � ¢ § ¬�³��\¾ · ¯��À¨��¸Ø¨ · ¯���8 ¼�@جC­��0�;¼KÃ�Ħ ¾ · ¯��,¨?�?�¡  � § ¯��¡ Â¹?Ã�ÄÄÞ;ÉÅ��Ö�Ì�ÎËÀâ�ÞYÏ ÎÆ�Çg�,ÖKÞÈ Ó Ð Í�Ì�Ë�Îaé ë?ì¿Í�Ì Ðÿ�� þ,� ���(w3¹���·��T�¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾º¼ §  @¨a¬�bª ¦®Q® ± ��� ± �ÂÄ�¼CÃ�Ä�Äü�d�Ò�qCÖKÈÍ¿É/ÆØìaì�ËCÞ ë?ì,Í?Ì ÐÓ�Ï Í?ÌÂËÎqé©� �¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾º¼ §  @¨�¯�bª ¦®Q® ± � ± Ä�¼CÃ�Ä�Äü�d�Ò�qCÖKÈÍ¿É/ÆØì�ËqËCÞ ë?ì,Í?Ì ÐÓ�Ï Í?ÌÂËÎqé©� �¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾º¼ §  @¨ ± bª �¯ ¹Q¬j��Ã�Ä�¼CÃ�ÄÄü�d�Ò�qCÖKÈÍ¿É/ÆØì Ñ ËCÞ�ÂÓ�Ï Í?ÌÂËÎqé©� �¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾º¼ §  @¨aÁ�bª �¯�¬ ± ¨C�ª ?�Y¹%® ® ± � ± é  § ¸ «�a¬¡¯R�'Ä�¼CÃ�ÄÄü�d�Ò�qCÖKÈÍ¿É/ÆØìs¿àËCÞj²Ó�Ï Í?ÌÂËÎqé©� �

Page 97: Functional Programming Using Calm Light

ó0D EGF3HJI�K�L=M��)�QPA_|W+K}| I�L+��SQL=\^H3W+KbVcE�S�[TYRH�S�G¶I�M*[*X6M6H3\ÂS

Page 98: Functional Programming Using Calm Light

ö unvWVYX Z\[ ur�

^ f `ck x e%f g i u ` n i�_êerk�f

ÿ�´jþ�ÿ îÂ�"���� ��%�JA�= �¹ í��%��w�ÿ 3�g�í z��;~?�KzÄ��z�z x �M�;~)� � z � � x �0�%�;~?�Kz3$Mzl�>��$��'��� x � x �n9 à'� � � � z��Kz%$����������ï�?�Q�"������}zn�"��z x �>� � z*$Mzl�>��$>�'��� x ���� z�� x � x,� ~3Ð1÷QùÀûKòüõ;ú'ø�û01+é�òüõ;ñCú!ûKð�� � �,�,�?�)� x �Ä�>�Cyj� � x ~)�7�0$T���3~ � � x �>����� x�� ���?�Q���M�;~)�?¥

��� ���ïzl�0� �}�Ø~Ø��z x �*�"� � 2 ��� 41y+� � ����m�M�,z=z��@~?���;~)����� x $"��}zl���� �0$ ~ x ��z��,��$Mzl�"�'��� xz� � � �>� x ��zl�0�,z x ��z+� � �M�,z�zl��� �}�Ø~?�}z x ��z � �}�Kz x ~@���@�Kz*���3�M�;~)�ï�,�À���)� x ���>�Ky�� � x ~)�"��$����~ x z x �>� � z�$Mzl�>��$>�'��� x �Rà¡z%�+�?� x �0�Mz � ��� � � z��,��$Mzl�"�'��� x � � ~ x � � ~)$Mz zl�0� �}�Ø~Ø��z x ��y+� � ������M�,zz��Ø~Ø�.�;~������ x $7���zl��� k �,z x ���>� x �'� � z%$%¬�¬�¢®Ø¨(�"� �;z6�M�,z � � x �>����� x ~?�U�C����~~� x z � � $"�Ky��M�,zî��� � �+� � �Q�,z � ~��>�"�0$��P~?�� � x �>����� x ���~@�?���"$�~��>��� x,� 2°��� zK�|�?�'� x,� ~0�9~8�;~)$�~�y{z%�Mz%$%4��M�,z%¬;¢®@¨3� � z x ���¤�;z%$��~ x � ¬ª¯ ± ~ x ~)$M� ���"$�~�$M���,�À���)� x ��>�Ky�� � x ~)�"�0$?� í z��;~?�KzK¥

¬�¬�¢�®@¨(����®Ø¬�¢�®@¨õ�ع¤®��'� ¯?¬ «©� �a¨C�¡ �� �©  § ¸ �Á\� ¹Q¬;¢®@¨ ¹�³\� �CÃ�Ã\¬¡¯Ã<`� � �K�}z%�3�?�J�>� x �'� � z%$J�M�,z=z��,��$Mzl�"���.� x�� æ±2�¬¡¯ ± ¬¬�¢�®@¨?4m¡��õøJ�'� x,� ����$T� x �"� ������� x ~@���0���6�M�,z z��Ø~?���;~)�,�.� x$"��}zl���¡~ x � �M�,z � z�� x ������� x � � ~ �,�,�?�)� x �Ä�>�Ky�� � x ~)�"��$�� � z*�C����~~� x ¥��� ¬¬;¢®@¨ ¹Q¬¡¯ ± ¬¬�¢�®@¨ªÃR¡} z���P~0�7� x,� ¬¬;¢®Ø¨ ��+����� � z�� x ������� x � � z*�K����~~� x ¥��� ¹¤®Ø¬�¢®Ø¨õ�ع¤®?�o�Ú¯�¬ «ê�W�/¨K�¡ �� �©  § ¸� �ÁÝ� ¹Q¬�¢�®@¨�¹�³\� �CÃ�Ã㬪¯Ã�Ã�¹Q¬ª¯ ± ¬¬;¢®@¨ªÃR¡í z���~ x�x � � �;~0�"���M�,zJ� � �{~)$ � �,y�z x �����"�(�M�,z��?$>���î~@�?���"$�~��>����� x ��� x �,��~ x ���P~)��� x,� ¬�¢®Ø¨�~ x � �m$Mzl�I��zl�>���}�Kz��}��"�{¬¡¯ ± ¬¬�¢�®@¨�~ x � ¡;¥��� ¯?¬ «r¡q�a¨C�ª ?� �©  § ¸ �Á ¡�¹Q¬ª¯ ± ¬�¬�¢�®@¨�¹�³r¡ �CÃÃ\¬ª¯í z���~ xÚx � � $Qz � �?��z��M�,z(�>� x � ������� x ~?�|� x �"�(�����   § ¸� ���$�~ x �Q��¥��� Á ¡c¹Q¬ª¯ ± ¬¬;¢®@¨ ¹�³ ¡A�CÃ�Ã�=� x ��� x � � x,� �M� ��� � ~?�K� � z=z��Cz x �"�;~Ø� �}�^�>�Ky{�����MzK¥��� Á ¡�¹�Á÷� ¹�Á �r�CÃ�à � ýk � ���ÿ���g�Q�,z'z��À��zl�>�Mz � �;z��;~?�0���0$|� � �M�,z � ~0�>�"�0$��P~?� � � x �>����� x � à ���Cz x ~ x ~@�,��$7�K��$��P~)�Mzå�,�,�?�)� x � �>�Cyj� � x ~)�7�0$¬¡¯ ± � � z��>���� �Ú� z�� x z(�M�,z � ~��>�"�0$��P~?� � � x �>����� x ~0�שׁ¯ ± ¬¬;¢®Ø¨¡� � �,z%$Mz=¬¬;¢®@¨+���T�M�,z z��À��$Qzl�"�'��� x ~��?�@�KzK�

ø x� �0$"�"� x ~)�Qz����K� � �,z x �?�'� x,� ��~?�¤��!!��� !!�Ø~Ø�.�,zK�å~ x ��~@�,�������~)����� x � � ~ �,�,�?��� x �J�>�Ky�� � x ~)�"��$ � ���?�Q���M�;~)��¥��� z��Ø~?���;~)�Qzl�6�"� � 2 ��� 4

�}z�~ � �^�"� x � x !°�Mz%$My� x ~������ x � � �M�,zÝz��Ø~Ø�.�;~������ x 2���zl��~)�?�Iz\z��@~?���;~)����� x � � 2 ��� 4 ��z�~ � �^�"�az��Ø~?���;~)�,� x,�2 � 2 ��� 4"4��,~ x � �Q�Q�?�32 ��� 4�~ � ~~� x 4��ó �

Page 99: Functional Programming Using Calm Light

ó0¯ EGF3HJI�K�L=M4��F�P«L=W(E6[õ�3V�W�X¦M6LJE*_|M3S0V%[TWí z � �¤� �G�?�Iz*�M�,z��R�,�,�?��� x �*�>�Ky�� � x ~��"�0$ � z�� x z � ���¡¥

��æ����Xç.2"2��Xë9ç��o2����Xç�2�ë%ëÿ4b��4"4"2��Xë9ç��o2����)ç�2�ëPë�4b��4"4"4k �,z �,�À���)� x ���>�Ky�� � x ~)�"��$����;~0���M�,z �;~)$7�����>��F~�$���� �s� � �;z>� x,� �?�M~����zÃ� x � z%$���~?�¤��!!��� !!�Ø~?���,zÝz��Ø~?���;~)�,�.� x$Mz � �}y{zÂ2°� x �0$ � z%$+�7�¶�M�,zl�7;o�M�;~)� � ~0�>���f���(��� x zl��zl�"�Q~)$M�o�"��; x � � �M�,z�z��Ø~?���;~)�,�.� x $"��}zl��� � ��!p��~?���>����?�>4��9 � x ��z*�M�,z x ~@y{z � ��� �0;��1y��0$Mz%����;Kz�~ x ��$ � � x ~)$M�{�;~)$�~@y{z%�Mz%$ x ~@y{zK� � z � �¤�¤�b��~Ø� ��¬¡¯ ± �M�,z �n9 à z��,��$Mzl�"���.� x�>�0$"$Qzl�I�?� x � � x,� �"�+�M�,z��©�,�,�?�)� x �Ä�>�Ky�� � x ~)�"��$��¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾¦ ¼ §  @¨a¬ª¯ ± b¡  ® ®@¬[�@¹�¹¤® ® ± ��¬'¹¤®Q®@Á[�@¹ ±R± Ã�Á¡Ã깤®Q® ± ��¬'¹%® ®@Á[�@¹ ±©± ÃÝÁ¡Ã�ÃÃ�Ä�¼CÃ�ÄÄü�d�Ò�qCÖKÈÍ¿É/ÆØìaì�Ë Ñ ËCÞ ë�ì¿Í?Ì ÐÓ�Ï Í?ÌÂËÎqé©� �í z�~)$Qz x � � ~@��}z��"� � z�� x z(�M�,z �n9 à � ~0�>�"�0$,�F~Ø� � � x �>����� x ¥¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾¦ ¼ §  @¨a¬;¢®Ø¨�b¡ R¬¡¯ ± ¹¤®Q®@¬[�@¹¤®Q®?�o�ö¯?¬ «ã� �a¨C�ª ?� �¦   § ¸ �Á\� ¹Q¬�¹�³\�-�KÃÃݬª¯Ã�Ã�Ä�¼KÃ�Ä�Äü�d�Ò�qCÖKÈÍ¿É/ÆØìaì�ÖÀâCÎqËCÞWë?ì¿Í�Ì ÐÓ�Ï Í?ÌÂËÎqé©� �¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾º¼�¬;¢®Ø¨�g5Ä�¼CÃ�Ä�Äü�d�Ò�qCÖKÈÍ¿É/ÆØì�ËÎqËKÞ�Ä�²<Â<��²Ó�Ï Í?ÌÂËÎqé©� �~ x � �M�,z ��9 àoïb�}�?� x ~��%�7� � � x �>�,�.� x ¥¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾¦ ¼ §  @¨a¬ª¯�b�b¡ )¬¡¯ ± ¹%® ®@¬[�@¹%® ®?�o�Ú¯�¬ «ã�î�)¨K�¡ �� �¦   § ¸� q¯?¬ «©�j�a¨C�ª ?� �¦   § ¸  �c¹Q¬Y¹�³ã���CÃÃà¹M¬�¹�³\� ��Ã�Ãݬ¡¯\¬¡¯�ÃÃ�Ä�¼CÃ�ÄÄü�d�Ò�qCÖKÈÍ¿É/ÆØìaì�Ë�ÜqËCÞ ë�ì¿Í?Ì ÐÓ�Ï Í?ÌÂËÎqé©� �¦ ¸� �½�¢?�,¨ª¯C®�¸�¹I¾¡¢ · ¸ Q�@¨,°@¾º¼�¬ª¯�bj£'Ä�¼KÃ�ÄÄü�d�Ò�qCÖKÈÍ¿É/ÆØì�ËÎqËKÞ�Â�ÄÓ�Ï Í?ÌÂËÎqé©� �ÿ�´jþ,u vx�T�õ�(�g�b�� *� w6�Aw �+� �%¹ �"|��þ*�©�= �����ÿ�¨���GÀ � �>�0��$��IzK�b� x ~�y+�0$Qz+$Mz�~?����������� ��$"�0�7�0�I����zK� � z � �0�� � z����Mz x � �Q�,z&�>� x �>$Qz%�Mz�~ x � ~��?���"$�~0�>�(�I� x ��~Ø�Àzl�3� ��n9 àÃ� x �0$ � z%$T�"�+���,�,���0$"�6$Qzl�>��$��'��� x ~0�%~���$��}y(�����}�Kz(�>� x ���"$7�?�>��� í z � � x �0� � �n���î�,z%$Mz=�;zl��~��?�Iz � z � ~ x ��"�+;Cz�z�� ��9 ào�'�}y{��}zK� k � �������3~ x � x �Mz%$Mzl�,��� x,��x � x �7$��}�0�P~?�9z��,z%$��7���Iz0ª

Page 100: Functional Programming Using Calm Light

ö unv��YX Z\[ u��

w o/b oqe%` o�y d e%f g � d k ÷6y l k�i�d � e%_al b f x

ozy d u _�y f o�� u _ae%_

í z x � ��� ~ x �J�"���;z%$ � �0$My ����~)�����*�I��;zl�Q�,zl�";�� x,� � � ��9 àÝ��$7� � $�~@y����?�Q�;~)�T�������"���>�Ky{��}z%�Mz(�I����zl�M�,zl�7;�� x,�éQô°Ó�ûKðIôîz��Ø~Ø�.�;~������ x �;y ~);0� x,� $7� x !°���}y{z��I��;z*�Mzl���>�T� x,x zl��zl�"�M~)$Q� � ��$�� x,� z��@~?���;~)����� x � � �n9 à ��$7� � $�~@y����ï���$"�M�,z%$My��0$MzK� � z � ~ x �3�"� �;~?�Kz ùÀû0Ú�ð)1�ûKð!ù�Ò�ò}ó%1 2°��� zK��~?�¤��� � �M�,zn� � z x �����I� � � x �>����� x � � �0$�z��¿~�y{��}zK�g�"��;z�~@�,�������~@��}z+�"�{~ x �m;�� x � � � � ~)��~ 4��k ��;z��I� x �M�,zl�'���îy ~����;z���z�z x ~0�î~ � ~�y{zK� í �,z x �}z�~)$ x � x,� ~ � ~@y�zK� � z=y(�?����¥

/ ��z�~�$ x �M�,z�$7���zl��2 � �;~��=����~?�¤��� � z � �;~ x � � �;~)�T��� � �0$Q� � �,� z x 4 ñ/ ��z�~�$ x ~ � � x,x � x,� ���"$�~��Mz � �K�w|x � ��;z��I� x �M�,zl�'�����b�M�,z($"��}zl�*� � �M�,z � ~@y{z{~)$Qz��~Ø� �}z � ~öú°ðQùÀô�ócð?ó�ú!ôl1���~ x � �M�,z � � x,x � x,� �,�"$�~)�Mz � ������M�,z*�I��;zl�Q�,zl�";�� x,� ~?� � ��$����M�,y �w|x �M�,z � �@�¤��� � � x,� ��zl�>����� x ��� � z � �}�Kzn�M�,z ��9 ào�I��;z(�I�a�,�Mz�y ���M�,z{~?� � �0$����M�,y ~ x � ~ x �}y{��}z�y{z x ��~)�,�.� x� � �M�;~)�î~?� � �0$,�.�Q�,y � â �Q���T� � �M� ���î��$Qzl�Iz x ��~)����� x ���î���0$"$"� � z � � $"�Cy ã��%ç��

ÿ�� þ�ÿ � º��-�¸(���z��¸���g�6¹í z����7� � �o� x �M� ���m��zl�>����� x ~^�I����z��I�����Mz�y � �0$(�M�,z ��9 àê�F~ x,� �;~ � zK� k �,z x � � z���$Qzl�Iz x ��~ x ~?� � ��$����M�,y�;z%$ � �0$Qy(� x,� �M�,zÃ�I����z��I� x �Q�,zl�'����� � ��9 àW��$"� � $�~@ym���%~ x � �.�>����~�y��Äà�� � � ���}y{��}z�y{z x ��~)����� x �jÁrzl��~)�?��z� � ���,���I�}z�~0�I��zl�>���n� � �M�,z x ����~)����� x �?��z � 2°� x� z%$Mz x ��z�$"��}zl�>4��'~ x � �'� x ��z����Ky�z(�}y{�?�0$7��~ x ��y�~)�Q�,z�y�~)������~?�x �0����� x �������?�Q�ê~���� x �¤�U��~)�,�.� x � � �?$��,�"!°�0$ � z%$+�Qz%$Mym���1~�$Mz x �0�{��$Mzl��z x �Mz � �,z%$QzK�T�M� ���+�M�;~����Mz%${y�~?�R�Iz�z�y�K�?�"�>��$Qzj~)�r�?$����`$Mz�~ � � x,� �k �,zJ�I��;zJ�I�����Mz�y � z � �¤�¤� �>� x ��� � z%$ � �0$ ��9 àÚ�;~0�r��z�z x �?$���� � ���Cz x ��� â �¤� x z%$nãåä �%ç � �0$%~����,�?��z%��� � �M�,zâ àÚ�P~ x,� �;~ � z+2°� x � ~0�>���;~(���,��z%$��Iz%�3� � ��!p��~?���>����?�>4�� � ú°ðMù,ôT���8z>�.�Q�,z%$�¥

/ �M�,z*�I����z�<6�,y��;z%$ ñ/ �0$î~(�I����z=�Ø~)$��P~@��}z�2X�r���1�9ç�çcç�4 ñ/ �0$0� êP� �A#?� � �,z%$Mz � ê ~ x � �A#3~�$Mz*�I����zl���

ó0ó

Page 101: Functional Programming Using Calm Light

ælô0ô EGFJH3I*K|L=M��2¡QPsSgKaH3KbVcEOK0| IfV�W(XP¢UI3[õG,|G\R[TM6I=F`V"SQ\ H3W�� K0|GI=L S,| W�K�F3LTS0V7Sw�x ~��I����zK�'~��I����z{�Ø~�$��P~@��}z+����~ x Ôõ6h@õ;û0Õ'õ������ zK��~Ö�I����z+�M�;~)� � z{~)$Qzm�>�Ky{������� x,� � í z � �¤� �6�?�Iz��¡�K��£ü�� ê �0çcç�ç��;~��*1�ô�ú!ñ0Ø?ñKð�òüñQé¤Ú ô�ó ê $Qz���$Mzl�Iz x ��� x,� �I����zl��� k � ��� x �0��~)����� x �����}y{�?�0$7��~ x ��¥ � z����;~?�¤� �?�Iz*���M�,z%$ � $Mz�z%;�}z%�"�Mz%$����"� � z x �0�Mz*���M�,z%$ x �0����� x ��� x �M�,z � �@�¤��� � � x,� �Izl�>�,�.� x ���Å`Æ9?¥¤§¦a¨�Ç 2X� � <6�,y���z%$%4 � � � �^���3~(�I��;zK�©

� ú°ðQùÀôöó�ø%Òôl1�ô��f����~Â�I����z � �,z%$Mz��,�Ky{z �@~)$��P~@��}zl��~)$Mz � �����,� x,� � �����,z � ~0����z>� x,� ×Cô�õ�ô�ð�òPø?� í z^��~ x$Mz���$Mzl��z x �6�I��;z��"�Q�,z�y{zl�8���¡¥ ª � ê2« çcç�ç « � ì çQ� � �,z%$Qz ������~(�I��;zK�Å`Æ9?¥¤§¦a¨�Ç ª �+ç�2/� � <6�,y��;z%$¤4 � � � �\~ x � 2X� � <`�,y��;z%$%4 � � � �\~)$Mz3�I����z��"�Q�,z�y{zl���©

í z � �¤�¤���?�Iz ¬5�­¬ £ ��¬Xê@�0çcç�ç��,~0�ry{z%��~��@~)$��P~@��}zl�T$Mz���$Qzl�Iz x �,� x,� � ��;z��7�M�,z�y{zl��� í z�y�~?��~?����� � $����Mz*�I��;z�"�Q�,z�y{zl��~0� ª¯®�õçQ�¡� w�x �M� ���*��~0�IzK� ®�o$Mz���$Qzl�Iz x �=~�2����Q�"�'�}��}� z�y���� ��4��Iz%�3� �'� z x z%$����n�I����z��Ø~�$��P~@��}zl��� í �,z x�M�,z��Iz%�`� �á� z x z%$����=�Ø~�$��P~@��}zl�`���ïz�y{���I�K� � z � $����Mz ªçQ���0$3�'�}y{��}���¡�

í z � � �¤� � $����Mz �@° 2X¬|4 � �0$*�Q�,z��z%�*� � Ôõ6h@õ;û0Õ'õ¿ó6�a�%�>��$"$,� x,� � x �M�,z+�I��;z+�"�Q�,z�y{z±¬'�²ø x ; x � �8x �=~)$Mz~?�����m��~Ø� �}z � Ó�ð ô�ô�Ø?ñKð�òPñQé¤Ú¤ô�ó32p�M�,z���~)$Mz x �0�î���0� x � ���~ ª �0�;~ x ���¤�;z%$%4��

í z�~?����� � $����Mz Ú ° 2X¬|4*2céQû0Ôõ?Ùöú°ðQùÀô�Ø�ñCð�òüñQé%Ú¤ô�ó�û�Ó²¬|4 � ��$��M�,zm��z%��� � �I����z{�Ø~�$��P~@��}zl�(�a�%�>��$7$�� x,� � x ¬� � ���Q�ä~�$Mz x �0� � $Mz�z�2°��� zK�3�M�,z+�Iz%�J� � �Ø~)$��P~@��}zl��� x ���Cz%$��M~?�¤�}�¶���;~ x �,� �;z � 4��ÄÁ��0� x � �I��;z��Ø~)$,�F~����zl� ~)$Mz�~?������M~~� � �"���;z�×Cô�õ�ô�ð�òPø?�Å`Æ9?¥¤§¦a¨�Ç w!� ¬ � z x �0�Mzl�T�Q�,z��I����z��"�Q�,z�y{z ª �2ç�2X� � <6�,y���z%$l4 � � � �1���Q�,z x�� z=�;~?�KzK¥

�@° 2X¬ 4Eæ Ô ��Ý~ x �

Ú ° 2X¬ 4Eæ Ô ��Ý©� ó%Ôaé ó ú!òüú°Ôú!òPûKõÚòPõ¿ó ú!ñCõ;ø�ô³¬¥£�� � ~��I����zÄ�"�Q�,z�y{z@¬Ö�����M�,z3�I����zÄ�7�M�,z�y{zS´=2/¬|4 � �,z%$MzS´����î~n���,�?�������"���,�.� x� � �I����zl� � �0$GÓ�ðIô�ô`� ��;z �Ø~)$,�F~����zl� ~@�,�;z�~�$�� x,� � x ¬'� í �,z x ~@�,��}�0� x,� ~+���,�?�������"���,�.� x �7��~(�I����z��"�Q�,z�y{zK�¡~$Mz x ~@y� x,� � � ���Ky{z �?�0� x � �I����z��@~)$��P~@��}zl�=y�~?� �;zl�>�Ky�z x zl��zl�7�M~)$M�K��� x �0$ � z%$3�"��~����)� � �M�,z(��~@���"��$Mzn� � ~

� $Mz�z*�I����z��Ø~�$��P~@��}z��� ~+���;~ x ���¤�;z%$��Å`Æ9?¥¤§¦a¨�Ç

/ w!� ¬ � z x �0�Mzl� ª �+ç�2*� � �f4 � � ~ x � ¬ £ ��� ª �+ç.2^� � 2*µ � µ|4"4 � 2^µ � µ|4��%�M�,z x ¬ £ ���'~3���,�?�������"���,�.� x� x �,��~ x ��z3� � ¬ �;zl��~)�?�Iz@¬ £ æ�´=2/¬|4 � �,z%$Mz ´næ Ô �z¶ 2^µ � µ�4�Ý��%��� zK��´����,�?�������"���Qzl�=�Q�,z6�I����z0µ � µ� �0$T�M�,z=�@~)$��P~@��}z·�1�

/ w!� ¬ � z x ���Mzl� ª �+ç�2^� � �G4 � � ~ x � ¬¥£���� ª¹¸ ç.2 ¸ � 2^� � �f4"4 � 2*� � �G4��)�M�,z x ¬¥£)���'~*���,�?�������"���,�.� x� x �,��~ x ��z�� � ¬ �;zl��~)�?��z²¬ £ 溴=2X¬ 4 � �,z%$Mz·´úæ Ô �r¶ 2^� � �G4§Ý�� w�x �M� ���J��~��IzK�?�Q�,z�$Mz x ~@y� x,� � � �� x �"� ¸� ~0� x zl��zl�7�M~)$M�¡¥ � z � � � x �0� � ~ x �T�M�,z��@~)$��P~@��}z �Â� x �7$"� � �?��z � ����´��7�{�;z(��~@���"��$Mz � �����M�,z� x ���Cz%$��M~?� ���;~ x ���¤�U��~)����� x ª �1�

(*»�`-/Y^1/341_:¼N½1_5A]Q-=<+$;>MA]Q?S7$;>Y,52-6\X;>7AZ¾M�=<-X?@¿ÀNQY<+ 19Á_ÂAÃ^ÄÅÂAÆ/ÇQÈ�;>:É1PʾËÍÌHȳÁ�ÂAÃ*ÄÅÂAÆ/ÇQÈ/C

Page 102: Functional Programming Using Calm Light

�2¡QPí�0PZK�FJLOK0|GI=LrS,|�SgK�L�\ ælô�æ© k �,z*� ��;z(�"�Q�,z�y{z²¬ £ æ

ª � ê çcç�ç<��βçÏ� £ ���3�M~~� � �7�{�;z�~+×Kô?õ;ô�ð�òüøjòüõ,ó�ú!ñKõ�ø�ôT� � ¬Læª � ê ç�çcç^� ì çQ��� � �M�,z%$Mz

z�� ���,���3~(���,�?�,�����"������� x ´R���?�Q���M�;~)�?¥/ �M�,z � �Ky�~~� x � � ´������ x �Q�.� � z � � x Ô � ê$« çcçcç « � ì Ý ñ/ � £ æ�´�2X��4 ñ/ x �·�Xä|�a�%�>��$>� � $Qz�z3� x ¬'�

w�x �0�M�,z%$ � �0$ � ����~ � z x z%$,����� x �,��~ x ��z�� � ~Ö� ��;z��"�M�,z�y�z(���*�K����~�� x z � �� � ����� x,� y+��$Mz{��$Mzl�7���Iz �Ø~?���,zl�n�"����Ky�z � z x z%$����=�@~)$��P~@��}zl���¡~ x � 2����Q�"�'�}��}��4����;~ x ��� � ��� x,� ���Cy{zJ� � �M�,z x z � �I����z=�Ø~)$,�F~����zl�`� x �"$"� � �?��z � �Å`Æ9?¥¤§¦a¨�Ç w!� ¬næ

ª �+ç�2^� � �f4 � �1���M�,z x ¬À£9æª µ�ç�2"2^µ � µ�4 � �G4 � �Â���=~ � z x z%$������ x �,��~ x ��z(� � ¬'�

í z+�Q�;~ x,� z � �o� x �"�Ã2^µ � µ|4��;~ x � � zn� x ���Cz%$��M~?�¤�}���0�;~ x ���¤�;z � � x �M�,z x z � ���Ö� x �"$7� � �?��z � �I��;z��Ø~�$��P~@��}zµ'�©í z�z��À��$Mzl�7�(�M� ���(�I����z��I�����Mz�y ���y�z�~ x �(� � òPõ¤Ó ô?ðIô�õ;ø�ô ð�Ô Ú¤ô�ó�� � x � x� z%$Mz x ��z�$7���zÖ��� � $,�.�7�Mz x ~0��~

� $�~0�>����� x ¥/ �M�,z x �,y�z%$�~)�"�0$����3��~?�¤��z � �M�,z�ù¡ð ô~1�ò}ó�ó ô�ó ñ/ �M�,z � z x �Ky(� x ~)�"��$T���J��~?�¤�}z � �M�,z{ø�ûKõ;ø~Ú:ÔCó�òPûKõ��

� x � x� z%$Mz x ��z($"��}zK¥ Ð ê çcç�ç Ð ìÖ

y�~?�{��z�$Mz�~ � � x � � � � ~?�a��¥/ êAÑ>Ò Ð ê �ªçcçcç ?0@,Ó Ð ì � s2ÔUÇ)@ Ö ë �/ êAÑ @Ìq�ÈHÓbÇ�Èïs�q�¦|È�q�Õ�Ç Ö � ÊísmÊ�Ë�Ë2ÖL׫É0Ê�Ç)@Xsïs�qr¦�È�q�Õ�Ç Ð ê �Mç�çcç ?0@ÀÓ Ð ì ë �

� x � x� z%$Mz x ��zn$"��}z=y�~?�{�;~?�Kz x ����$Mz�y(���IzK¥=���?�Q� ~n$"��}z � �¤�¤�9��z���~?�¤��z � ~ x ñ@÷@òPû01�� � �>�Ky{��}z%�Mz=��$7�Q� �å� �¤� ��;zn$Mz���$Mzl�Iz x �Mz � ����~ ùªðIû�û,Ó�ú!ð ô�ô6� � �M�,z � �@�¤��� � � x,�{� �0$My ¥Ð Îê çcçcç çcç�ç Ð@ØÙ

���çcçcç

Ð êê çcçcç Ð êìÖ

� �,z%$Mz*�Q�,z=�}z�~?�Kzl�T� � �M�,z*�"$Mz�z(2 Ð Îê �0çcç�ç�� Ð@ØÙ 41~)$Qz3� x �,��~ x ��zl�`� � ~Ø�Q���Kym���w|x �M�,z���$Qz�y(���"�Izl��~ x � �M�,z��>� x �Q���?�'��� x �=~@�,��z�~)$6Ú%ÔQÙ~×Kôl1�ô?õ;úüó%�;~���� x,� �Q�,z � �0$Qy ¥

Û§Ü !�¥Ý¬

Page 103: Functional Programming Using Calm Light

ælô0ä EGFJH3I*K|L=M��2¡QPsSgKaH3KbVcEOK0| IfV�W(XP¢UI3[õG,|G\R[TM6I=F`V"SQ\ H3W�� K0|GI=L S,| W�K�F3LTS0V7S9 �?�Q�ä~ ü�� � � z�y{z x ���I���0�� � ��z($Mz�~ � ~0�(ê>� x � z%$*�M�,z(�I��� � x,� z x �0��$"� x y�z x � Û ���M�,z�z��À��$Qzl�"�'��� x !��;~0�3�I��;z�"�Q�,z�y{z�¬ ë � k �� � x,� z x ���.$7� x y{z x ���{~)$Mz��Iz%���n� � ú°ðMù¡òPõ ×^ÒQðQùÀûCú#Ò�ô�ó�ô�ó�� � �M�,z � �0$My ëW¥6¬ � �,z%$Mz%ëÂ���{~ x� � z x �,� �;z%$ x ~�y{zj~ x � ¬�����~�� ��;z��7�M�,z�y{zK¥��I��� � x,� z x ����$"� x y{z x ��� � �}�Kz*�I����zl�6�7�+�M�,z=�Ø~�$��P~@��}zl�3�a�%�>��$"$,� x,�� $Mz�z(2°��� zK�G� x �?�0� x � 4�� x �M�,z z��À��$Qzl�"�'��� x �

í �,z x � �� � x,� ��!p��~?���>����?�G�Qz%$Mym���~�M�,z=�I�� � x,� z x �0��$"� x y{z x �b���åy�~ x ~ � z � ~0��~ ó�ú!ñKø�hT2���zl��~)�?�IzG� � z x ���¤�;z%$���?� �"�Izl�"�8������~?���"�>�K��zl�>4�� í z($Mz���$Mzl�Iz x �*�M�;~)� � ~��>�3� x �M�,z���$Mzl�Iz x ��~)����� x � � �M�,z(� ��;z+�I�����Mz�y ���ðIô~1jû�Ø�òüõQ×�M�,z+�I�� � x,� ����?�0�Q�,zl�'�����>� x ��z%$ x � x,� ~ x � � z x ���¤�;z%$ x ~@y{z}ëo2Ñ� � ���?�Q��~��I�� � x,� ����?���M�,zl�'���=z�� �������>4��;z � �0$Mz~ �,� � x,� ~ x z � �I��� � x,� ����?���M�,zl�'���J�>� x ��z%$ x � x,� ë��

í z � $����Mz Û�ÞrÛ 2Æë�4 � �0$n�M�,zm�Iz%�*�0�n�I��� � x,� ���?�0�M�,zl��zl�*�K����~�� x z � � $"�Ky Û ���^$Mz�y��Ø��� x,� �M�,z�� �� � x,�������0�M�,zl�'���3�>� x ��z%$ x � x,� ëÂ2°� � ���îz��Q�����>�>4��� x � x �,y�z%$������>� x ����~ x ������� � �I��;z�<`�,y��;z%$�¥

Û�Ü ß °@�¡¸@¨ éö¥ <6�,y���z%$ 2�<�ø â 4í z*�K����~~� x �I����z��"�Q�,z�y{zl� � �0$î�Ø~�$��P~@��}zl� � $"�Cy �Q�,z*� �� � x,� z x ���.$7� x y{z x � Û ¥

Û�ß Ô ë�¥Ý¬�Ý Ü ¿ ¢ · ë ¥Ý¬ 2 k � ø k 4w �`���î���Q�"�'�}��}z(�"��� x �,��~ x ���P~)�Mz*�I����z��"�Q�,z�y{zl��� k �,z&ê à z x,w�x ����~ x ��z ë $Mz��P~)�,�.� x $Mz���$Mzl��z x ��� � z x z%$����Ä� x �,��~ x ����!~)����� x � Û§Ü ! ¥Ý¬ ¬ £ æ à z x,w|x ����~ x ��z�2X¬|4Û§Ü !�¥Ý¬ £ 2 w < 9 k 4w �����8�?� �"�'�}��}z��7� � z x z%$�~?����5�z��I��;z(�"�M�,z�y�zl� � ���M��$Qzl�I�;zl�>�6�7�{�Ø~)$,�F~����zl�`�M�;~)� � � x �0�6���%�>��$ � $Mz�z3� x �Q�,z��Iz%�� � ����?���M�,zl�Izl��¥ Û�Ü ! ¥Ý¬ ��àØ �@° 2 Û 4Û�Ü ! ¥ ª �+çQ¬ 2 à B <*4k ��� � x,� ~(�>� x � ������� x ~?��¥

Û�Ü ! ê ¥Q<`�,y��;z%$ Û�Ü !$# ¥Ý� Û�Ü !A&=¥Ý�Û�Ü 2�¯?¬á! ê ¨K�¡ ?�â!�#   § ¸� �!A&=¬¡¯041¥�� 2 w ï�4k ��� � x,� ~ x ~@�,�������~)����� x ¥ Û�Ü !�ê�¥ã� � � £ Û§Ü ! # ¥Ý�Û�Ü 2/! ê !$#~41¥Ý� £ 2 � �2� 4k ��� � x,� ~ x ~@�?���7$�~0�>����� x ¥ 2 Û�ÞzÛ 2�ë�4"4 ß Ô ë ¥Ý�)Ý Ü !=¥ã� £Û§Ü 2��Xë��/!)41¥�� � � £ 2 � Á 9 4k �,z+�I��zl�7�F~Ø�=$"��}zj��z���� � ���3�M�,zn� x z��Q�;~)�6� x �"$"� � �?��zl���?�@�}�y+�0$M�,� ���IyÚ¥J�Q� ���3�>�0$"$Qzl�I�?� x � �3�7�m�M�,z â à §  Ø¨�>� x ���7$"�?�>��� Û�Ü ! ¥Ý¬ 2 ÛâÞzÛ 2�ë�474 ß Ô ëڥݬ�Ý Ü ! £ ¥Ý�Û§Ü 2��Xë��X! £ 4b!�¥Ý� 2�à B=k 4k � �����I����zÄ�I�����Mz�yc�;~0�r��z�z x ��$"�@�Kz x �"� �;z�ó�ôl1�ñKõ;ú!òüø�ñ0Ú�Ú�ð ó û0Ôõ?ÙC�0��� zK�|�M�,z*�Iz�y�~ x �����8�Ø~?���,z*� � ~ � z��¤�.!°�I��;z �z��,��$Mzl�"�'��� x 2 ~ x z��,��$Mzl�"���.� x ~ � y(���"��� x,� ~��I����z)4���~ x,x �0���;z{~ x ô?ð�ðIûKð(Ø?ñ0Ú�Ô�ô � �,z��7��~+�I��;z z%$"$"�0$�� k � ��������?���;~?�¤�}� z��,��$Mzl�"��z � ~0��¥

í z��¤�.!°�I��;z � ��$"� � $�~@ym�T��~ x,x �0� � � � $"� x,� �k � ��� � ~��>�*�}y{����}zl�+�M�;~��j~��Q�}z��Kz%$��>�Ky{� �¤�}z%$jy ~��ö��$"� � �?��z��>� � z � ���M������� ~ x � � � x ~@y(�����I����z+�Mzl��� � �0$�~� z��¤�.!°�I��;z � z��,��$Mzl�"�'��� x �

Page 104: Functional Programming Using Calm Light

ä2åãæÏç�æºèÉé9êtë9ìFí îïð�èÉé9ñ ò$óÝôõ}ö,÷¥ø§ùaúüû ý¥þAÿ���������þ���� ���������±ÿ���þ�� þAÿ����������¾þ��������� Ýþ!��ÿ����2ÿ0ÿ���þ��"���#����$%�����&�'�ÿ����þ!(

)+*-,�.�/103214�57685:9<;=0>0 (�?A@B?CD�E�!�GF�þ<�Pÿ��3F��-�H����$þ+$%�#�I�����/þSÿ���þ þ�JK���� L�M�¾þ<���>þN��þAÿH$þAþ<��ÿ���þ ,�.�/ �O�K���/ÿ������>ÿ��P��FQ���R��S�S��#�T�<� ÿH���!�A���U�����V&V·þ�FK�'�2ÿ�þ&����� ÿ��G�!�>ÿH���!�XW"�DYEþ!Y��P��þOZ�S���þ��������!�R���M !������ÿ���þ[�"���#����$%�����Q�H����S�þ!(\W 4�]�6_^:`ba YUcd��þ&WXýfegc ` �����¾þ$%�#�#�h�Lþi�O������'�M�D(g$%�¾ÿ����!��ÿ%�¾ÿ�� $bþ��O�K���TFj���Ýÿ����þ����ÿ��þ%kb��F��Ýþ<V�þ<�ãÿ��P���� Ýþ!Y

l#m<n�o�m!pqOr�sLtvuUw[rxs�t l#n�yLzHp{ w}|�~Kr�� r!��s�t&��t l����<�!p{ w}|"~!r�� r!��s���t��8tx��t

l#m<n�o�m!p� w+��sO��t��8t&��t l#���!z�mPp� w��+s�|'�3�����f��|'�&�����

lIm<nMo�mPp� w\�isO��t��8tx��t lI�_�!zDm!p� w��+s��&��� l#n��<��p��� qO��sO��t��8t&��tvuUw+�A�is������ l#�G�<m!p{ wi�K�<�A� � ~Kr�� r��O�����+s<�&���

�cd���T��ÿb �S�þx�H ��/ÿ�þ<V¡F���þ��%���Ýÿ0ÿ_þO�I����������$�ÿ��+¢���Fâÿ���þ[��þ��/ÿPÿH £SLþ����K������þOZ�S���þ��������!�fY%¤g��ÿ�$����2ÿ%�'�}ÿ���þ

��þ�� ÿ ÿH £SLþx�"�!�����zþOZ�S���þ��������!�7¥¦C^ÿ+Vi��� ÿ[��þ-�H������ÿ����2ÿ����� R�Ýÿ���þ<��S��£���������¾þ�ÿb �S�þ����!�@ÿ���2ÿ þOZ�S���þ��������!�§�T�V&�!�_þ��HS�þ���#¢���¨ �©�R�Ýÿ��þ<�ª$%�!�OF��<��ÿ���þ��Lþ��/ÿ0ÿH £SLþ��'�0ÿ���þ&«x¬�­<®�¯!°M±�°�²H³!´#Yµd¶\·¹¸ º¼»i½¡¾À¿GÁ�Â�Ã�Ä�Å�»&ÆÇÈ�L$ÉF��-$þ+¢���F�ÿ���þxV&���/ÿ[�Ýþ<��þ<�G�M�6ÿH £SLþx�"�!�À�P�zþOZ�S��_þ��������!�A���%�!�����'�����!�����Wþ�¥Êc%��þxS����!���¾þ<VË$d� ÿ�zÿ���þ�/þAÿ����������¾þ��[������ Ýþ!���'�Pÿ���� ÿ�$þi�O�!���'Fj�����/ÿG����ÿH�'�2ÿ�þx����F-�Ýþ<��þ<�O�M�#�©ÌAþ�ÿH �S�þ����2ÿÀ�P�£ �ÿH��V·þ!�����ãÿ����F����������ÿH �S�þ�����þ<V·þ��<��$È���I�¾þ�ÿ���þ[V&���/ÿg�©V}S��!��ÿO���ãÿÈ�����¾þ��[Wb�PS�S��I�'�<�2ÿ¹�©�K�§�P��F-�����/ÿ��G�K�>ÿH���!� ` ���/þ�FN�!���� �ÿH �S�þ��<YýÀþAÿ[���[$��H�¾ÿ�þ&�N��þ<$��/þAÿ[���U�����<þ<��þ<���>þN�����¾þ��@ÿ����2ÿ[$þx$%�#�#�ª��þ��KFÍ�K�[�����M���!�!�¹� ÿ��VÎWb����£�/þ·ÿ��-�-Ï�������!�S����!�K�G��V ` (Ð �£ N�£��V�þ<�H�'���O�!���/ÿO���ãÿd�T�d���KÿH �S�þ�ÑÈ��Vx��þ<��(

Ò *3Ó�Ô�;7Õ�/×Ö (�Ñ���Vx�Lþ<� WbÑ�Ø�Ù `

c%��þSÿb �S�þ��d�����'F�þ<�ãÿH�#¢�þ<�G�[�P��þ[�!��ÿG�M����þ�Fj�£ �ÿG�P!�����&�Ýþ<��þ<�¹�T�\�����/ÿG�P���>þ������6ÿH £SLþi�����þ<V·þ�����S�S�þ��P�H�����&����ÿ���þÿH £S������ þ<�£ K�����!��V·þ<��ÿ�Yxc%��þ��/þ&�Ýþ<��þ<�¹�T�i�©��� ÿG�����>þ��[$d�I�#�%��þQ®"ÚÛ�°�­À����F§���Ýÿ@ÿH £SLþ������þ<V·þ���(@ÿ����'����þ��/ÿ��¹�T�>ÿ¹�©�K���S�SLþ����G�Ü���±ÿ���þ������¾þ[��þO����$���$���þ<��þPÿ���þ0ÿH �S�þ[Ýx�'�FþOZ�S�þ��>ÿ�þ�F�ÿ��+��þ[�+�Ýþ<��þ<�H�'�%�����/ÿO�����>þ[���,ÿ���þPÿb �S�þ[�����þ<V·þÞ Y

Ð �g�¾ÿÈ�T�ÈS���þ��/þ<��ÿ�þ�F§WD��þO���!����������ÿ��N�3F�þ�F����>ÿH���!�A�H ��/ÿ�þ<V ` ��ÿ���þ[�"���#���L$d�©���N�����¾þx$%�#�#�h���M Ýþ@ÿ��N���ãÿ¹�T���S��2ÿ_þÿ���þ·þOß,þ��>ÿx���0ÿ���þ·þ�JK���M�#�¾ÿH ��O�!���/ÿ��O�M���ãÿG�\��þAÿH$þAþ<� ÿH �S�þ��À�©� ÿ���þN�Ýÿ���þ<�+�����¾þ��&W�Vi���¾ÿH��S��¾þ-���<�O������þ<���>þ��+�����ÿH £SLþ[V·þAÿG�M L�P�H�'�����¾þ ` ��$���þ<�R�������£��������ÿ���þ������/ÿG�����>þxÝ7YÝ 2áà þ<��CD���/ÿO�����>þ�W Þ `ÒãâQäLå-( Þhæ *3ç�èLé åE(!Ý WDCHÑ[ê£c `

ë1��þ<�-$þ[��þ��!F�ÿ����'���/þAÿ%��������� þ<�_þ<���>þ������¾þ����!�%���Q�M���!�!�H�¾ÿ���VE��ÿ���þ+WDCbÑ\ê£c ` �����¾þ+$%�#�I����þ[��V&S��¾þ<V·þ<��ÿ�þ�Fj�£ 7(ò YÿG��K�©���N�!�%Ý�ÿ���þãìOV}�£�/ÿ%�Ýþ<��þ<�G�M�f�Ýþ<��þ<�¹�T�À�����/ÿG�����>þ�í}��� Þ ÿ���2ÿ%�'����ÿH �S�þxW^ÿ���þ[���� þ+��þ�JK���©�_þ���Ý�ÿ��x�Lþ��ÿH £SLþ�����FN���Ýÿ���ÿH �S�þ������þ<V·þ ` �

Page 105: Functional Programming Using Calm Light

ò$ó�î ï6é9ë�ð@èaê³ï ä2åãæòñ,è­ëPèIðóï�è�ôhð ðbõ�í�ö�ðPîìfô6ñrîï�ð³é}ð�ñãñ�ë�õ�÷nè�ô�ð³ê×ñfôhõ�èÉéPê%ñÝðñø Y%V3��K�©���NÝNV&�!��þ��HSLþ���#¢����� Rù£±�ú û%üG³!®"úý¬!±-þ ôKø�ÿ $���þ<��þ<���O�!����ÿ�þ<�H������þ�J!���L�I�¾ÿH Q�O�!���/ÿ�G�M���ãÿO�<Y

cg £S������&�x�O�!��FK�¾ÿH���!���M���_þ�J!������þ��%�K���© �ÿ���þ@ÿ�þ��/ÿgS�����ÿÿ����Lþ[���ÉÿH �S�þ[Ñ���Vx��þ<�M���P��F&���Ýÿ��Q�M�¾ÿ�þ<����� ÿH�� Ýþ��Fÿ����Lþ���,ÿ���þ����V·þPÿb �S�þ�Ý7Yhcd���T�Ü�'�%����þOZ ��V}S�� þ����,þ�JK���M�#� ÿH 3�O�K���/ÿ��G�M����ÿU�LþAÿb$þAþ<��ÿ���þ0ÿH �S�þ����P�ÀÿH$%� þOZ�S���þ����b�©�K���<Y

Ò *���� (!Ñ���Vx�Lþ<� Ò *���� (�Ý Ò *���� (!ÝÒ * W 9M0�� � /7.M;�� � .!,�Õ�.�� � 079!` (!Ý W ����Ñ�� `

cg £S������-���Q��S�S��#�'�<�2ÿH���!�RS�����F����>þ����L�T�¹�·þ�J!���L�I�¾ÿH Q�O�!���/ÿ�G�M���ãÿO�³ÿ���2ÿ�����þ@ÿ�i�Lþi�H�P�© Wþ�F-�� 3�����#¢��<�2ÿH���!�f(Ò *�� � (£Ý}@ Ý�� Ò *�� � (!Ý

Ò * W � � � � ` (!Ý � W Ð ÏgÏ `

cg £S������Q���A����� ÿ��G�!�>ÿH���!� ìOS����¹��þ���í-�·ÿH �S������Q�� £S��Ýÿ���þ����'�È�"�!�@ÿ���þ&�����/ÿ��O�!�>ÿ�þ�FN�'F�þ<��ÿH�#¢�þ<��([�����#¢��<�2ÿH���!�X$%�#�I�V3��Wþ�� ÿÈV&�!��þ[S���þ���'�/þxF����H�����±ÿ��þ ÿH £S������&�P�Kÿ���þ��P���/ÿ��G�!�>ÿ¹�©�K�-����F� �(

WHÒ��AÒ�Wbå `�` â-äLåE(�� 6 Ý æ *�� (£Ý �Ò * W 4 å�� ��` (�Ý&@ÎÝ � W Ð ¤�ê `

cg £S������-� ,�.�/ �O�K���/ÿ������>ÿ%���� !���� Ýþ����x�Ýþ<��þ<�G�L�I��Ì��2ÿ¹�©�K�Í�/ÿ�þ<Sf(Ü$bþ[�Wþ<��þ<�G�M�#��ÌAþ��K�%Vx�����Q�!�dS��£���b�©���¾þ!YÒ *�� (!Ý�� ä�� ��� 6M6�6 � ��� æ 2 �"! WbÝ�� ` � �"! WbÒ ` WbÒ#��Ò�Wbå `�` âQäLåj(��$� � 6M6�6 ��� 6 Ý�� æ *�� �7(£Ý

Ò * W 4 å�� � � `%� (!Ý W/ýfeUc `cd���T�[� þAÿ[��������� þ<��þ<���>þN�����¾þ�����þ<S���þ�� þ<�ãÿG�[�P�§�L�©�K�!�H�¾ÿ���V ��þ��<�P���/þ·ÿ���þ<��þ+�'�@þOZ��!�>ÿH�� E�!��þ&�O�!������������!�A�"�!�þ��!��Q�H ��ãÿG�K�>ÿH�'� Ð êãý �O�!���/ÿ�����>ÿ�W����� !�����NS��H���!�H�¾ÿH ±ÿ���ÿ���þ}WXýfegc ` �����¾þ��� Ýþ<�ÿ���þ[��þ<�!���'������S�S��#�T�<� ÿH���!�R�����¾þ ` Y

c%���'���/þAÿ����������¾þ��%V3�M N��þ��_þ��!F-�!���&ÏÜ�������!�xS����!�K�G��VQYcd���T�È�M���!�!�H�¾ÿ���V����!�%�LþAþ<�QS����� Ýþ<��ÿ��x�Lþ!(& ­óÚ�±�®"³Kü�®"úýüG³!´ý´#Ú&­<¬!ù�±('f(�$���þ<��ÿ���þ&�M���!�!�H�¾ÿ���VË�H���<�>þAþ�F��+�!�A����þOZ�S���þ��������!� � ����F§��þAÿ��������[��ÿH �S�þ&Ý7�ÿ���þ<� � (!Ý7Y& üG¬!«ÈÛ�´#°M®"°£(È�#�d����þOZ�S���þ��������!� � S��£���/þ���� þ��[��ÿb �S�þ&Ý7�Iÿ���þ<��ÿ���þ3�M���!�!�¹� ÿ��V $%�#�I�g¢���FA��ÿH £SLþ&Ý � �H����ÿ����2ÿ�Ý}�'�����N�����/ÿO�����>þ����UÝ � Y�c%��þ���þAÿ������þ�F�ÿH £SLþiÝ � �'�ÿ������ÿ���þ�V}�£�/ÿ%�Ýþ<��þ<�G�M�aÿb �S�þ[�P� � Y

õ}ö,÷¥ø§ùaúüû ëzþª�O�!V}S���ÿ�þÿ���þ³ÿH �S�þÿ����2ÿf$þ%����V&S��� ����þ��Ýþ�F\�©�x�!���v�'�!�/ÿaþOZ �PV&S��¾þ!Y�ë1���2ÿf�'��F��G�M$����LþO���L$�'�Pÿ���þx��þ��H���¾ÿ[���ÿ���þ ÿH �S�þ&�H ��ãÿ���þ��b�T��(����E�D�!�>ÿ��7$þ������R�!�����L�©�K�!�H�¾ÿ���V�$%�¾ÿ���ÿb �S�þx ����H�'�����¾þ��[��þ<S��_þ��/þ<�ãÿ¹�©�����������L$È���<��V&��FK�#�" !�����tÿ���þRS���þ< !���!���E��S�S��#�'�<�2ÿH���!���E���²ÿ��þ�W�CbÑ\ê£c ` �����¾þA$���þ<�á��þ��>þ�������� >W"�DYEþ!YÉ$È��þ<�þ<���O�!����ÿ�þ<�H����� ���tþ�J!���M�#�¾ÿH á�O�!���/ÿ��G�L�©��ÿ ` Yácd���T�}�'�N ��M�#�TF7�[�������>þR�¾ÿ-�<���1��þRS����� Ýþ�Fpÿ����2ÿ·ÿ���þA�O�!���þ��>ÿH���!���� ÿ���þE$������¾þAF�þ�F����>ÿH���!�hÿ���þAþj�T�NS��_þ��/þ<�� Ýþ�Fò��  �H�����/ÿH�¾ÿ���ÿH���!�1��� ÿH �S�þ������K�·ÿH £SLþÍ ����H�'�����¾þ��<Y¦CD�á�X��þ��M���V&S��¾þ<V·þ<��ÿG�2ÿH���!�ò���¯ÿ��þQ�M���!�!�H�¾ÿ���VQ�Fÿ���þQF��2ÿO�Í� ÿ������>ÿ�����þ�����þ<S���þ��/þ<��ÿH�����zÿH £SLþ��x$%�#�#�À�LþQ�H����Vx�¾ÿ�ÿ�þ�Fpÿ��A������#¢��<�2ÿH���!�RV·þ���������'�HVQY

lI�_�!zDm!pqGr+s�tvuÜw+r�s�t lIn�y�zbp{ w&|"~!r�� r!��s�t&��t

l#���!z�m!p� w+��s�|ý�3�����f��|ý�&����� l#���!z�mPp� w[�xs<�&��� l#nL�<��p�[� qO��sO��t��8tx��tvuÜw+� ��s<�&��� l#�O�<mPp{ wi�K�<�A� � ~Kr�� r��O�����+s<�&��������>þ[���£�M���f��ÿ����'�FþOZ�S��_þ��������!�}�T�Ü���Ýÿ³ÿH �S������¾þ�$d� ÿ���!��ÿ³ÿ���þ����/þ��P�Àÿ��þ�WXýveUc ` �����¾þ!(U�P�·þ<�����!�g$%�!���'F&���<�O�����þ��<�P���/þx���³ÿ���þ ÿH �S�þSþ�J!���M�#�¾ÿH Q�O�!���/ÿ��O�M���ãÿG�È��þAÿH$þAþ<�Í�L�I�����<�O������þ<���>þ������ª�x ����H�'�����¾þ&���!����FE�£ Q�Qì 4 í YUC������þOß,þ��>ÿH�� Ýþ\�©V}S�� þ<V�þ<�ãÿG� ÿH���!�f���������I¢��<� ÿH���!��þ<����!��$%�!���'FN���<�O���MY

Page 106: Functional Programming Using Calm Light

ä2åãæ*)ãæ èÉé9êtë[ñãì�è�ô�ð³ê,+"ñfôhõ�èÉéPê%ñÝð.-¥ê³ï ò$ó/�

ë�þÍVN�� ����WÿH�'�>þR����!V�ÿ��þ�þOZ���V&S��¾þ��P���� Ýþ�ÿ����2ÿ�ÿ���þ��M���!�K�H�¾ÿ���V �'�E­óÚ�±�®"³10�23'Kú'²H°Oü�®"°4'!(��������>þ!���"�!�-����� Ýþ<�rþOZ�S���þ��������!�f�%� ÿH £SLþãF�þ�F����>ÿH���!� ���K�²ÿ���2ÿ�þOZ�S���þ�������!�����/þ��SþOZ �K�>ÿH�� ��!��þ-���� þ-SLþ<�3�H���65<þOZ�S���þ��������!�f�ÿ���þ3F�þ�F����>ÿ¹�©�K��S��£���/þ���� þ�� ÿ��þ3����V·þ&�/ÿ�����>ÿ�����þ3�K�@ÿ���þ·þOZ�S���þ����b�©�K�fY3ë�þ3�<���zÿ������[�_þ��O�!���/ÿ������>ÿ@ÿ��þ Ð êãýþOZ�S���þ��������!�j�����KVÉ�¾ÿG��ÿb �S�þ�F�þ�F����>ÿ¹�©�K��ÿ���þAþ!Y87����!V�ÿ���þ�F�þ�F����>ÿ¹�©�K��ÿ���þAþ��P���� Ýþ!�K�#�h$þ[$��H�¾ÿ�þ[��S�SLþ<������ þ��È�!���þO�����Íì������!��V·þ<��ÿG��í\���,ÿ���þ��!��þ��g��þO����$×�P��Fx�#��$bþ��������ÝÿG�2ÿ_þ0ÿ���þ[��S�S��#�T�<� ÿH���!�����P�Àÿ��þ�WDCHÑ[ê£c ` �P��F-W Ð ¤Èê `�����¾þ��È�£ �ÿ���þ[����V·þ+���Éÿ���þx�H����k/þ��>ÿ� L�P�H�'�����¾þ!��$þ[�!��ÿG�L�©�f(

ýfegc�9�W Ð ¤Èê:�WDCbÑ\ê£c;: ` � Ð ÏUÏ%W�CbÑ\ê£c�9 � CbÑ\ê£c<9 `�`c%���'�Ü�'�ª�P�x�#�I�����/ÿ�G�2ÿH���!�-���,ÿ���þ&ì>ÿH �S�þ��=5D�!�>5"S����!S������¾ÿH���!���U����F}S����!�K�G��V3�=5D�K�=5"S�������� �í�S����G�!FK���!VQ���M�'�H�������$���!��ÿ���þ1ì��U������ �5DÇÈ�L$����OF �'�H�!V&�K��S����'�HV3í1WH��¹Y þ ò�îLÿ ` YÉC���ÿ����'��þOZ���V&S��¾þ!�[$þ��<�P�×� þAþzÿ���þzÿH �S�þA����ÿ���þ�O�!�����'F�þ<��þ�F�þOZ�S���þ��������!�=�K�-� S����!S������¾ÿH���!�=����Ftÿ���þzþOZ�S���þ����b�©�K�1�¾ÿG�/þO�#�3�!��ÿ���þAS���������������F7�È����F�þAþ�F7�[$þ��þ��O�!�K���©ÌAþSÿ���þ@þOZ�S���þ��������!�R�!�ÿ���þxF�þ�F����>ÿH���!��ÿ��_þAþ!Yµd¶\·>? º¼»i½A@CBED Å6FEG-½8HJIKF�L�Å�»i½;IvÄNMU½%Ãëzþ[����$1��V&S��¾þ<V·þ<��ÿ9ÿ��þi�/þAÿ��P�f����� þ<��þ<���>þx�����¾þ��È���� Ýþ<�Í�P���� Ýþ!Y

ë�þ[��þAþ�F7(& �O�ª��Vx�f��þ<S��_þ��/þ<�ãÿO�2ÿH���!�-��� Ð êãý�ÿH £SLþ�������F�ÿH �S�þ������þ<V·þ��<�& �xV3�������Wþ<V·þ<�ãÿ%���6ÿH £SLþ@þ<�£ K�����!��V·þ<��ÿG�<�& �x�����#¢��<�2ÿH���!�QS�����>þ�F�����þ!�& ��ÿH £S������3�M���!�K�H�¾ÿ���VQY

PRQTSVUWSXP Y[ZK\%]ZK^�Z(_�`1aK`bXc�_dcReEfhgjik`ml%\�Z(^�aR_8no`ml%\�Zp^�qr8Z(stZK^ëzþ�¢��G� ÿ���þAþ�F�ÿ��NF�þO¢���þi�O�ª�PVx�,ÿb �S�þ��"�!���K��� Ð êãý�ÿH £SLþ�F��2ÿG�&� ÿ������>ÿ�����þ!(u /Jvxw�.1è�ÕP,zy�/Jvxw�.|{~}�;6�!;�Ô�K;u �O�x��6� .Léu �O� vxw�.�ç�è�éáÔ!0���èLé�/�vw7.u �O� é�é�Ôx�áÔ!0¦è�ÕP,zyL/�vxw�.��áè�ÕP,zy�/Jvxw�.u è�;(�~��è�é£/�vxw�.|{t�z��;(� .L5;�G9�;�/%� �6� /�è � ,�.�ç�èP, � .W�è£Õ!,6y�/�vw7.1�u è�;(�>è£Õ!,6y�/�vw7.Jy�Õ���7. � .�{��£ÔKé�è!,�,ÊÔK0:9<;�/=,�9!Õ�/o�áè�ÕP,zyL/�vxw�.���������W�~����J�6�����W�~���� (¡�¢T��W£�����W�~¤J��¥(�����j�~�6�� K¡m¢T�x�j£�����W�~����J�6�����W�����(¦4§T�4¨T�©�6�� (¡�¢��x�W£c%��þ }£;6�!;�Ôx�!; Ð êãý�ÿb �S�þ\�'�����ÝÿÈ��þ��M�#�� Q��ÿH £SLþ!(��¾ÿ%�'�}ÿ���þ[�����¾ÿH�'�M�� L�M����þx��������þ��¹� Ð êãý�ÿH £SLþ� L�P�H�'�����¾þ��<Y%ëzþ$%�#�#�d�O�!���b�TF�þ<�&�!�[�P�����!��V3�M�U�-���¾ÿ����2ÿ¹�©�K�A$���þ<��þ }�;6�!;�Ô�K; �PS�S�þ����G�È��� S��'�!�>þ&�����-��þ<�!���'��� Ð êãýrÿH �S�þ!YxC���H����Í���¾ÿ���� ÿH���!���<��$þ[$%�#�#�h�O�M�'�/þ@ÿ���þ��"���#�©��$%������þOZ �>þ<S�ÿ¹�©�K�f(u .L5K�£.�w�/�9�Ô�; � vxwf9<;6ªJ« � ª×ÔK0:Õ�/£é79�;�ª8�J�¬6­$¦��.�®��¡J¯�¢°�m���T¡�¢�±�²K³�±´���� K¡m¢T��W£

Page 107: Functional Programming Using Calm Light

ò$óµ ï6é9ë�ð@èaê³ï ä2åãæòñ,è­ëPèIðóï�è�ôhð ðbõ�í�ö�ðPîìfô6ñrîï�ð³é}ð�ñãñ�ë�õ�÷nè�ô�ð³ê×ñfôhõ�èÉéPê%ñÝðñcg £SLþ� ����H�'�����¾þ����P��þi�M�#�����<�2ÿ�þ�F-�� �ÿ���þ ;7.��Ky���è�é£/�vxw�. �"�����>ÿH���!�f�7����F�ÿ���þO���������!���M�h�O�!����ÿ�þ<�+Wb�\�����<�M����þO�<þ<�.5þ<���>þ ` �T�d��þ��/þAÿ���  é�.�Õ£.�/(y���èLé�/Jvxw7.£Õ Yu ,�.�/ò;�.��(y���èLé�/Jvxw7.T¶-é�.£Õ�.L/Ky���è�é£/�vxw�.�Õp{u®· �|¸ .�;7.Lé�è�/�9�;�ª¦èM;z�òé�.£Õ�.�/£/79<;6ª � ;6�K; Ôx�!;7Õ���¹u ,�.�/´�!Ô � ;�/�.�éº{òé�.L0o»u 9<; · 0 � ;R�L/79�Ô�; · ¹|¼�½t�!Ô � ;�/�.�é¾�3{C¿ �PÔ � ;�/�.LétÀÂÁÃ�u �z��;(� .L5t{C¿.�!Ô � ;�/�.�é8�ãç�è!, � .|{~}£;6�K; Ôx�!;(�K¹Ä¶u · 0 � ;R�L/79�Ô�; · ¹|¼�½t�!Ô � ;�/�.�é¾�3{�»K¹Ä���¢T�Åx��¤���¥(�����W�ÂÆ[³�¢Ä¡J�tÇxÈt¤���¥K�����W�|ÉoÊ� z³�¢ÄÈ¥R���(��x�6¤J��¥(�����j�1�ËÆ̳�¢Ä¡J�tÇxÈ�³�¢Ä¡�� ÉoÊ� z³�¢ÄÈ

PRQTSVUWSÎÍ ÏÐZ(^�`]Ñ%q�`bÓÒTZÐÑ%_8bÎÔ;q6a(`bÕcÄ_´cReÖfhgji�`ml%\×Z(^ëzþg$%�#�I����þAþ�F�ÿ��iì<�H���K��ÿ�þ<��í}ÿb �S�þg L���¹�T�P��� þ���(U�������>þÿ���þ< i���_þ�����FK����þ��>ÿH���!���6ÿ� Ð êãý�ÿH £SLþ��<��$þU��þAþ�FSÿ��È�����#����$ÿ���þ��/þd�©��FK����þ��>ÿ¹�©�K���g���&�!�GF�þ<�Fÿ��[�!��ÿG�M����ÿ���þ0ÿH �S�þ0ÿ���2ÿ6ÿ���þ< x��þ<S���þ��/þ<��ÿ�YW7��K�6ÿ���þ�����Ýþ��P�¹þ4Øã��¾þ<���O !��$þ0ÿG��Ýþ�!F� ����ãÿO���Ýþ[���Éÿ���T�È�!SLþ<�G�2ÿH���!��ÿ��}��þ<S��'�!�>þ�Vx���¾ÿH��S��¾þ�����FK����þ��>ÿH���!���\�£ -���������¾þ[����FK����þ��>ÿH���!����Wb�H���!�_ÿ�þ<������� ` Yu ,�.�/1é�.��áÕ� ÔKé£/�.M;×/t{u � è�/(��á/t�79�/xu � vw7.�ç�è�ét�6�M;z� .�5�{zyT�-ç�èP, � .1{1}£;6�K; Ôx�!;(��¼�½�/u �O� vw7.�ç�è�é · �z��;(� .L56{6y®�u ç�è!, � .1{ � vw7.Lç�è�é �z��;(��.�56{6y®�u ç�è!, � .{�}�;��K;�Ô�K;z�×è£Õ�/����K¹~¼J½ò/J�u �O� vw7.�ç�è�é · �z��;(� .L56{6y®�-ç�è!, � .{ � vxw�.�ç�è�é /��ÄÁ��>è�Õ /J�6ÙK¹u ¼�½ /J�6Ù � ç�èP, � .|Ú�¼ /J�ÄÁ � ç�èP, � .T�RÕ� ÔKé£/�.M;Ê/u �O� vw7.�ç�è�ét�6�M;z� .�5�{zyT�-ç�èP, � .1{K/%Û.��¼�½ /8Ûu � }�;��K;�Ô�K;´¼J½ é�è�9!Õ�. ·.� vwf9�;�ª�« � ªÝÜPÕ� ÔKé£/�.M;�Üx¹u � /8Ûм�½ /8Û��J���§Ã¯�¥(�6�Þ¢ßÆà����J�6�����W�|ÇxÈt�x�J���������j�~ÉtÊ� z³�¢ÃÈÐ � Ð êãý�ÿH £SLþ þ<�����K�ª$d�I�#����þ+��þ<S���þ��/þ<��ÿ�þ�F-�� �ÿ���þ����P�I����$%������þOZ �>þ<S�ÿH���!�f(u .L5K�£.�w�/�9�Ô�; � vxw7.PÓ�,�è�Õ�>ÔK0:è�ÕP,zy�/Jvxw�.~�áè�ÕP,zyL/�vxw�.®�J�¬6­$¦��.�®��¡J¯�¢°�m���j�xáx���x��§´���� K¡m¢T��W£ëzþ�$%�#�#� ��þAþ�F}�����#¢��<�2ÿH���!�E�!� Ð êãý�ÿH �S�þ��g$%�¾ÿ��R¬�üOü�ù�².2Hüm⣰Oümã�Y�c%��þ��"���#����$%�������"�����>ÿH���!�N��V&S��¾þ<V·þ<��ÿG�g���<�O��� 5���þ���7(u ,�.�/áÔ6��� � é�Õä�z�M;z� .L56{P;å�Hç�è!, � .{6y�|{u ,�.�/1é�.�� Ô6����é�.�� {ò0 � ;R�L/79LÔP;u � vw7.Lç�è�é��z��;(� .L56{ � �Hç�è!, � .{6y�©¼�½ · ;z{ � ¹u �O�x�1�z� .�éo¼J½�0�èP, Õ�.u �O� é£é�Ô� · /ÃÁöb/6ÙK¹©¼�½ · Ôz���Lé�.J� /ÃÁx¹ ÔKé · Ô6���Lé�.���/6Ù(¹u � }�;��K; Ôx�K;ݼ�½�é�è�9KÕ£. · � vxw 9�;6ªJ« � ªÂÜMÔ6��� � é�ÕzÜx¹u 9<;=Ôz�J��é�.J�u �J�¯6¦J¦1³1¥z�AÆæ¤���¥K�����W� ÇxÈ�������������W��ÇÈ�çJ¯�¯�tÉdÊ� z³�¢ÄÈ

Page 108: Functional Programming Using Calm Light

ä2åãæ*)ãæ èÉé9êtë[ñãì�è�ô�ð³ê,+"ñfôhõ�èÉéPê%ñÝð.-¥ê³ï ò$ó�èc%��þ������#¢��<�2ÿ¹�©�K�&�"�����>ÿH���!�f(���V&S��¾þ<V·þ<��ÿG�%F�þ��/ÿ������>ÿ¹�© Wþ������#¢��<�2ÿH���!�fYgCD���/ÿ�þ��KFx�����_þAÿ�������������ÿ���þ�V&�£� ÿ��Ýþ<��þ<�O�M������#¢�þ<���È�¾ÿ-��þAÿ���������ÿ���þR�����#¢��<����F>��� ÿH$%� ÿH �S�þ��jW^ÿ���þO���-V&�£�/ÿN�Ýþ<��þ<�G�L�i�O�!V&V&�!� �����/ÿG�����>þ ` Y c%��þ�ÿb$%������K��V·þ<�ãÿO�[����þxS��£ ����'�<�M�#�� �V}��FK�#¢�þ�F§�©� �!�GF�þ<�Sÿ��-��þ<S���þ�� þ<�ãÿSÿ���þ&����V·þ·ÿH �S�þ!YNc%��þ&�����#¢��<�2ÿH���!�X�������>ÿ¹�©�K�$%�#�#�ÜF�þAÿ_þ��>ÿ0ÿH £SLþ���T�K�H��þ��<Yu ,�.�/1é�.�� � ; 9M0Jv · /�è � ÁR¶H/�è � Ù(¹é{u � è�/K�� · Õ��Ô!é�/�.�;á/�è � ÁR¶RÕ� ÔKé�/�.M;á/�è � ÙK¹u ��9M/x · ��/Jvxw7.|��è�é79!è � , . ;:è�;(�1/�vw7.©��è�é�9Kè � , . � ��¹u · � vw7.Lç�è�é · �6�M;(��.�5�{P;;�&ç�è!, � .{�}�;��K;�Ô�K;z�×è£Õò/J�ÄÁ¹òè�Õ /ÄÁ¹�¶u · � vw7.Lç�è�é · �6�M;(��.�5�{ � �&ç�è!, � .{�}�;��K;�Ô�K;z�×è£Õò/J�6Ù(¹òè�Õ /6Ù(¹u ¼�½=9M01;´ÚJ½ � /7.M;×/��ÄÁ � ç�è!, � .�Ú�¼ /6Ùu �©· ��/Jvxw7. /ÃÁ èM;z�×/Jvxw�.©��èLé79Kè � ,�.��6¹u /ÃÁö ·.� vxw�.�ç�è�é · �z�M;z� .L56{zyT�Hç�è!, � .{�}�;6�!;�Ô�K;(�òè£Õ�/��$¹1è�Õ�/�ÙK¹u ¼�½=9�0ò;�Ô!/ · Ô6��� � é�Õ /��1/ÃÁx¹�/x�.M;á/J� � ç�è!, � .�ÚJ¼ò/ÃÁu .P, Õ�. é�è�9!Õ�. ·.� vw7.!Ó£, è£Õ� · /ÄÁöb/6Ù(¹�¹u �©· ��/Jvxw7.|��è�é79!è � , .1è�;(�ò/Jvxw7. /6Ùo�6¹u · � vw7.Lç�è�é · �z��;(��.�56{6y®�bç�è!, � .1{1}�;��K; Ôx�K;z� è£Õò/J�R¹òè£Õ /ÄÁx¹Ä¶-/6Ùu ¼�½=9�0ò;�Ô!/ · Ô6��� � é�Õ /��1/�ÙK¹�/x�.M;á/J� � ç�è!, � .�ÚJ¼ò/�Ùu .P, Õ�. é�è�9!Õ�. ·.� vw7.!Ó£, è£Õ� · /ÄÁöb/6Ù(¹�¹u �O�x��6� .Lé8¶ ���z� .�éo¼J½ · ¹u �O� é�é�Ôx� · /ÄÁR¶H/�ÙK¹�¶ · � é�é�Ôx� · /8Û�ÁöH/%Û.Ù(¹ è£Õ�/R¹u ¼�½ � ;f9M0Jv · /ÄÁöb/8Û�Áx¹�� � ; 9M0Jv · /�Ùê¶b/8Û.Ù(¹u �©· /ÄÁR¶H/�ÙK¹~¼J½�é�è�9KÕ�. ·.� vxw�.!Ó£, è�Õ� · /ÄÁR¶H/6Ù(¹�¹Ä���³�¢Ã¡� �ëÆæ�x���J�6�����W�|ì��x�J���6�����j��ÇxÈ�³�¢Ã¡���ÉdÊ� z³�¢ÃÈ

PRQTSVUWSíU Y[ZK\%]ZK^�Z(_�`1aK`bXc�_dcReî`ml%\%bÕ_%ï|ZK_ÄÒ%bÕ]cÄ_8stZ(_�`^ëzþ[���/þ è�Õ!,6y�/Jvxw7.Jy�ÕJ��7. � . ,�9!Õ�/ �!�Fÿb �S������±þ<�� K�©��!��V·þ<��ÿG�<������F-$þ�$%�#�#�h���/þ@ÿ��þ þ<���O��FK�©���N���� L���¹�T�P��� þ���!�g����FK�'�>þ��È���ãÿ�·ÿ���þ þ<�� K�©��!��V·þ<��ÿ�Y

cd��þ&�����¾ÿH�'�M�@þ<�£ K�����!��V·þ<��ÿx�'�&�j�#�T� ÿ&���@ÿb �S�þ�� · ���z� .�éo¼J½ · �x�1�z� .�éo¼J½ �x�1�z� .LéR¹J¹ ��$����'���1����þ�ÿ���þÿH £SLþ��%���6ÿ���þ Ð êãýAS��H��Vx�¾ÿH�� Ýþ+�"�����>ÿH���!���<Yu ,�.�/:9<;f9�/Ky�/Jvxw 9�;6ª(y�.�;6� {u � è�w · 0 � ;$��/79LÔP;=Õt¼�½u ��Ô!é�èP,�, ·(ðÕñ ¶ � é£é�Ô� · ���6� .�é%¶u � é£é�Ô� · ���6� .�é%¶ ���z� .�é$¹�¹�¹J¹u 9�; 9M/(y�.M;��8�J�c%��þ������!���M�,ÿH £S�������þ<�� !�����!��V�þ<�ãÿ%�'�Ü�����¾ÿH�'�M�#�©ÌAþ�F ÿ�� ÿ���þ������¾ÿH�'�M�ÉÿH �S������²þ<�� K�©��!��V·þ<��ÿ�������FN$%�#�#� �Lþ[��S�F��2ÿ_þ�F$%�¾ÿ�� ÿ���þ@ÿH £SLþ[���Kþ��K��� Ð êãý�F�þ���'���O�2ÿH���!�f�7�M� ÿ_þ<�bÿ��þ< ã���_þ@ÿb �S�þm5D���þ��Ýþ�F7Yu ,�.�/�ª�,�Ô � è!,6y�/Jvxwf9<;6ª(y�.M;���{1é�.�0:9<;f9M/(y�/Jvxwf9<;6ª(y�.M;��8�J�

PRQTSVUWSíò óW]cÄs `ml%\×Z(^O`c©`ml%\�Zé^�qr%ZKstZ(^�ôEïÄZ(_8Z(]aRõÕbXö6aK`bXcÄ_CD�-�K�GF�þ<�ÿ��+�©V}S�� þ<V�þ<�ãÿ��Ýþ<��þ<�G�M�#��Ì��2ÿH���!�f� $bþ�$%�#�#����þAþ�FQ�¹�!V·þÈ�������>ÿH���!���È�O���#� þ��>ÿ¹�©����ÿH £SLþ��% L�P�H�'�����¾þ��%���<�O��� 5�H�����}�©� Ð êãý§ÿb �S�þ���Y

cd��þ������#����$%�����&�"�����>ÿH���!�R�O�!V&S���ÿ�þ��ÿ��þ[�#�'�/ÿ��P�ÉÿH £SLþ� L�P�H�'�����¾þ��������¾ÿG������!��V·þ<��ÿ�Y

Page 109: Functional Programming Using Calm Light

ò$ó÷ ï6é9ë�ð@èaê³ï ä2åãæEñ,è­ëPèIðóï�è�ôhð ðbõ�í�ö�ðPîìfô6ñrîï�ð³é}ð�ñãñ�ë�õ�÷nè�ô�ð³ê×ñfôhõ�èÉéPê%ñÝðñu ,�.�/���è�é�Õ�y!Ô!0KyL/�vxw�.�/�è � {u , .L/1é�.J�~��è�é�Õ©��Õ {ò0 � ;R�L/79LÔP;u �x��6� .Léo¼�½|��Õu �O� vxw�.�ç�è�ét�6�M;(��.�5�{P;;�3ç�èP, � .{1}£;6�!;�Ôx�!;(�u ¼�½×9M0 � . � ;d��Õ�/7.M;d��Õ1.!,�Õ�.�;��J�Õ��Õu �O� vxw�.�ç�è�ét�6�M;(��.�5�{zy®�3ç�èP, � .{ò/��ݼJ½|��è�é�Õ©��Õ /u �O� é�é�Ôx� · /ÄÁR¶H/�ÙK¹©¼�½|��èLé�Õ · ��è�é�Õ©��Õ /ÃÁx¹ /�Ùu � }�;6�!;�Ô�K;´¼J½�é�è�9KÕ�. ·.� vxw 9�;�ª�« � ª´Üm��èLé�Õ�yPÔK0(y�/�vw7.zÜx¹u 9<;t��èLé�Õ ðXñ /�è �u �J�¤���¥z�J�6¯� 6�6�����W�ÂÆæ�x�J���6�����j��ÇxÈ�¡m¢Ä���6¡�6��ÉdÊ� z³�¢ÃÈ

c%��þ � ;6�!;�Ôx�!;7ÕJy!ÔK0(y�/Jvxw7. ·>� �8¶H/$¹ ��S�S��#�'�<�2ÿH���!�A�_þAÿ��������ÿ���þ\�#�T� ÿ[���U L���¹�T�P��� þ������<�O�����H�����N��� / ÿ���2ÿ�F��N���Ýÿ��S�SLþ����%��� � � Ygc%��þ Õ ��� /£é�èJ��/ �"�����>ÿH���!�Q�_þAÿ��������}ÿ���þ�FK�#ßÀþ<�_þ<���>þ����6ÿH$ª�+�#�'�/ÿG�<Yu ,�.�/ � ;6�!;�Ôx�!;7ÕJy!ÔK0(y�/Jvxw7. ·>� �8¶b/R¹©{u Õ ��� /�é�èJ��/ · ��èLé�Õ�yPÔK0(y�/�vw7.�/R¹ � �%���³�¢�øx¢Ã¯�Å�¢$����¯� z�������W�ÂÆÌ¡�¢Ã�º��¡x����ìt�x���J�6�����W� ÇxÈ�¡m¢Ä���6¡�6��ÉdÊ� 6³�¢ÃÈ

ëzþ���þAþ�F·ÿ�i�O�!V&S���ÿ_þ9ÿ���þd�I�'�/ÿÈ���f����£����$����g�����@ÿH �S�þPþ<�£ K�����!��V·þ<��ÿ��"�!�Fÿ���þ��Wþ<��þ<�G�M�#��Ì��2ÿH���!�-S������>þ����ÈWD���65����L$È���U�LþO���!���������·ÿ���ÿ����2ÿÜ�#�T� ÿ��<�������Ýÿ%��þ��O�KV·þ[�Ýþ<��þ<�H�'� ` YUcd��þÀ�/þAÿ%��������£����$����g���h��ÿH £SLþ@þ<�£ K�����!��V·þ<��ÿ�'�0ÿ��þ[�����©�K�Q���6ÿ���þ[��������L$È�������aþ��!��� ÿH £SLþ!YUc%��þ 0�,�è�/ �"�����>ÿH���!�#ù��2ÿ�ÿ�þ<�����\�#�'�/ÿ������#�'�/ÿG��Yu ,�.�/10�, èL/o{=9M/KyP,�9!Õ�/ · w�é�.L079�5túK¹ ðÕñ ��� z�����ûÆtü=�6�~��¡x�6����¡x�6�ºÇxÈAü>���~�6¡�6��ÉdÊ� 6³�¢ÃÈu ,�.�/ � ;6�!;�Ôx�!;7ÕJy!ÔK0(y�/Jvxw7.Jy�.�;6�1.M;��d{u 0�, èL/ ·X� è�w · 0 � ;R�L/79LÔP;d�£ÔKé�èP,�, · ª��%¶H/$¹ä¼J½ � ;��K;�Ô�K;�Õ�y!Ô!0KyL/�vxw�. · ª��%¶H/R¹J¹ò.M;��R¹Ä���³�¢�øx¢Ã¯�Å�¢$����¯� z�������W�1�z�ޢäÂÆà����J�6�����W�����(¦4§T�4¨T�é�6¡x���tÇxÈt¡m¢Ä�~��¡x�6� ÉoÊ� z³�¢ÄÈ

c%��þ��Ýþ<��þ<�G�M�#��Ì��2ÿH���!�N�����@ÿH �S�þÈ�'�U�_þO�T� ÿH�� Ýþ0ÿ��x�@ÿH £S�������þ<�� !�����!��V�þ<�ãÿ�Y�c%��þ � è���.Jy�Õ�.L/ �������>ÿH���!��þO�#��Vx�����2ÿ�þ��F���S��#�'�<�2ÿ�þ��È���-�¾ÿG�g�#�'�/ÿ[�����!��V�þ<�ãÿ�Yu ,�.�/1é�.�� � è���.Jy�Õ�.L/t{ò0 � ;R�L/79LÔP;u ðÕñ ¼J½ ðÕñu � 5å���b,ݼJ½á9M0 � . � 5=,1/x�.M; � è���.Jy�Õ£.�/á,¦.!,�Õ�.�5ë�J� � è���.�y£Õ�.L/á,ê�J�¨Ä��øÄ�����(��ûÆ�ü.�º��¡x���tÇxÈAü ����¡x�6� ÉoÊ� z³�¢ÄÈu ,�.�/�ª�.M;�.�é�èP,�9!Õ�.�yL/�vw7. · ª�è ��� 讶-/�è � ¹�{u ,�.�/�ª�.M;6��è�é�Õ|{u � è���.Jy�Õ�.L/ · Õ ��� /�é�èJ��/ · ��è�é�ÕJy!Ô!0Ky�/Jvxw�. /�è � ¹u ·>� ;6�K; Ôx�!;7Õ�yPÔK0(y�/�vw7.Jy�.M;��©ª�è ��� è�¹�¹u 9<;d��Ô!é�è!,£, · ª�.M;���èLé�Õ®¶3/�è � ¹u �J�±T�4¢T��¥K�x��¡x�z�1�6�����j�kÆæ�x�J���������j�1�J�(¦Þ§��Þ¨��h�6¡x���tì��x�J���6�����j��ÇxÈt�x�J���������j�1�J�(¦Þ§��Þ¨��äÉtÊ� z³�¢ÄÈ

Page 110: Functional Programming Using Calm Light

ä2åãæ*)ãæ èÉé9êtë[ñãì�è�ô�ð³ê,+"ñfôhõ�èÉéPê%ñÝð.-¥ê³ï ò$óýPRQTSVUWSÎQ óW]cÄs `ml%\×Zp^�qr8Z(stZK^�`c~`ml%\�Z(^�ôEïÄZ(_8Z(]bÕqÐbX_8^�`1aR_�`bXaK`bXcÄ_c%��þ\�����#����$%�����x�"�����>ÿH���!�R��þAÿ������������Ýþ<��þ<�H�'�������/ÿG�P���>þ������¾ÿG�ÿH £SLþi�����þ<V·þ�����!��V·þ<��ÿ�Y Ð �Ýþ<��þ<�H�'�������/ÿG�P���>þ�'���K��ÿG�M����þ�F-�� 3�_þ<S��T�K��©���-�M�#���Ýþ<��þ<�¹�T�SÿH �S�þ[ L�P�H�'�����¾þ����� 3��þ<$¦��������L$È���<(u ,�.�/�ª�.M;$y�9�;�Õ�/�èM;R�£. · �£ÔKé�è!,�, · ªJ�8¶H/�è � ¹�¹Ð{u · �©þ�.áè�Õ£Õ!Ô6��9KèL/�. è�;7.�� � ;6�K; Ôx�!;1/�Ô¼.£è���tª�.�;7.�é�9x�©��è�é�9Kè � , .���¹u ,�.�/ � ;6�K; Ôx�!;7Õ|{ � è�w · 0 � ;$��/79LÔP;1;ݼ�½�;;¶ � vw7.Lç�è�é · ;�.��Ky���èLé�/�vw7. · ¹�¹J¹ÌªJ� 9<;u ,�.�/1é�.��©ª�9�;7ÕL/�è�;R��.ä{×0 � ;$��/79LÔP;u · � vxw�.�ç�èLét�z��;(��.�56{�;;�3ç�èP, � .1{1}£;6�K; Ôx�!;(�1è�Õ /R¹~¼J½u · /�éJv¦è�Õ£Õ!Ô6� ; � ;6�!;�Ô�K;7Õu �79�/x � ÔK/(y�0�Ô � ;z��¼�½ /R¹u �O� vw7.Lç�è�éº�z�M;z� .L56{zyT�Nç�è!, � .{ /6�o¼�½|ª79<;7ÕL/�èM;$��.�/u �O�x�1�z� .�éo¼J½ �x�1�z� .Léu �O� é£é�Ô� · /ÃÁöb/6ÙK¹©¼�½ � é�é�Ô� · ª79�;�Õ�/�èM;R�£.A/ÄÁR¶Ìª�9�;�Õ�/�è�;R�£. /�ÙK¹u � }�;��K; Ôx�K;ݼ�½�é�è�9KÕ£. · � vxw 9�;6ªJ« � ªÂÜ�ª�.M;Ry�9�;�Õ�/�è�;R�£.(Üx¹u 9<;tª79<;7Õ�/�èM;$��.�/�è �u �J�±T�4¢R��¡�¢R�����m¢T¦��ÂÆæ�x�J���6�����j�1���z¦Þ§��Þ¨T�|ÇxÈ �x���J�6�����W�|ÉoÊ� z³�¢ÄÈ

PRQTSVUWSíÿ ��r8Z©fÐgWik`ml%\�Zp^�l%_�`r%Z(^�bÕö6Z(]c%��þ@ÿH �S�þ��H ��ãÿ��þ�����ÌAþ<���'�ÿ���þ è�Õ!,6y�/Jvxwf9<;6ª(y�.�5w�é �������>ÿH���!�fYgeU�!��-���f�¾ÿG�ÈV3�2ÿG��-�<�!�/þ����O�!���þ��HS��K��F��ÿ��&�������� þ<�_þ<���>þi���� þ+���� Ýþ<�Í�P���� Ýþ!Yu ,�.�/1é�.��áè�ÕP,zyL/�vxw 9�;�ªKy�.L5xw�é~ª�è ��� è|{u ,�.�/1é�.���/Jvxw7.Jy�é�.��|{10 � ;R�L/79�Ô�;u Ó£ÔP;7ÕL/oyt¼�½ �x�1�z� .�éu � ç�è�éò;¼�½u , .L/¦Õ�9�ª � è|{u /£é�v1;�/1;dª�è �J� èu ��9M/xÝ��è�9�, � é�.�y�¼�½ é�è�9KÕ£. · � vxw 9�;6ªJ« � ªÂÜÞ}£; � Ô � ;z�RÜx¹u 9�;ºª�.M;$y�9<;7Õ�/�èM;$��.1Õ�9�ª � èu � Ó£ÔP;(� · .(ÁR¶O.1Ùê¶O.��K¹~¼J½u � ; 9M0Jv · ���6� .�é%¶N/Jvxw�.�y�é�.��1.zÁx¹Ä�u , .L/1/6Ùt{1/�vw7.Jy�é�.J�ò.1Ù¦èM;(� /��t{1/�vxw�.�yLé�.�� .��u 9�; � ;f9�0�v · /6ÙW¶-/��(¹��-/��u �O� w�w ·J· �� Õ · 58¶G.ÙK¹�è�Õ 0$¹�¶R.zÁx¹~¼J½ · ���� � ��è�Õ£.��6¹u , .L/1/ÄÁ©{1/�vw7.Jy�é�.J�ò.zÁ19�;u ,�.�/:Õ�9�ª � èä{ºª�.M;�.�é�èP,�9!Õ�.�yL/�vw7. · ª�è ��� 讶H/ÃÁx¹u 9�;¼è�Õ!,6y�/Jvxwf9<;6ª(y�.�5w�é · Õ�9�ª � èW�J�Õª�è ��� è6¹�.Ùu �O� w�w · .(ÁR¶O.Ù(¹~¼�½u , .L/ � { � vxw�.�ç�è�é · ;7.��Ky���è�é£/�vxw�. · ¹�¹u 9�; � ;f9�0�v · /�vw7.Jy�é�.J�ò.zÁö � é�é�Ôx� · /�vw7.Jy�é�.J�ò.1Ùê¶ � ¹�¹Ä� �u �O�� Õ · 58¶G.6¹~¼J½u , .L/ � { � vxw�.�ç�è�é · ;7.��Ky���è�é£/�vxw�. · ¹�¹�9�;

Page 111: Functional Programming Using Calm Light

òÝò$ó ï6é9ë�ð@èaê³ï ä2åãæEñ,è­ëPèIðóï�è�ôhð ðbõ�í�ö�ðPîìfô6ñrîï�ð³é}ð�ñãñ�ë�õ�÷nè�ô�ð³ê×ñfôhõ�èÉéPê%ñÝðñu , .L/¦Õ {t��ÔKé�è!,£, ·KðXñ ¶ � ¹u 9�; � é�é�Ôx� ·>� ¶Gè�ÕP,zy�/Jvxw 9�;6ª(y�.L5xw�é · ÕW�J�Õª�è ��� è6¹ò.�¹u 9<;á/�vw7.�yLé�.J�®����x�J���������T¡�¢J±R�(��­��$¥CÆæ�x�J���������j�1�J�(¦Þ§��Þ¨��h�6¡x���dÇxÈ�����ÝÇxÈ�����J�6�����W�~ÉdÊ� z³�¢ÃÈ

PRQTSVUWS� �Öl%\8bX_8ï �%`]aR\8\%bX_8ï~`ml%\�Zpq6õÕaR^�r8Z(^�aR_%n´\8]bX_�`bX_8ï fhgWiÂ`ml%\×Z(^ÑÈ�L$+��$þUF�þO¢���þ��H�!V·þ%����Z��I�#�'���� \�������>ÿ¹�©�K���v�©�+�!�GF�þ<�aÿ��������#�'F&��ìO�K�£��F�5ý���£�!K�����£íPÿH £SLþª�H ���ÿ���þ�����ÌAþ<��YW7v���G�/ÿf����M�#�D�£��S��H����ÿH�����x���!��ÿH����þg���K� Ð êãýâÿb �S�þ������þ<V·þ��h�T��F�þO¢���þ�FjWD���������x�È�������>ÿH���!� /J��èLéKyM;�è � . $È���T��3�O�!V}S���ÿ�þ���&F�þ��>þ<��ÿ����PV·þ����K�bÿH �S�þ+ L���H�'�����¾þ�� ` Yu ,�.�/1/J��èLéKyM;�è � . ;Ý{uû· � Ó£Ô � w � /�.�Õ1è�;�è � .�ÜÃÛOèzÜö �J��� 0�Ô!é1/�vw7.|��èLé79!è � ,�.�ÕT¶Ì��¹uû· �©ª�9���.M;:è�;�9<;�/�.�ª�.Léò;=é�.�w�é�.£Õ�.�;�/79<;6ª /x�.éw�Ô�Õ�9M/�9�Ô�; ��¹uû· � Ô!0á/x7. /�vxw�.|��è�é�9Kè � , .Ê9�;=/7. ,�9KÕ�/=Ô!0�ª�.�;7.�é�9x� ��¹uû· ��/Jvxw�.~��è�é�9Kè � , .£Õ ��¹u , .L/1é�.J� ;�è � .�y!Ô!0ò;d{u ,�.�/��ê¶bét{ · ;��|Ù��K¹�¶ · ; � ÔJ��Ù��K¹19<;u ,�.�/:Õ|{ � è���.Jy�Õ�/£é79<;6ªÂÁ · ���è�éKyPÔK0(y�9�;�/ ·�� ��À!éR¹�¹ 9�;u 9�0���{�» /x7.�;ÉÕ1.!,�Õ�. · ;�è � .Jy!Ô!0��(¹�KÕu 9�;°ÜRÛ�Ü�� · ;�è � .�y!Ô!0ò;Ĺu �J���¤J��¥6��¢Ä�m¨T��Æ ¡�¢Ä�dÇÈ~�6��¥K¡�¢J±ÂÉdÊ� 6³�¢ÄÈc%��þ<�R�xS��H���ãÿ¹�©���}�"�����>ÿH���!�-�"�!�ÿH £SLþi�����þ<V·þ��<Yu ,�.�/~w�é79<;�/KyL/�vw7.�y£Õ���7. � . · ��Ô!é�è!,£, · ª��8¶b/R¹J¹é{uû· ���£é79<;�/�ÕÊèò/Jvxw�.1Õ���7. � . � �6¹uû· �|��è�9L, Õ©�7.M; 9�/¦.M;$�!Ô � ;�/�.�é�ÕÊèM; � ;6�K; Ôx�!;´�6¹u , .L/ò;7è � .�Õä{>,�.�/áé�.J� ;7è � .£Õ�y!Ô!0t{ò0 � ;R�L/79LÔP;u · ;;¶ ðXñ ¹~¼J½ ðÕñu �é· ;;¶ · �ÄÁÄ�����J�R¹J¹ä¼J½ · /���è�éKy�;7è � . ;ù®��� · ;�è � .£Õ�yPÔK0 · ;(À$Áö��J�R¹J¹u 9<;á;7è � .�ÕJy!ÔK0 · ÁR¶=ªJ�R¹19<;u , .L/1/���è�éKy�;7è � .�Õä{��!Ô �z� 9<;7. · é�.���ªJ�8¶N;�è � .�Õ6¹Ê9�;u , .L/1é�.J�äw�é79<;�/KyLé�.J�©{10 � ;R�L/79�Ô�;u � vxw7.Lç�èLé6�z��;(��.�56{�;;�3ç�èP, � .1{1}£;6�K; Ôx�!;(��¼�½u ,�.�/ò;�è � .|{1/�é�v:è£Õ�Õ!Ô6� ;á/J��è�é(yM;�è � .£Õu �79M/ � Ô!/KyL0�Ô � ;(��¼J½u é�è�9!Õ�. ·.� vwf9�;�ª�« � ªÂÜ � ÔP;ºª�.M;�.�é�9x�©��è�é79!è � , .(ܹu 9<;�w�é�9�;�/Ky�ÕL/�é�9�;6ª�;7è � .u �O� vxw7.Lç�èLé6�z��;(��.�56{6y®�bç�è!, � .1{K/6�~¼J½éw�é�9�;�/Ky�é�.���/u �O���z� .�éo¼J½©w�é79<;�/(y�Õ�/£é79<;6ªÝÜ �x�1�z� .�éÄÜu �O� é�é�Ô� · /ÄÁöb/6Ù(¹ä¼J½u w�é79<;�/(y�Õ�/£é79<;6ªÂÜ · ÜÃ��w�é79<;�/(y�é�.J��/ÄÁR�u w�é79<;�/(y�Õ�/£é79<;6ªÂÜä¼J½ÝÜÃ�Ow�é79�;�/KyLé�.�� /6Ùê�u w�é79<;�/(y�Õ�/£é79<;6ªÂܹ6Ü

Page 112: Functional Programming Using Calm Light

ä2åãæ*)ãæ èÉé9êtë[ñãì�è�ô�ð³ê,+"ñfôhõ�èÉéPê%ñÝð.-¥ê³ï òÝòÝòu � }£;6�K; Ôx�!;´¼�½ é�è�9KÕ£. · � vxwf9<;6ªJ« � ªÝÜÞw�é79<;�/KyL/�vw7.�y£Õ���7. � .(ܹu 9�;�w�é79<;�/KyLé�.J��/u �J��x¯N���z�x¤6���t¡�¢1��³��WÆÈ ���΢ �!�N¤�"TÆ�Æ�#(¤$�$�ÇÈ%�N��¤J��¥z��¢Ä�m¨T�à¢&$WÆ�Æ��Ó¢Ã��¨T������¯� '�Ó¢)(�"!�*#(¤$�$È ++,x��¥1¢Ã¡�¢�±×ÆÌ��§��~¤���¥K¡J��çx�z�-#K¤�������¥(�x�tÅJ¡��m§Â��¢Â³m�J�W��¥´¦x��(�ä�z�x������¥o¡m¢°��§Ä¡�Ð�®�J������¥1¢×£�R¥(¡�¢Ã�x�6�����j�1���z¦Þ§��Þ¨T�ÂÆÌ������������W�1�J�(¦4§T�Þ¨��~ÇÈ�³�¢Ä¡J��ÉdÊ� 6³�¢ÄÈÑÈ�L$+�¥ÿ���þ&V3�M���E�"�����>ÿH���!��$È���T��A��þ�� þAÿG�Pÿ���þ·ÿH �S�þx L���¹�T�P��� þ��x�O�!����ÿ�þ<�����<�M�#�'�@ÿ���þ·ÿH �S�þ&�H ��ãÿ��þ�����ÌAþ<���aÿ��G��S��Ð êãý�ÿH £SLþÀ��'�!�H��þ��È����F&S��¹�©��ÿG�ÿ��þ���þ��¹��� ÿ¹�©����ÿb �S�þ���Y Ð ÿ³ÿ��þ@þ<��F7�ãÿ��þ������!���L�Àþ<�� K�©��!��V·þ<��ÿG������þÈ��S�F��2ÿ�þ�F7Yu ,�.�/1/Jvxw 9�;6ª ·/. .J�!, · Õ®¶G.6¹J¹©{u é�.£Õ�.�/(y���è�é�/Jvxw�.�Õ · ¹��u , .L/1/�è � { · � �0 �K� � ¸��6¹u /�éJv è£Õ!,6y�/�vwf9<;6ªKy£.�5w�éû¿Õª�,�Ô � è!,6y�/Jvxwf9<;6ª(y�.M;��>.u �79�/x � vxw7.PÓ�,�è�Õ� · /ÃÁöH/�ÙK¹©¼�½ · � � /Jvxw 9�;6ª=.�é�é�ÔKéo��¹u , .�/t��è�é�Õ1{x��è�é�ÕJy!Ô!0Ky�/Jvxw�. · /ÃÁx¹�úx��èLé�Õ�y!Ô!0KyL/�v�w7. · /6Ù(¹ 9<;u w�é79<;�/(y�Õ�/£é79<;6ªÂÜ ��1 � � vxw�.��!,�è�Õ� � .L/���.£.M;°ÜR�u w�é79<;�/(y�/�vw7.Jy�Õ���7. � . · ��Ô!é�èP,�, · ��èLé�Õ®¶b/ÄÁ¹�¹��u w�é79<;�/(y�Õ�/£é79<;6ªÂÜ è�;(�ÂÜÃ�u w�é79<;�/(y�/�vw7.Jy�Õ���7. � . · ��Ô!é�èP,�, · ��èLé�Õ®¶b/6Ù(¹�¹��u w�é79<;�/(yM;7.���,�9�;7. · ¹Ä�u é�è�9!Õ�. · ��è�9L, � é�.tÜ ��1 �>/Jvxw 9�;6ªÃÜx¹ 9�;u , .L/¦Õ�9�ª � èä{ºª�.M;�.�é�èP,�9!Õ�.�yL/�vw7. · ¿Õª�,�Ô � è!,6y�/Jvxwf9<;6ª(y�.M;��8¶b/�è � ¹ 9<;uû· �é}�� .J��� � � ¸�� � ç(�32!4 �5 � ����1 ��¹u ª�,£Ô � èP,zy£.M;6�A�={¦Õj����¿Xª�,£Ô � èP,zy£.M;6�%�u ª�,£Ô � èP,zyL/�vxw 9�;�ªKy�.�;6�û�3{¼Õ�9�ª � èW�J��¿Xª�,�Ô � èP,zy�/Jvxw 9�;6ª(y�.�;6�W�u é�.£Õ�.�/(y���è�é�/Jvxw�.�Õ · ¹��uû· ����2K� ��� � � ¸�2�� 1 }�� � � � ¸ �0 ��o��¹u w�é�9�;�/(y�ÕL/�é79<;6ªÝÜ ��1 � � vxw7.ÊÔ!0ÂÜÃ�u w�é�9�;�/(y�ÕL/�é79<;6ªáÕ®�u w�é�9�;�/(y�ÕL/�é79<;6ªÝÜ19KÕdÜR�u w�é�9�;�/(y�/Jvxw7.Jy�ÕJ��7. � .�Õ�9�ª � è®�Ow�é79<;�/Ky�;7.���,�9<;7. · ¹��J������®¡m¢�± Ææ��¯N�����x����ÇxÈ~³�¢Ä¡��tÉtÊ� z³�¢ÄÈ

PRQTSVUWS76 �Öl%\8bX_8ï fhgWiû\%]c�ïÄ]aRst^ëzþ[��þO�����¾ÿH�'�M�#��ÌAþ±ÿ��þ[S����G�������·þ<�� !�����K��V·þ<�ãÿM(u ª�,�Ô � è!,6y�.�;6�;�3{�9<;f9M/(y�.�;6�8� · ¹��J�ÇûÆ#³�¢Ã¡��tÉ8�9$ÑÈ�L$+�!�¾þAÿ����%�����R�H�!V·þ@þOZ���V&S��¾þ��ÿ�����!���!��ÿ���þ Ð êãý�ÿH �S�þx����þ��Ýþ<��(u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w ÜM,�.�/á5 � .ÝÁR��Üx¹Ä���:;�#´�����W��¯�  ­ ¡��<K³�¨Ãç6��¥

Page 113: Functional Programming Using Calm Light

òÝò�ø ï6é9ë�ð@èaê³ï ä2åãæEñ,è­ëPèIðóï�è�ôhð ðbõ�í�ö�ðPîìfô6ñrîï�ð³é}ð�ñãñ�ë�õ�÷nè�ô�ð³ê×ñfôhõ�èÉéPê%ñÝðñÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w Ü�ÀtÙ ·�·>== 5 � 5$¹-�(¹���ܹ��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w ÜK9�0oÀt»´Á /7.M;kÁÊ.P, Õ£.|»1079���Üx¹Ä���:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w ÜM,�.�/É9�� � . == 5 � 5%��Üx¹Ä���:;�#´�����W��¯� d¡��t¡x�?�6ü.�tÇxÈAü.�$ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w Ü�À · 9��´Áx¹ · 9��¦9���Ù(¹���Üx¹��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w ÜM,�.�/á0 � . ·>== 5 � 515$¹ ·@== 5 � 5R¹���Üx¹Ä���:;�#´�����W��¯�    ¡�?�6ü �ºÇxÈAü ��$ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w Ü�À ·@=�= 5 � 5R¹ºÁÃ��ܹ��J�:;�#´�����W�t¦1���x��§Âç6���Å6�J�Þ¢A<(³�¨Ãç6��¥d��¢Ä�B�6ü �dÇÈûü ��$C�¢�¦x�³�±�§Ã�t��­$¦��.�®��¡J¯�¢×ÆED(��¡x�J³¥$�GFH:�;#o�����®¡m¢�±IF

PRQTSVUWS7J �Öl%\8bX_8ï aR_8n´]Z(q6Ñ8]^�bXcÄ_c%��þLK1¢�Z�S�������ÿÀ�O�KVi�������2ÿ�!��F���þ��%���Ýÿ����M Ýþ���ÿH �S�þ����ÍÙj�#����þ<�NM��}ÿH £SLþ��H �� ÿ�þ<VQ(u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1wu Ü�, .�/Ê079M5 � . == 0 � ·J·@=�= 5 � 0 ·>==3O � · 5�5R¹ O ¹�¹ ·@=�= 5 � 0 ·>==PO � · 5ò5$¹ O ¹�¹�¹Ä��ܹ����:;�#´�����W�t¦1���x��§Âç6���Å6�J�Þ¢ ü.����¢Ã�'�6ü �ºÇxÈAü ç�$C�¢�¦x�³�±�§Ã�t��­$¦��.�®��¡J¯�¢×ÆED(��¡x�J³¥$�GFH:�;#o�����®¡m¢�±IFc%���'���'�g��þ��<�P���/þ�$þ0ÿ��� Sÿ�����S�S���  5 ÿ����¾ÿG�/þO�#�¹������F�ÿ���þ0ÿH £SLþ���� 5 �'�Ü���Ýÿ�S����� �V&�!��S����'��YgCD�x�D�!�>ÿ��K����¢�Z�S������ãÿ�O�!Vx�������2ÿ��!�\�'� ÿH �S������¾þ&��� Ð êãýÜYhcd���T�\�'�[$È�£ A$þ&��þAþ�F �Q�¹S�þ���'�M��S��H��Vx�¾ÿH�� Ýþ-�!�x�H £��ÿG�!�>ÿ¹�T�}�O�!���/ÿ������>ÿ\����!�GF�þ<�}ÿ���þOZ�S���þ������þ��O���O���� !�¾ÿH !Y

C ��$þU$�����ÿ,ÿ����!������!� ÿH �S�þ��Iÿ�����þ��O���G�b�© WþªS���!�!�G��VN�<�<$þU���M ÝþFÿ���S���þ�F�þO¢���þ0ÿ��þQKR¢�Z�S�������ÿU�O�!Vx���©��� ÿ��!��YC^ÿO�ÿH £SLþ�������þ<V�þi�H���!���'Fj��þ"�$� 6 W�W=�R@ � ` @ � ` ���Lþ��<�����/þ+$bþ@ÿO��ÝþÈ¢�Z�S������ãÿG�È�����������>ÿ¹�©�K���<Yu ª�,�Ô � è!,6y�.�;6�A�={ÂÜ�0�9M5ÄÜÄ���G9�;f9�/Ky£.M;6�%�u ª�,�Ô � è!,6y�/Jvxwf9<;6ª(y�.M;��;�3{u · ��Ô!é�è!,£, ·(ð Á ñ ¶u � é£é�Ôx� · � é�é�Ô� ·.� vxw�.�ç�è�é6�6�M;z� .�5�{RÁK�Hç�è!, � .{�}!;6�K; Ôx�!;(�®¶u � vxw7.Lç�èLé6�z��;(��.�56{$ÁÃ�bç�è!, � .1{1}�;��K; Ôx��;(�(¹�¶u � vw7.Lç�è�é��z��;(� .L56{$ÁÃ�Hç�è!, � .{�}�;��K;�Ô��;(�K¹J¹�¹u ���G9�; 9M/KyL/�vwf9�;�ªKy£.M;6�%�u®· ¹��J�ÇûÆ#³�¢Ã¡��tÉ8�9$

Page 114: Functional Programming Using Calm Light

ä2åãæ*)ãæºèÉé9êtë[ñãì�è�ô�ð³ê,+"ñfôhõ�èÉéPê%ñÝð.-¥ê³ï òÝò$ôëzþ��<���E����$×F�þO¢���þx�!���d� �M !�!�¹� ÿ_þ��"�����>ÿH���!�����!�<(u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1wu Ü�, .L/>0�è��L/ � . 079�5 ·@=�= 0 � ·@=�= ; � 9�0o{ò;Ý»ò/7.M;ËÁu .P, Õ�. � ; · 0 · ¼�;ËÁx¹J¹u 0�9�¹�¹Ä��ܹ����:;�#´�����W��¯�   K�6¦�t¡x�'�R<K³�¨Ãç6��¥´ÇxÈ�<K³�¨Äç���¥!$ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w Ü�0�è���/�SW��Üx¹Ä���:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1wu Ü�, .�/Ê079 � � . 079�5 ·@=�= 0 � ·@=�= ; � 9M0t{ò;ËÁ /x7.�;°Áu .!, Õ£.á9M0d{ò;dÙ1/x�.M;°Áu .!,�Õ�. À · 0 · ¼�;°Á¹�¹ · 0 · ¼ ;ÝÙ(¹�¹u 079u 079�¹J¹���Üx¹��J�:;�#´�����W��¯�   K¡�çt¡�'��<(³�¨Äç���¥´ÇÈ�<K³�¨Ãç6��¥!$ÇûÆ#³�¢Ã¡��tÉ8�9$u /Jvxw 9�;6ª · w7èLé�Õ£.�y�/�Ô1w Ü�0�9 �T� ��Üx¹��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥ÇûÆ#³�¢Ã¡��tÉ8�9$

Page 115: Functional Programming Using Calm Light

òÝò<î ï6é9ë�ð@èaê³ï ä2åãæòñ,è­ëPèIðóï�è�ôhð ðbõ�í�ö�ðPîìfô6ñrîï�ð³é}ð�ñãñ�ë�õ�÷nè�ô�ð³ê×ñfôhõ�èÉéPê%ñÝðñ

Page 116: Functional Programming Using Calm Light

U VXWZY?[]\�^ _�`

a bdc e fhghfIi j k l m nob pqi psr t�nAuZpsv�nc psvxw fhi y v8b z y

CD�E�!�GF�þ<�0ÿ���"���#�� �ÿG��WþÀ�!F� �����ÿG���Ýþ[���6ÿ���þ��/ÿO�2ÿH�'�PÿH £S������&��� Ð êãýAS����K�!�G��V3���£$þ[���M ÝþPÿ���(& þO� ÿ��þ<�U$��H�¾ÿ�þ[����þ<$ò���ãÿ�þ<�S���þAÿ�þ<�U$d� ÿ���!��ÿ³ÿH �S�þ0ÿ�þ�� ÿG�gWbFK� Øã�O���¾ÿ����Lþ��<�����/þ�$bþÈ���/þ�FxS��2ÿ�ÿ_þ<���65"V3�2ÿG���������©�E�!�GF�þ<�0ÿ�i�_þ��M�#�©ÌAþ�ÿH �S�þ@ÿ�þ��/ÿO� ` ¨& �!��F�þ������!�Í���E���ãÿH �S�þ�FNV3�K��������þi�P��F-S�����F����>þi�O��F�þ[�"�!�g�¾ÿ�Y

ëzþ&����£�£� þi��þ<�_þ²ÿ��þ�� þ��O�!��FR�H������ÿH���!�f(È�¾ÿ[$%�#�I�%S�þ<��V�� ÿ[���Pÿ�-���� Ýþ&�H�!V·þ\�©��ÿ����¾ÿH���!���P���!��ÿ@ÿ���þ&�O�!V}S��I�#�����S������>þ����[�P�ª�"�����>ÿH���!���M�g�'�����!�����Ýþ����h�P��F�ÿ��ÍF�þ���O�H����þQ��ÿH �S��'�<�M�bþOZ�þ��O��ÿH���!� V&��F�þO�g���K�xWb�/ÿ��H�'�>ÿ ` �������>ÿ¹�©�K���M��'�����!�����Wþ��<Y�c%��þxV3�K��������þ�ÿ����2ÿ�$þ�$%�#�#�U���/þ+�'���N����V&S��#�#¢�þ�FA Ýþ<�O�����!��ÿ���þ|{U³K®"°b¯K¬!²GúýüO³!´~}��O­<®"²b³Kü�® �R³!ümâ�ú'±�°W.� Ð Ù �K���!���H���!��ÿ ` Y

ë�þª$d�I�#�f�<�M�#�Ä� Ð Ù �!���U����� ÿ��G�!�>ÿ�V3�K��������þ!�£F�þ��¹S�� ÿ_þ��¾ÿG��FK�#ß,þ<��þ<���>þ��g$%�¾ÿ���ÿ���þ��!�¹�©�P�©���L�Ä� Ð Ù Y7 �!��V}�!��þ�������K��V3�2ÿH���!���d�!��ÿ���þ�� Ð Ù ���/þAþ3þ ÷ � ø/Mÿ Yµ��\·Oµ º¼»i½A@8��I�ÅfÃf¾Q�ÜÅ8� ¾Q�Ü»&ÄmLi½c%��þ�þOZ�þ��O��ÿH���!�RV&��F�þO���'���E­ó®"³Kümã3«x³!ü�â£ú'±�°+W"�DYEþ!Y[�&V3�K��������þx���������Q�3� ÿG�!� ` YÈCD��ÿ����'�[�/þ��>ÿH���!�f�7$þxF�þO¢���þ���Ð�ª�PVx�,ÿ���þ&­<®"³!®"°<­g���Kÿ��þE� Ð ÙÎ����F}�¾ÿG�d�����/ÿ������>ÿ¹�©�K���<Y

Ð �/ÿG� ÿ�þ��'���O�!V&S��£�/þ�FN����(& �-²H°b¯Kú�­<®"°�²%W������'FK�©���N L�L�©��þ�������Fâþ<�£ K�����!��V·þ<��ÿG� ` �& ��Û�²H¬G¯K²H³!«�üG¬!ù�±�®"°M²G�K��þ<S���þ��/þ<��ÿ�þ�F}��þ<��þ[�!�U�\�#�'�/ÿ%���7�©��� ÿ������>ÿH���!���g$����£� þ�¢��G� ÿ³þO�¾þ<V·þ<��ÿU�'�Fÿ���þ[�O������þ<��ÿ�©��� ÿ������>ÿH���!�E��þO�����±þOZ�þ��O��ÿ�þ�F7�& ����Fx�[­<®"³!ümãg��þ<S���þ��/þ<��ÿ�þ�Fx�!���È�#�'�/ÿ���� �O��F�þ��!F�F���þ���� þ��%W"�����/ÿ�����>ÿH���!�+�I�'�/ÿO� ` �! ��M����þ��U����FSþ<�� !�����K��V·þ<�ãÿO�<Y

c%��þ\¢��G�/ÿ"�ª�PVx�,ÿb �S�þ@ÿ���2ÿ�$þ[��þAþ�Fj�T��ÿ���þ ÿH �S�þ��"�!�"� Ð Ù �©��� ÿ������>ÿH���!���<Ygëzþ+$%�#�I�U�/ÿ���F� }�'�2ÿ�þ<�Pÿ���þ@þOß,þ��>ÿ���6þ��!��N�©��� ÿ������>ÿH���!�fYu /Jvxw�.á9�;�Õ�/�é � �L/79�Ô�;d{u ��� ÔK/�. ÔK0¼9�;�/ · ����;�/�.�ª�.Léo�!Ô�;7Õ�/�èM;�/�Õ���¹

òWò�/

Page 117: Functional Programming Using Calm Light

òÝò�µ ï6éPë�ð�èÉê³ï ä��ÝæAï0îñRð6ð/ì¥ðbõ�íºë[ñãì�èbîhë�õ�ë��Èñ,èÉï}ë�ïPè ñ�ë�ï6é}ðbõPê=ï}î%÷@êu;� ��, � Õ ��5 9�; � Õ · � � é79M/ � .�/79� Ô1w�.�é�è�/79LÔP;�Õ~��¹u;�]. 9��79�� . � ��� � è!, � � 9 � .£Õu;�O� /x=Ô!0 9<;�/ · ��ç�è�é79!è � , .1èJ����.£Õ�Õ£.�Õ���¹u;� «£é�èM;$��=Ô!0:9�;�Õ�/£é � �L/79LÔP;=,�9KÕ�/d�¦9<;7ÕL/�é � ��/�9�ÔP;×,�9!Õ�/u · � Ó£ÔP;(��9M/�9�ÔP;�è!,>.L5�.J� � /�9�Ô�;o��¹u;� � � Õ� · ��� � Õ��.�ÕÊÔP;�/�Ôò/7.1ÕL/�èJ���o��¹u;��1 ��è�w · ���£5K�� � /�Ô1w>ÔK0:Õ�/�è����=èM;(� é�.�ª�9KÕL/�.�éd�6¹u;� Ó£,�Ô Õ ÔK0:9<;7Õ�/£é � ��/79LÔP;=,�9KÕL/ · �©« � 9�,J� Õáè��P,�Ô Õ � é�.©�79�/xá/7.t� � é�é�.�;�/¦.�;6��9Mé�Ô�; � .M;�/t�6¹u;�O� w�w�,v · �|� � ;R�L/79LÔP;:è�w�w�,�9x�£è�/79LÔP;´��¹u �J������W�~¡m¢R����¥z³z¦x�J¡�¯�¢ �6�� (¡�¢��x�W£

ëzþ+��þAþ�FA�&��þ<$ºÿH £SLþ+���!���/þ<V3����ÿH�'�+ L�M����þ��[�������>þx�����/ÿ�����>ÿH���!�E�I�'�/ÿO������ Wþ�����$=�_þ<S��T�K�>þ�FÍ�P���/ÿ��G�!�>ÿ[�H ��ãÿO�MZÿ���þAþ���Y c%��þA�/þ<VN���ãÿ¹�T�§ L�M����þ��Q�P��þRV·þ<���Ýþ�F ���¼��ÿH £SLþ Ô ��� .J��/ YÉc%��þzÿH �S�þ Ô ��� .J��/ ��þ<���M Ýþ��E�!�-F��2ÿG���� �E�O�!V&S���ÿ�þ<�+V·þ<V&�!� �(+$þ&��þAþ�FA�����!��þ<� 5ý� þ< WþO���������!�V3�2ÿH���!��WH�H�������!��ÿb �S�þ��©���"�!��VN�2ÿH���!� ` �����!�OF�þ<� ÿ�����ãÿ_þ<��S���þAÿ,ÿ���þ<VEYj7 ����ÿ���þ<��V}�!��þ!���H�KV·þUF��2ÿG�%F������Ýÿ��O�!����þ��HS��!��FPÿ����P�£ �ÿ��������[W"�"�!�,þOZ���V&S��¾þª�P�@þ<�£ K�����!��V·þ<��ÿ�O�!V&S��£�/þ�F ���@þ<�� !�����!��V�þ<�ãÿG����þ<S���þ��/þ<��ÿG�+��þO�¾ÿ���þ<�ã�P� Ð êãý> L�M����þE���!�&��� ���ãÿ�þ<�V·þ�FK�'�2ÿ�þÍF�� ÿG�j�©�1�j� þ<���M��O�!V&S���ÿO�2ÿH���!�-S������>þ���� ` Yu /Jvxw�. Ô ��� .��L/t{áÓ�Ô�;7Õ�/�èM;�/áÔK0:9<;�/u � Ó�,£Ô Õ � é�. Ô!0áÔ ��� .J��/o�ÊÔ ��� .J��/u �O� �J�Ké�.£Õ�Õ Ô!0:9�;�Õ�/£é � �L/79LÔP;=,�9KÕ�/u � �K;��79Mé�ÔP; � .M;�/1Ô!0=Ô ��� .��L/á,�9!Õ�/u �J������W�~¯Jç��Ã��¦x� �6�� (¡�¢��x�W£c%��þ@ÿH �S�þ Õ�/�èL/�. �'����S�����F����>ÿ}ÿb �S�þ+$%�¾ÿ��-Vx��ÿG�����¾þi�O�KV&S��!��þ<��ÿG�<Yu /Jvxw�.1Õ�/�è�/�.ä{�� �z� /�è � , .�2�.�ªå�-Ô ��� .��L/8�u �z� /�è � , .���Ó8�R9<;7ÕL/�é � ��/�9�ÔP;>,�9KÕL/8�u �z� /�è � , . 1 /�èJ���;�ãÔ ��� .��L/á,�9!Õ�/6�u �J������W�ä�����J�6�~���� K¡m¢T��W£ÑÈ�L$+��$þN���� Ýþ�ÿ���þͬóÛ�°�²H³!®"úý¬!±�³!´g­ó°M«i³K±�®"úýü<­[���"� Ð Ù �����/ÿ������>ÿ¹�©�K���<YAc%��þ�þOß,þ��>ÿ����[���A�����/ÿ�����>ÿH���!� �'��ÿ����������Ýþ�ÿ���þ��/ÿO�2ÿ�þÍ�O�K��¢��!���G�2ÿH���!�fY�c%���'�N�'�N$���� ÿ-$bþAF�þ����O�¹�©�Lþ�����$ $%�¾ÿ��hÿ���þ Õ�/�.�w �"�����>ÿH���!�fYC�U��F�þþOZ�þ��O��ÿH���!����$d�I�#����þx�������¾ÿ��G��� &�¾ÿ�þ<�G� ÿH���!���%���6ÿ����'�g�"�����>ÿH���!�fYu .L5K�£.�w�/�9�Ô�;áÓ �5x�J� ª=ÔK0=Õ�/�é�9�;�ª8���¬6­$¦��.�®��¡J¯�¢ÂáP:��$çx³�± �6�� (¡�¢��x�W£u .L5K�£.�w�/�9�Ô�;áÓ �5 yP�K;z�1ÔK0=Ô ��� .J��/8�J�¬6­$¦��.�®��¡J¯�¢ÂáP:��(��¬x¢Ã���6�� K¡m¢T�x�j£u ,�.�/¦ÕL/�.�w ÕL/�èL/�.|{ � èL/K��:Õ�/�è�/�.��79M/u ��2�.�ª�{zyT�]��Ó�{ ��� Ô!/�. · ;ĹT��� �PÔ���.®� 1 /�èJ����{ Õ�t¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�ÔP;�Õ�/�èM;�/ · ;ù��QÕ�/�èL/�. � ��ÓtÚ�¼��PÔ�� .u

Page 118: Functional Programming Using Calm Light

ä��ÝæüäÝæ èÉé9êtë��Èñ,èÉï}ë�ïPè ñ�ë�ï6é}ðbõPê òÝò�èu;� ��2�.�ª�{�Ó£ÔP;7ÕL/�è�;�/ ·X� ¹Ä����Ó�{���, � ÕW�J� �PÔ�� .T� 1 /�èJ���6{£Ó�Ô�;7Õ�/�èM;�/ · ;ù®�J�Õ�~¼J½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�ÔP;�Õ�/�èM;�/ · ;zÀ � ¹Ä�EÕL/�èL/�. � 1 /�è����tÚ�¼áÕT�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{�Ó£ÔP;7ÕL/�è�;�/ ·X� ¹Ä����Ó�{ 5 9<; � Õj���.�!Ô���.®� 1 /�è�����{�Ó£ÔP;7ÕL/�è�;�/ · ;ĹT���Õ1�~¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�ÔP;�Õ�/�èM;�/ · ;$¼ � ¹Ä�EÕL/�èL/�. � 1 /�è����tÚ�¼áÕT�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{�Ó£ÔP;7ÕL/�è�;�/ ·X� ¹Ä����Ó�{ � 9 � .�Õj���.�!Ô���.®� 1 /�è�����{�Ó£ÔP;7ÕL/�è�;�/ · ;ĹT���Õ1�~¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�ÔP;�Õ�/�èM;�/ · ;$� � ¹Ä�EÕL/�èL/�. � 1 /�è����tÚ�¼áÕT�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{�Ó£ÔP;7ÕL/�è�;�/ ·X� ¹Ä����Ó�{ . 9��79���.W�J� �!ÔJ� .T� 1 /�è����6{£Ó�ÔP;�Õ�/�èM;�/ · ;ù®����Õ�~¼J½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�ÔP;�Õ�/�èM;�/ · ;~� � ¹Ä�EÕL/�èL/�. � 1 /�è����tÚ�¼áÕT�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{�Ó£ÔP;7ÕL/�è�;�/ ·X� ¹Ä����Ó�{���� � è!,%���.�!Ô���.®� 1 /�è�����{�Ó£ÔP;7ÕL/�è�;�/ · ;ĹT���Õ1�~¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�ÔP;�Õ�/�èM;�/ · 9�0 ;z{ � /x�.M;°Áò.!,�Õ�.|»(¹��u Õ�/�èL/�. � 1 /�è�����ÚJ¼>ÕT�RÕ�/�è�/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{�Ó£ÔP;7ÕL/�è�;�/ ·X� ¹Ä����Ó�{«�é�èM;R�� · �!Ô���.(ÁR¶4�!ÔJ� .1ÙK¹®�J� �PÔ���.®� 1 /�è����6{!é;����Õ��¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ é8�u Õ�/�èL/�. � 1 /�è�����ÚJ¼ � ���!é�.�Õ£Õ · �!Ô���.6¹T���ÕT�u Õ�/�èL/�. � ��Ó�Ú�¼ · 9M0 � {�»1/x�.M;´�PÔ�� .1Ù>.!,�Õ�.t�!ÔJ� .zÁx¹uu;� ��2�.�ª�{Ké%�]��Ó�{�� � Õ�����.�!ÔJ� .®� 1 /�è����6{ Õ1��¼�½u Õ�/�èL/�. � 1 /�è�����ÚJ¼òéå����Õ®�RÕL/�è�/�. � ��Ó�ÚJ¼��!ÔJ� .uu;� ��2�.�ª�{KéÃÁÃ����Ó�{ 1 ��è�w��J� �PÔ�� .T� 1 /�èJ���6{!é6Ù%���Õ1��¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ é6Ùê�ÍÕ�/�èL/�. � 1 /�è����oÚ�¼�éÃÁ��J�Õ®�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{Ké%�]��Ó�{�Ó£,�Ô�Õ · �PÔ���.(Áx¹T���.�!Ô���.®� 1 /�è����6{�Õ��¼J½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ÊÓ�,�Ô�Õ � é�. ·.� �J�Ké�.£Õ�Õ · �!ÔJ� .zÁx¹�¶béR¹R�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{zyT�]��Ó�{ ðXñ � 1 /�è����6{ � ���!é�.�Õ£Õ · �!Ô���.6¹T���Õ1�ä¼J½u Õ�/�èL/�. � 1 /�è�����ÚJ¼>ÕT�RÕ�/�è�/�. � ��Ó�Ú�¼t�PÔ�� .uu;� ��2�.�ª�{x�%�]��Ó�{ � w�w ,xv;�J� �PÔ�� .T�u 1 /�è����6{£Ó�,�Ô�Õ � é�. ·.� �J�Ké�.£Õ�Õ · �!ÔJ� .zÁx¹�¶���;6�79�é�Ô�; � .M;�/ · .�¹�¹Ä����Õ�~¼J½u Õ�/�èL/�. � 2�.�ª�ÚJ¼��K;6��9Mé�ÔP; � .M;�/ · �å����.6¹��u Õ�/�èL/�. � 1 /�è�����ÚJ¼ � ���!é�.�Õ£Õ · �!Ô���.6¹T���ÕT�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .zÁu

Page 119: Functional Programming Using Calm Light

òÝò�÷ ï6éPë�ð�èÉê³ï ä��ÝæAï0îñRð6ð/ì¥ðbõ�íºë[ñãì�èbîhë�õ�ë��Èñ,èÉï}ë�ïPè ñ�ë�ï6é}ðbõPê=ï}î%÷@êu;� ��2�.�ª�{x�%�]��Ó�{ ðXñ � 1 /�è����6{ ðXñ ��¼�½u é�è�9!Õ�. · Ó ��5 y3�!;(�~�$¹u;� ��2�.�ª�{zyT�]��Ó�{ · ��, � Õ ��5 9<; � Õ �Ó� 9 � .£Õ ��. 9���9���. � ��� � è!,(¹®�J� �LÔ���.®� 1 /�è����6{zyj���.y��¼�½u é�è�9!Õ�. · Ó ��5x��� ªÂÜ1�P,�, � vxw�.�$Üx¹uu;� ��2�.�ª�{��!;6�79�é�Ô�; � .�;�/ · .6¹Ä����ÓJ{ � / · ;Ĺ®�J� �PÔ�� .T� 1 /�è�����{zy1��¼�½u Õ�/�èL/�. � 2�.�ª�ÚJ¼ · /�éJvò;�/á;:.u �79�/xd��è�9L, � é�.�yt¼�½�é�è�9!Õ�. · Ó �5��� ªÂÜ1�P,�, � vxw�.�Rܹ�¹Ä�u Õ�/�èL/�. � ��Ó�Ú�¼t�PÔ�� .u;� y�¼J½ é�è�9!Õ�. · Ó ��5x��� ªÂÜ�þ£é�Ô�;6ªo�PÔP;�0�9�ª � é�èL/79LÔP;Tܹu �J��6��� � ÆÌ����������ÇxÈ�³�¢Ä¡�� ÉoÊ� z³�¢ÄÈëzþ[V3�M N���ÝÿH�'�>þ ÿ���2ÿÿ���þ@þ<V&S�ÿH ã�O��F�þi� þ�J!��þ<���>þxF�þ<���Ýÿ�þ����NWDS������������� N¢����M� ` ²H°�®"ù�²O±x�����/ÿ������>ÿ¹�©�K�fY

ë�þ��O�!���'F-�����!��þPÿ����2ÿgS��2ÿ�ÿ�þ<��65"V3�2ÿG��������[����ÿ���þ Ó è � , ÕL/�.�w �"�����>ÿH���!�N��V&S��¾þ<V·þ<��ÿG���[K����FN����F� £���PVx�'�ÿH £SLþ�����þ��K�©����Y&CD�§� �!�>ÿM���©���-�O�!���O��þAÿ_þ3W �©��$�5ý�¾þ< ÝþO� ` ��V&S��¾þ<V·þ<��ÿG�2ÿH���!� ���bÿ��þiVN�!��������þEW^þOZ�S����������!�A���ÿ���þ� Ð Ù �©��� ÿ������>ÿH���!���È���Í�K���/þ<Vx���� Q�O��F�þ!� ���K�0þOZ �PV&S��¾þ ` ��ÿ��þ��/þ ÿ�þ�� ÿG�%$%�!���'F-���Ýÿ���S�S�þ����MY�c%��þ< Q����þ[���/þO�¾þ�����������>þ-$þ±ÿ�����/ÿ ÿ��þ±ÿH �S�þ����þ���Ýþ<�&����F�ÿ���þ-�O�!V&S��#�¾þ<��Y�ê!���h�P�£ zþOZ�þ��O��ÿH���!�rþ<����!�[��� �E��þ��M�g�©V}S�� þ<V�þ<�ãÿG�15ÿH���!���O�KV·þ��\�����KVË���<ù�¯��©� �!��þN���0ÿ���þ3������ Ýþ&S������>þ����/þ��+����FA$%�!���'FE�¾þ��!F�ÿ��EV·þ<V&�!�� �þ<����!�G���!�\�I�#�¾þ<�£�M������/ÿ������>ÿ¹�©�K���[WD���¹���M�#�© QF�þAÿ_þ��>ÿ�þ�F-�� ±ÿ��þi�O�!V&S���ÿ_þ<�NM��g�!S�þ<�O�2ÿH�����ã�¹ ��/ÿ_þ<V ` Yµ��\·¹¸ �áÂ\Æ GNÄ<¿<ÄmLxÁA@CBED G&ÃvÂ�Á�Ãf¾�Æ I�ÄmL�ÅfÂ��t@%� �gÂ��&½ëzþ+���� Ýþ[����ÿ���T���/þ��>ÿH���!�A�&�O�KV&S��#�I�����j�������>ÿH���!� ÿG��K�����±ÿ���þx�����/ÿ��O�!�>ÿ��H £��ÿG�MZ�ÿ���þAþ+���U��� Ð êãýzþOZ�S���þ����b�©�K�����FNS�����F���������æ� Ð Ù �O��F�þ!YUc%��þx�O�!V&S��#�'�2ÿH���!�R������þ<V�þ[�'�% Ýþ<�� -����V&S��¾þ!(& ÿ���þ��O��F�þ+���h�&�O�K���/ÿG����ÿ%�'� ��� ÔK/�. ¨& �� ����H�'�����¾þ[�'���O�KV&S��#� þ�FE�!�%���Q�!�<�>þ�����ÿ���ÿ���þÀ�PS�S����!S��H�'�2ÿ�þ��O�KV&S��!��þ<��ÿ%���6ÿ���þÀ�O�����þ<�ãÿ}þ<�£ K�����!��V·þ<��ÿW � /x7` ¨& ÿ���þ&�O��F�þ&�P�d�-�O�!��FK�¾ÿH���!���M�þOZ�S��_þ��������!�A$%�#�#�d��� Wþ²ÿ��þ��O�����þ<�ãÿSþ<�£ K�����!��V·þ<��ÿxW � � Õ�7` �¥þ< L�M�����2ÿ_þ·ÿ���þ�O�!��FK�¾ÿH���!�RS�����ÿ����P��F7���!�<�O�!�GFK������ÿ���ÿ���þ[�������¾þ����R L�M����þx�!��ÿG�L�©��þ�F7�7�/þO�¾þ��>ÿ@ÿ���þx��S�S����!S��H�'�2ÿ_þ��O��F�þ�ÿ��þOZ­þ��O��ÿ�þ}W «�é�èM;$��7` ¨& ÿ���þ3�O��F�þ3������� ��S�S��#�T�<� ÿH���!��$%�#�#�È�L�T�¹�Í���M Ýþ·ÿ��þ·þ<�£ K�����!��V·þ<��ÿ��K� ÿ���þN�/ÿG�!�AW � � Õ�7` �,þOZ�þ��O��ÿ�þ�ÿ���þ�������>ÿH���!�+S�����ÿf�P�­ÿ���þU�PS�S��I�'�<�2ÿ¹�©�K�f�Ýÿ���þ<�SþOZ ��������ÝþFÿ���þ��������>ÿ¹�©�K���M�� ��M����þª����F�ÿ���þª��� Wþ�FPþ<�£ K�����!��V·þ<��ÿW 1 ��è�w�` �Wþ< L�M�����2ÿ_þ@ÿ���þ������!��V�þ<�ãÿ�����F7�K¢����M�#�� !���PS�S��© �ÿ��þ��"�����>ÿH���!���M�� ��M����þ&WD$È���T��N�'���2ÿÿ���þ@ÿ��KS3���ÿ���þ��/ÿG�!� ` ÿ�·ÿ���þ������K��V·þ<�ãÿ%��þO�'Fj����ÿ���þ[��þ<�P�T� ÿ�þ<��$%�¾ÿ�� ÿ���þ � w�w�,v �����/ÿ�����>ÿH���!�f¨& ÿ���þ3�O��F�þ&�������A�����/ÿ��O�!�>ÿH���!������V&S��� ��O�K�����'�/ÿG����� �����#�TFK�������E����£�H����þ&�_þ<S���þ��/þ<��ÿH������ÿ��þx�������>ÿ¹�©�K���M� L�M����þ!(Fÿ���þ�����£�H����þ\�T���O�!V&S��£�/þ�FN���6ÿ���þ��O��F�þ����6ÿ���þ��"�����>ÿH���!�Í�P��F�ÿ���þ��O�����_þ<�ãÿ0þ<�� K�©��!��V·þ<��ÿ�Y

Ç}þ<��þ��'�0ÿ���þ��O�KV&S��#�I�����j�������>ÿH���!�f(u ,�.�/1é�.��t�!ÔJ� .Jy!ÔK0º{ò0 � ;R��/�9�Ô�;u Ó£ÔP;7ÕL/ · ;Ĺ©¼�½ ð/��� ÔK/�. · ;Ĺ ñu;� ç�è�éò;¼�½ ðÕ� / · ;Ĺ ñ

Page 120: Functional Programming Using Calm Light

ä��ÝæÏç�æAï0îñRð6ðXìÀðbõ�í"ë\ñãì ð³ï@î@í0ï0ëPñXñ·ðbõ�èbîÉï ë9ñ ï0î%÷@ê òÝò�ýu;� Ó£ÔP;(� · .Jy�/�.£Õ�/%¶O.�yL/8¶G.�y�0$¹é¼�½u � � Õ����� · �PÔ�� .Jy!Ô!0>.Jy�/�.£Õ�/$¹u ú ð «£é�è�;R�� · �PÔ�� .Jy!Ô!0>.Jy�/8¶[�!Ô���.�yPÔK0¦.Jy�0R¹ ñu;�O� w�w · .(ÁR¶O.Ù(¹ä¼J½�� � Õ���J� · �PÔ���.�y!Ô!0>.zÁx¹u ú ð�1 ��è�w ñ ú · �!ÔJ� .�yPÔK01.1ÙK¹u ú ðÕ� wJw�,v ñu;�O�� Õ · y®¶G.6¹©¼�½ ð Ó£,�Ô Õ · �PÔ�� .Jy!Ô!0>.�¹ ñ �J�¦x¯J�6���6¯�  Æà����dÇÈt¡�¢R����¥6³(¦x�J¡�¯m¢o��¡x�6� ÉoÊ� z³�¢ÄÈÐ �����!���M�aþ<�£ K�����!��V·þ<��ÿ��'����þAþ�F�þ�Fj���R�!�GF�þ<�Pÿ��&V3�M����ÿG�M���Í�L�©�_þ��!F� QF�þO¢���þ�FE L�M����þ��<Y Ð �£ Ì� Ð Ù�þOZ­þ��O��ÿ¹�©�K�$%�#�#�Ü� ÿG����ÿg���Í�&� ÿG�2ÿ�þ�$����£�/þ[�_þ<���'�/ÿ�þ<��S����_ÿ��O�!��ÿG�M�����ÿ����'�È�����!���M�Éþ<�� !�����K��V·þ<�ãÿMYu ,�.�/:9<;f9�/Ky!Ó �5 y�.M;��t{u ,�.�/ � è�Õ�9��y�9�;7ÕL/�é � ��/�9�Ô�;t{ò0 � ;$��/79LÔP;u Ü�À$Üä¼�½���, � Õu � Ü1¼zÜä¼�½ 5 9�; � Õu � Ü1�zÜä¼�½ � 9 � .£Õu � Ü��zÜä¼�½ . 9��79�� .u � Ü�{$Üä¼�½���� � èP,u � Õ�¼J½òé�è�9!Õ�. · Ó �5��� ªÂÜÞ}£;6�K; Ôx�!;�w�é�9 � 9�/79���.(ܹu 9<; � è�w · 0 � ;R��/�9�Ô�;¦Õt¼�½u Ó�,�Ô�Õ � é�. ·.� �J�Ké�.£Õ�Õ ð Ó�,£Ô Õ · � � Õ�,��� � /� · Ù(¹u ��� 1 ��è�w���� � / · Á¹u ��� ðÎ� è£Õ�9x�Jy�9<;7Õ�/£é � ��/79LÔP;áÕ ñ ¹ ñ ¶u �K;6��9Mé�ÔP; � .M;�/ ðXñ ¹�¹u 9<;f9�/Ky�.�;6�%���¡�¢Ã¡���6á3:��K�z�ޢĤ°Ææ¯�çN�Ä��¦�~�6¡�6��É� áx��¯x��³1¥R����:K�J��¥R����� � á�6¯x� �R� ³���§ � <$��§�¡¢�£;KÅ��N�h� <$��§B"�� � ��³J�3¤�¤ �̬¢Ä¤�¡�¥K¯m¢�¨T�4¢Ä� � ¤~$¥�áx��¯x��³1¥R����:K�J��¥R����� � á�6¯x� �R� ³���§ � <$��§�¡¢�£;KÅ��N�h� <$��§B"��*�R¡�¢$³��P¤¤ � ¬x¢Ä¤J¡�¥(¯�¢�¨��Þ¢Ã� � ¤¥$¥�áx��¯x��³1¥R����:K�J��¥R����� � á�6¯x� �R� ³���§ � <$��§�¡¢�£;KÅ��N�h� <$��§B"��|�x¡�¨��1�P¤¤ � ¬x¢Ä¤J¡�¥(¯�¢�¨��Þ¢Ã� � ¤¥$¥�áx��¯x��³1¥R����:K�J��¥R����� � á�6¯x� �R� ³���§ � <$��§�¡¢�£;KÅ��N�h� <$��§B"��*¦R¡�¤J¡����@¤¤§�̬x¢Ã¤�¡�¥K¯�¢J¨T�4¢Ä� � ¤¥$~�áx��¯x��³1¥R����:K�J��¥R����� � á�6¯x� �R� ³���§ � <$��§�¡¢�£;KÅ��N�h� <$��§B"��欥¨x³��x�P¤¤ � ¬x¢Ä¤J¡�¥(¯�¢�¨��Þ¢Ã� � ¤¥$�¤

u ,�.�/�ª�,�Ô � è!,6y!Ó �5 y£.M;���{1é�.L0:9�; 9M/(y!Ó ��5 y£.M;6�%���±R��¯�çJ�x����á3:��K�(�4¢Ä¤°Ææ¯�ç��Ã��¦�~�6¡�6�©¥$�� oÉ¥$�� � á�6¯x�J³¥$�G��:K����¥R����� � áx�6¯� ��� ³���§ � <$��§T¡©�£;KÅJ�4�I� <R�m§B"!� � �J³��P¤¤ � ¬x¢Ä¤J¡�¥(¯�¢�¨��Þ¢Ã� � ¤¥$¥�á�6¯x�J³¥$�G��:K����¥R����� � áx�6¯� ��� ³���§ � <$��§T¡©�£;KÅJ�4�I� <R�m§B"!�*�R¡m¢R³J�3¤¤§�̬x¢Ã¤�¡�¥K¯�¢J¨T�4¢Ä� � ¤¥$~�á�6¯x�J³¥$�G��:K����¥R����� � áx�6¯� ��� ³���§ � <$��§T¡©�£;KÅJ�4�I� <R�m§B"!�|�x¡m¨T���3¤¤§�̬x¢Ã¤�¡�¥K¯�¢J¨T�4¢Ä� � ¤¥$~�á�6¯x�J³¥$���:(����¥R�1�J� � á�6¯� ��� ³���§ª� <R�m§T¡©�*;(Å��4�I�*<R��§�"!�*¦R¡J¤�¡����@¤�¤ ��¬x¢Ä¤J¡�¥(¯�¢�¨��Þ¢Ã� � ¤~$¥�á�6¯x�J³¥$�G��:K����¥R����� � áx�6¯� ��� ³���§ � <$��§T¡©�£;KÅJ�4�I� <R�m§B"!�欥¨³6��3¤¤§�̬x¢Ã¤�¡�¥K¯�¢J¨T�4¢Ä� � ¤¥$N¤Ð ������þOZ���V&S��¾þ!����þ<��þ��'�0ÿ��þ��O��F�þ\���!���H�KV·þ Ð êãý�þOZ�S���þ��������!���<Y

u �PÔ���.�y!Ô!0 · .L5xw�é�.�Õ£Õ�9LÔP; · , .L5�.�é · ÕL/�é�.£è � y!Ô!0Ky£Õ�/�é�9O;6ªdÜ�ÁR��ܹ�¹�¹Ä���ÇûÆÌ¡�¢$�6��¥z³(¦��¡J¯�¢´��¡x�6� É �9« ³�¯��6�¬"@¤

Page 121: Functional Programming Using Calm Light

ò�øÝó ï6éPë�ð�èÉê³ï ä��ÝæAï0îñRð6ð/ì¥ðbõ�íºë[ñãì�èbîhë�õ�ë��Èñ,èÉï}ë�ïPè ñ�ë�ï6é}ðbõPê=ï}î%÷@êu �PÔ���.�y!Ô!0 · .L5xw�é�.�Õ£Õ�9LÔP; · , .L5�.�é · ÕL/�é�.£è � y!Ô!0Ky£Õ�/�é�9O;6ªdÜ�ÀÂÁéÙW��ܹ�¹�¹Ä���ÇûÆÌ¡�¢$�6��¥z³(¦��¡J¯�¢´��¡x�6� É�R� ³J��§ � � ³���§ � <$��§B­¥�®;KÅ��N�h� « ³6¯J�6��"��¯:����Ä��� �®;KÅ��N�h� « ³6¯J�6�-¡¢�¯:����Ä���¤u �PÔ���.�y!Ô!0 · .L5xw�é�.�Õ£Õ�9LÔP; · , .L5�.�é · ÕL/�é�.£è � y!Ô!0Ky£Õ�/�é�9O;6ªdÜ ·>== 5 � 5$¹ ·�·>== 5 � 5$¹©»K¹Ä��ܹ�¹�¹Ä���ÇûÆÌ¡�¢$�6��¥z³(¦��¡J¯�¢´��¡x�6� É�R� ³J��§ �páx�6¯� � <$��§°"@¤§�*;KÅJ�4�I� � ³J��§ �páx�6¯� � <R�m§B"@¤§�*;KÅJ�4�I� « ³6¯J�6��±~�*:��J�����§�*:��J�����¤u �PÔ���.�y!Ô!0 · .L5xw�é�.�Õ£Õ�9LÔP; · , .L5�.�é · ÕL/�é�.£è � y!Ô!0Ky£Õ�/�é�9O;6ªu Ü�À´Á · 9�0t»1/x�.M;dÙ¦.!,�Õ�.¬�ò0�9�¹���Üx¹J¹�¹��J�ÇûÆÌ¡�¢$�6��¥z³(¦��¡J¯�¢´��¡x�6� É�R� ³J��§ � � ³���§ � <$��§B­¥�®;KÅ��N�h� « ³6¯J�6��"��¯:����Ä��� �®;KÅ��N�h� � ³���§ � « ³6¯�����±¥�²6¥(��¢T¦4§²� �9« ³�¯��6��¡�¤ � ��« ³�¯����´³3¤~$¥�*:��������¤

µ��\·>? µ£¶x½h�h·�Å�ÄG L Â�¸��t@%� �UÂ��&½c%��þNV3�M���X�������>ÿH���!� �"�!�SþOZ­þ��O��ÿH�������O�KV&S��#� þ�F Ð êãýòV3�P�����Ýþ��@ÿ��þ3�����!���L��þ<�� K�©��!��V·þ<��ÿi����ÿH�#�0þOZ­þ��O��ÿ¹�©�K����!���¹���<�>þAþ�F�þ�F7Yu ,�.�/1é � ; ·/. .��P, · ÕT¶O.�¹�¹p{u · � �0 �K� � ¸��6¹u é�.�Õ£.�/Ky���èLé�/�vw7.£Õ · ¹Ä�u ,�.�/á/�è � {u /�éJv¦è�ÕP,zyL/�vxw 9�;�ªKy�.L5xw�éC¿Xª�,�Ô � èP,zy�/Jvxw 9�;6ª(y�.�;6�1.u �79�/x � vxw�.!Ó�,�è�Õ� · /ÃÁöb/6ÙK¹©¼�½u , .L/���èLé�Õ{��èLé�Õ�yPÔK0(y�/�vw7. · /ÄÁ¹Ðú���è�é�Õ�yPÔK0KyL/�vw7. · /6Ù(¹ò9<;u w�é�9�;�/(y�ÕL/�é79<;6ªÝÜ ��1 � � vxw7.t�P, è�Õ� � .L/���.�.M;kÜÃ�u w�é�9�;�/(y�/Jvxw7.Jy�ÕJ��7. � . · ��ÔKé�è!,£, · ��è�é�Õ®¶H/ÃÁx¹J¹��u w�é�9�;�/(y�ÕL/�é79<;6ªÝÜòèM;(�ÝÜÃ�u w�é�9�;�/(y�/Jvxw7.Jy�ÕJ��7. � . · ��ÔKé�è!,£, · ��è�é�Õ®¶H/�ÙK¹J¹��u é�è�9KÕ�. · � è�9�, � é�.�Ü ��1 �1/�vwf9<;6ªÄܹu � }£; � Ô � ;z�>Õt¼�½�é�è�9!Õ�. ·.� vxw 9�;�ª�« � ª · Ü4}�; � Ô � ;(�%�æÜ��KÕ6¹J¹á9�;u ,�.�/:Õ�9�ª � è|{�ª�.M;�.�é�è!,�9!Õ�.Jy�/�vw7. · ¿Õª�,£Ô � è!,zyL/�vwf9�;�ªKy£.M;6�%¶H/�è � ¹�9<;u · ���2(� ��� � � ¸ �0 ��o� � ��4P2 5J��� ��4 � ��¹u w�é79<;�/Ky£Õ�/£é79�;�ªÂÜ ��1 � � vxw�. ÔK0°ÜÃ�u w�é79<;�/Ky£Õ�/£é79�;�ª¦Õ®��w�é79<;�/(y�Õ�/£é79<;6ªÝÜ×9!ÕÝÜÃ�u w�é79<;�/KyL/�vw7.�y£Õ���7. � .òÕ�9�ª � è®��w�é79<;�/(yM;7.���,�9�;7. · ¹Ä�u · � Ó�4 5 �K�P�K� � ¸���¹u ,�.�/´�!ÔJ� .|{o�PÔ�� .Jy!Ô!0¦.á9�;u ,�.�/:Õ�/�è�/�.|{t��2�.�ª6{��K;6��9Mé�ÔP; � .M;�/ · ¿Xª�,£Ô � èP,�y!Ó ��5 y£.M;J�R¹Ä����Ó�{6�!ÔJ� .®� 1 /�èJ����{ ðÕñ �>9<;u · ���¹���Ó1} � � � ¸���¹u ,�.�/áé�.£Õ � ,K/t{1/�éJv��x 9�,�.�/�é � .|�£Ô¼ÕL/�.�w:Õ�/�è�/�. �£ÔP;7.T�RÕ�/�è�/�. � 2�.�ªu �79�/x=Ó �5 y3�K;z�~�o¼J½~�É9<;u · �é}�� .���� � � ¸�� � çK�32�4 ��5 � �J��1 �6¹u ª�,�Ô � è!,6y�.�;6�¾�3{>ÕW�J��¿Õª�,�Ô � è!,6y�.�;6�8�u ª�,�Ô � è!,6y�/Jvxwf9<;6ª(y�.M;��C�3{>Õ�9�ª � èW���J¿Õª�,�Ô � è!,6y�/�vwf9<;6ªKy£.M;��8�

Page 122: Functional Programming Using Calm Light

ä��Ýæ*)ãæ�ê º@ê�ï¼»}è,ð î%õ�îh½=ï ë9ñ ï0î%÷@ê ò�ø�òu ª�,�Ô � è!,6y!Ó �5 y£.M;��C�3{×é�.�Õ � ,K/å���J¿Õª�,£Ô � è!,zyPÓ ��5 y�.�;6�%�u · ���2(� ��� � � ¸�2� 1 }�� � �6¹u ·X� èL/K��×é�.�Õ � ,!/u �79�/x=Ó£ÔP;7ÕL/�è�;�/ · ;Ĺ~¼J½éw�é�9�;�/Ky�9<;�/ò;u � Ó£,�Ô Õ � é�. · yT¶4y�¹~¼�½éw�é79<;�/Ky£Õ�/£é79�;�ªÂÜ1ÚL0 � ;6��èP,z½zÜu � yt¼�½ é�è�9KÕ£. · Ó �5��� ª Ü�þ�é�ÔP;�ª¦Õ�/�è�/�. �!ÔP;�079�ª � é�è�/�9�ÔP;�Üx¹J¹��u w�é79<;�/Ky�;7.���,�9<;7. · ¹��J�¥z³�¢ Ææ��¯N���6����dÇÈ�³�¢Ä¡J��ÉdÊ� 6³�¢ÄÈÑÈ�L$+�!�¾þAÿ����%�����R�H�!V·þ@þOZ���V&S��¾þ��<(u®· ��2�.�9�; 9M/79!è!,�9 O 9<;6ªá.M;��79Mé�ÔP; � .M;�/�Õ���¹u ª�,�Ô � è!,6y�.�;6�;�3{�9<;f9M/(y�.�;6�8�u ª�,�Ô � è!,6y�/Jvxwf9<;6ª(y�.M;��;�3{�9�; 9M/(y�/vxw 9�;6ª(y�.<;6�%�u ª�,�Ô � è!,6y!Ó �5 y£.M;��;�={�9�; 9M/KyPÓ ��5 y!.M;��8�u®· ¹��J�ÇûÆ#³�¢Ã¡��tÉ8�9$u é � ; · w7èLé�Õ�.Jy�/�Ô1w°ÜJÁÃ��ܹ��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥"ÇûÆ#³�¢Ã¡��tÉ8�9$u é � ; · w7èLé�Õ�.Jy�/�Ô1w°Ü�À´Á©Ùê��ܹ��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥³ÇûÆ#³�¢Ã¡��tÉ8�9$u é � ; · w7èLé�Õ�.Jy�/�Ô1w°Ü ·@== 0 � ·@== 5 � 0ò5$¹�¹ ·>== 5 � Àò5°Áx¹��ê��Üx¹��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥¾ÇûÆ#³�¢Ã¡��tÉ8�9$ëzþ[V3�M N����$ ����ÿ�����F����>þ�ÿ���þLK ¢�Z�S��P�©��ÿ[�O�!Vx���©��� ÿ��!���!�È�xS���þ�F�þO¢���þ�Fj�������>ÿ¹�©�K� 079�5 Yu1� .�ª�9�;u ª�,�Ô � è!,6y�.M;��;�3{RÜ�0�9M5ÃÜ����G9�; 9M/6y�.�;6�8�u ª�,�Ô � è!,6y�/�vwf9<;6ªKy£.M;��;�={u · ��Ô!é�è!,£, ·(ð Á ñ ¶u � é£é�Ô� · � é�é�Ôx� ·.� vw7.�ç�è�é��z�M;z� .L56{RÁR�Dç�è!, � .1{1}!;6�!;�Ôx�!;(�®¶u � vxw7.Lç�èLé6�z��;(��.�56{$ÁÃ�bç�è!, � .1{1}!;6�!;�Ôx�!;(�6¹�¶u � vw7.�ç�è�é��z�M;z� .L56{RÁR�Hç�è!, � .{�}�;6�!;�Ô�K;��K¹J¹�¹u ���G9�; 9M/KyL/�vwf9�;�ªKy£.M;6�%�u ª�,�Ô � è!,6y!Ó ��5 y£.M;6�å�={u ·Õ� è�/(��´�PÔ�� .Jy!Ô!0 · .L5xw�é�.�Õ£Õ�9�Ô�; · , .�5�.�é · Õ�/£é�.£è � yPÔK0(y�Õ�/�é�9�;6ªu Ü == 0 � ·�·@=�= 5 � 0 ·>==PO � · 5ò5$¹ O ¹�¹ ·>== 5 � 0 ·@==PO � · 5 5R¹ O ¹�¹J¹���ܹ�¹J¹u ��9M/ ð Ó�,£Ô Õ · ÓK¹ ñ ¼J½1Ó£,�Ô�Õ � é�. ·.� ���!é�.£Õ�Õ · ÓK¹Ä¶��K;6��9Mé�ÔP; � .M;�/ ðXñ ¹u � y ¼�½ é�è�9KÕ�. · Ó ��5x�J� ªÂÜmþ�é�Ô�;6ªo�PÔ���.�0�Ô!é>0�9M5ÃÜx¹�¹u ���G9�; 9M/KyPÓ ��5 y�.�;6�

Page 123: Functional Programming Using Calm Light

ò�ø!ø ï6éPë�ð�èÉê³ï ä��Ýæáï0îñRð6ð/ì¥ðbõ�íºë[ñãì�èbîhë�õ�ë��Èñ,èÉï}ë�ïPè ñ�ë�ï6é}ðbõPê=ï}î%÷@êu .�;(�W����x¯N���z�x¤6���t¡�¢1��³��WÆÈ ÅJ¡��m§ � áx��¯x� �Ná$N¤´ÇÈ�á�6¯��³¥$�¿��:K����¥R����� �Ná$~�O¬x¢Ä¤J¡�¥(¯�¢�¨��Þ¢Ã� � ¤¥$È +,x��¥1¢Ã¡�¢�±×ÆÌ��§��~¤���¥K¡J��çx�z�~á��6�J��¥K��tÅ�¡J��§Â�m¢Â³m���j��¥´¦�x�z�ä�(����6��¥o¡�¢°�m§Ä¡x�à�®���J�6��¥1¢�£ÇûÆ#³�¢Ã¡��tÉ8�9$

u é � ; · w7èLé�Õ�.Jy�/�Ô1wu Ü�, .L/>0�è��L/ � . 079�5 ·@=�= 0 � ·@=�= ; � 9�0o{ò;Ý»ò/7.M;ËÁu .!,�Õ�.���; · 0 · ¼�;ûÁ¹�¹u 079J¹�¹���Üx¹Ä���:;�#´�����W��¯�   K�6¦�t¡x�'�R<K³�¨Ãç6��¥´ÇxÈ�<K³�¨Äç���¥!$Ê� 6³�¢Ã¤��x��ÈÇûÆ#³�¢Ã¡��tÉ8�9$u é � ; · w7èLé�Õ�.Jy�/�Ô1wu Ü�, .�/Ê079 � � . 079�5 ·@=�= 0 � ·@=�= ; � 9M0t{ò;ËÁ /x7.�;°Áu .!, Õ£.á9M0d{ò;dÙ1/x�.M;°Áu .!,�Õ�. À · 0 · ¼�;°Á¹�¹ · 0 · ¼ ;ÝÙ(¹�¹u 079u 079�¹J¹���Üx¹��J�:;�#´�����W��¯�   K¡�çt¡�'��<(³�¨Äç���¥´ÇÈ�<K³�¨Ãç6��¥!$Ê� 6³�¢Ã¤��x��ÈÇûÆ#³�¢Ã¡��tÉ8�9$u é � ; · w7èLé�Õ�.Jy�/�Ô1w°Ü<0�è��L/ASê��Üx¹Ä���:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥¾�±�³�¡�±ÇûÆ#³�¢Ã¡��tÉ8�9$u é � ; · w7èLé�Õ�.Jy�/�Ô1w°Ü<079 �Z� ��ܹ��J�:;�#´�����W��¯� d¡��t¡x��<K³�¨Äç���¥³¾ÇûÆ#³�¢Ã¡��tÉ8�9$

C*ÿN�'�-���&�O�!���G�/þRS������������¾þ1Wb����F1F�þ������G�����¾þ ` ÿ��X�©��ÿ�����F����>þ ��þ��O���G�����!�á��  ���b�©���á���HSLþ���#¢����H ���ÿG�!�>ÿH�'��O�!���/ÿ�����>ÿ����HS�þ���'�M�v�©��� ÿ������>ÿH���!�����P��F-�iF�þ�FK�'�<�2ÿ_þ�F-�<�!�/þ@ÿ��Sÿ���þ��O�!V&S��#�#�����&�"�����>ÿH���!�fYÈêÝþAþ&þ ø/Mÿ ���!�Fþ4Øã��¾þ<�ãÿ�O�!V&S��#�'�2ÿH���!�E������þ��O���G�����!�f�7F��2ÿG�x�/ÿ�����>ÿ�����þ��þAÿG��Yõ}ö,û�À3Á�ÂÄÃAû-Å�Æ¿Ç�ÅAÈG±�®"°�²H°<­<®"úý±£¯%°m0�°�²Hü�úT­<°<­�É<¬!² Ê®â£úýümâ�Ê�°ËÊ�¬!±�Ì ®�¯!úÄÍ�°%­<¬!´#ù£®"úý¬!± ­UüG¬!± ­óúT­<®�ú'±x°�±�²Gúýümâ�ú'±�¯�³KüGüO¬!²='!úý±£¯®"¬-Ú�¬!ù�²i®"³P­ó®"°&®Vâ�°�}¼Î!Ï ´#³!±£¯Kù£³�¯K°PÐË}[´_­ó¬3ÑI��ù£úý´ '!úý±£¯N³-­<®"³!±('K³!´#¬!±�°¼}ÒÎ�Ï�ú'±�®"°�² Û�²H°�®"°�²+ú�­x³&¯!¬M¬�'-°m0�°�²Hü�úT­<°iúý±«x¬�'!ù�´#³!²%Û7²b¬O¯!²H³!«x«xú'±�¯�Ð

Page 124: Functional Programming Using Calm Light

U VXWZY?[]\�^ _¬Ó

k i t�Ô yÕuÖt n�b y'× yØuÖv'fht�yØt

ëzþ%���� Ýþg����ÿ����'�U�����S�ÿ�þ<���!��þ%S��£���b�©���¾þ[�H������ÿH���!�+�"�!�Éþ��K����þOZ�þ<�G��'�/þ��O�!��ÿG�M����þ�F\���·ÿ����'��F����O��V�þ<�ãÿ�Y�ehZ­þ<�G��'�/þ������þx��þO�<þ<����þ�F ÿ��N�� �ÿ���þO���[����Vi�Lþ<������F ÿ���þxS����Ýþx$���þ<��þ�ÿ���þ< E���M Ýþx��þAþ<�AS����KS��£�/þ�F7(È�"�!�PþOZ ��V}S�� þ!�%ì ø Y ò �SfY ò�/ í��_þO� þ<�G��ÿ��·ÿ���þ�¢��G� ÿ0þOZ­þ<�O��T� þ[���Í�����S�ÿ�þ<� ø ¨�ÿ����'�0þOZ�þ<�G��'�/þ\�T�d�����<� ÿ�þ�FN�!�QS��P�Ýþ ò�/ YUWSÕP)�å\×S�P�Jc%��þ��"���#���L$d�©���EWb�����K�£ �V&�!��� ` �"�����>ÿH���!���È���� Wþ@ÿ���þ[��þ�JK���©�_þ�F�ÿH �S�þ��<(

ò Y u 0 � ;$��/79LÔP;á0d¼�½ · 0dÙK¹�ÀRÁR���ÇûÆ��4¡m¢Ä�dÇxÈ ¡�¢Ä��$dÇxÈ�¡m¢Ä�tÉtÊ� 6³�¢ÃÈ

ø Y u 0 � ;$��/79LÔP; � ¼�½ · 0 � ;R�L/79LÔP;1;´¼J½�;(À � ÀRÁ¹����ÇûÆÌ¡�¢Ã�dÇxÈ�¡m¢Ä�dÇxÈt¡�¢Ã��ÉdÊ� 6³�¢ÄÈ

ô Y u®· 0 � ;R��/�9�Ô�;10´¼�½ · 0 � ;$��/�9�ÔP; � ¼�½ 0 ·X� À$Áx¹�� ÙK¹J¹��J�ÇûÆ��4¡m¢Ä�dÇxÈ ¡�¢Ä��$dÇxÈ�¡m¢Ä�dÇxÈ�¡m¢Ä�tÉtÊ� z³�¢ÃÈ

UWSÓÍ¢�å\×S�P�Jëzþ[Vx���/ÿ%¢��O�/ÿ���þ<����V�þ v ÿ�� O ���!��ÿG�L�©��������(· 0 � ;$��/79LÔP;á5d¼�½ · 0 � ;R�L/79LÔP; O ¼J½ 56À O ¹�¹����F}¢����M�#�� 7(

· 0 � ;$��/79LÔP;tvd¼�½ · 0 � ;R�L/79LÔP; O ¼J½|v6À O ¹�¹ëò�¾ÿ����!��ÿ���þ<���PVx��������$þ[$%�!���'F-���M Ýþ[�!��ÿG�L�©��þ�F7(· 0 � ;$��/79LÔP;tvd¼�½ · 0 � ;R�L/79LÔP;tvo¼J½|v6Àxv$¹�¹

$����'��ÍF���þ������Ýÿ�F�þ<���Ýÿ_þ ÿ���þ����PV·þ��������>ÿ¹�©�K�fYòMøÝô

Page 125: Functional Programming Using Calm Light

ò�ø�î ï6éPë�ð�èÉê³ï�ä�ÙAæ�ë�õ[ñ)ÚzêFï�ñ èbîhꪺ¯êFï[ïað�ñãêdñUWSVU �å\×S�P�Jëzþx$��H�¾ÿ�þx�H���<�>þ������� ÝþO�� zÿ��þ���þ�F����>ÿH���!� �/ÿ�þ<S��d���!�Pþ��!���þOZ�S���þ�������!���<�f����Fâÿ���þ<�R$bþx���/þ �ª��Vx�����R�!�GF�þ<�@ÿ�����þ����ÿ���þ��_þ��H���¾ÿ�Y& ,�.�/15�{RÁ�À�Ù¦9<; ·J· 0 � ;R�L/79LÔP; v ¼J½|v6ÀK5$¹ 5R¹Ä���· 0 � ;R��/�9�Ô�;�v´¼�½|v�À · Á�À�Ù(¹�¹ · Á�ÀJÙK¹Ä���· 0 � ;R��/�9�Ô�;�v´¼�½|v�À · Á�À�Ù(¹�¹��ê����JÀ · Á�À�Ù(¹��J��JÀ�W����W����ª��Vx�����M ��<(

u ,�.�/15�{RÁ�À�Ù¦9<; ·J· 0 � ;R�L/79LÔP;tvo¼J½|v6ÀK5$¹ 5R¹Ä���ÇûÆÌ¡�¢Ã�tÉZ­

& ,�.�/15�{RÁ�À�Ù¦9<; ·J· 0 � ;R�L/79LÔP;Ê5 ¼J½ 56ÀK5$¹ 5R¹Ä���· 0 � ;R��/�9�Ô�;15´¼�½ 5�ÀK5R¹ · Á�ÀJÙK¹Ä����JÀ�W����W����ª��Vx�����M ��<(

u ,�.�/15�{RÁ�À�Ù¦9<; ·J· 0 � ;R�L/79LÔP;á5o¼J½ 56ÀK5$¹ 5R¹Ä���ÇûÆÌ¡�¢Ã�tÉZ­

& ,�.�/10ÃÁ©{ò0 � ;R��/�9�Ô�;á06Ùo¼�½ · 0 � ;R�L/79�Ô�;á5´¼�½�0�Ù15R¹9<;=, .L/tªt{10 � ;$��/�9�ÔP;×5 ¼J½�56À$Á

9�;=0ÃÁhªdÙê���,�.�/�ªd{10 � ;R�L/79�Ô�;15´¼J½ò5�ÀRÁ9<;á0 � ;R�L/79�Ô�;á06Ùo¼J½ · 0 � ;R�L/79LÔP;á5´¼�½ 06Ù15R¹éªdÙW���· 0 � ;R��/�9�Ô�;10�ÙݼJ½ · 0 � ;$��/79LÔP;á5´¼J½�06Ù15R¹J¹ · 0 � ;$��/79LÔP;á5´¼J½�56À$Áx¹|Ùê�J�· 0 � ;R��/�9�Ô�;15´¼�½ · 0 � ;$��/�9�ÔP;Ê5´¼�½ 56À$Áx¹ 5$¹ ÙW���· 0 � ;R��/�9�Ô�;15´¼�½ 5�ÀRÁx¹�Ùê���ÙJÀRÁR����W����ª��Vx�����M ��<(

u ,�.�/10ÃÁ©{×0 � ;$��/79LÔP;Ê06Ùo¼�½ · 0 � ;$��/�9�ÔP;Ê5´¼�½ 06Ù 5R¹u 9<;=, .L/tªo{ 0 � ;$��/�9�ÔP;×5 ¼J½�56À$Áu 9�;=0ÃÁ�ªºÙê���ÇûÆÌ¡�¢Ã�tÉo³

òWSÕP)�å\×S�UWPcv�3�O�!V&S���ÿ�þ@ÿ��þi�H���H�D�!�>þ����_þ����P�Ü�x�_þ��>ÿG�������¾þi�P��F�ÿ���þ[ !������V·þ+���Ü�x�HS���þ<�_þ!(

Page 126: Functional Programming Using Calm Light

ò�ø/u ,�.�/¦Õ � é£0�è��£.�yLé�.��L/á, .�;t�79���{á, .�;k���79��W�����³1¥� (�6¦����¥$��¦x�°Ææ¡�¢Ã�tÇxÈt¡�¢Ã�tÇxÈt¡m¢Ä��ÉdÊ� 6³�¢ÃÈu ,�.�/~w 9|{oÛ � »�� � è�/�è�;°Á � »ê�J��®¡AÆO 6�6¯J����É�³%£9"�¾�"�Ü�ÝP¡!­�ܳÜ�Ýu ,�.�/���Ô�, �� .Jy�Õ�w�7.Lé�.�éd{oÛ � »Z� � � � »t� � wf9�� � · w�Ô��.Lé1é�� � ¹Ä���¤�¯��³�¨T�1�J�m�6§T��¥$�kÆ� 6�6¯��J�tÇxÈ| 6�6¯��J��ÉtÊ� z³�¢ÃÈ

òWSÓÍ¢�å\×S�UWPCD� �-�<�M�#�*5"�� �5" L�M����þN�'�����!�����Wþ&$%�¾ÿ����!��ÿx�O�!��FK�¾ÿH���!���M�d�O�K���/ÿ������>ÿxWb�P��FQ$d� ÿ���!��ÿi�H��V ÿH �S�þ�� ` ���M�#�US����!�K�G��V3����£ K���� !�����-�x��þ��O���G���� ÝþxF�þO¢����¾ÿH���!�R��þ< Ýþ<�9ÿ_þ<��Vx�����2ÿ�þ!YòWSVU �å\×S�UWPu ,�.�/1é�.�� 0�èJ��/�ÔKé79!è!, ;Ý{ 9�0ò;({$Á /x7.�;°Áò.!,�Õ�. ;$� · 0�è��L/�ÔKé�9KèP, · ;$¼(Á¹�¹��J� K��¦x�J¯�¥K¡J�x�AÆ ¡�¢Ä�dÇÈ�¡�¢Ã��ÉdÊ� z³�¢ÃÈu 0�è��L/�ÔKé�9KèP,�ÞW���ÇûÆÌ¡�¢Ã�tÉÖ"N¡!±u ,�.�/1/�è�9L,zy�é�.�� � é�Õ�9���.�y�0�è��L/�ÔKé�9KèP,X;´{u ,�.�/1é�.���0�è���/1; � {:9M01;z{RÁX/7.M; � .P, Õ£.�0�èJ��/ · ;$¼(Áx¹ · ;R� � ¹u 9<;á0�èJ��/ò;ËÁÃ�J����J¡x�J�¥R�J¦1³1¥z�6¡J¤6��� K��¦x�J¯�¥K¡J�x�°ÆÌ¡m¢Ä�dÇxÈ ¡�¢Ä�tÉdÊ� 6³�¢ÃÈu /�è�9L,zy�é�.�� � é�Õ�9���.�y�0�è��L/�ÔKé�9KèP,-Þê�J�ÇûÆÌ¡�¢Ã�tÉÖ"N¡!±

òWSVò �å\×S�UWPu ,�.�/1é�.�� 079 � Ô�;7è��J��9R;Ý{u 9�0ò;({$Á /7.�;°Áu .P, Õ£.á9M01;({JÙò/x�.M;°Áu .!,�Õ�.�0�9 � ÔP;7èJ����9 · ;$¼(Á¹éÀ1079 � Ô�;7è��J��9 · ;R¼1ÙK¹Ä��� K¡Jç�¯m¢Ä�6¦J¦x¡ûÆ ¡�¢Ä�dÇÈ�¡�¢Ã��ÉdÊ� z³�¢ÃÈu 0�9 � ÔP;7èJ����9éÙJ»ê���ÇûÆÌ¡�¢Ã�tÉZ­�ß3­�Ü

òWSÓQ¢�å\×S�U®Íu ,�.�/o�PÔ � w�Ô Õ£.�0tªd{ò0 � ;R��/�9�Ô�;á5´¼�½�0 · ª · 5R¹�¹Ä���¦x¯m¨�T¯x�(�°Æo��ü �tÇÈAü ç$ºÇxÈ'�6üN¦�ÇxÈAü ��$tÇxÈAüN¦�ÇxÈAü çtÉtÊ� z³�¢ÄÈu ,�.�/o� � é£é�v10d{10 � ;R��/�9�Ô�;á5o¼�½ · 0 � ;$��/�9�ÔP;ºvo¼�½ 0 · 58¶3vR¹�¹Ä���¦1³1¥�¥�ëÆ��6ü � ìCü.çdÇxÈûüN¦�$dÇxÈûü.�dÇxÈûü.çoÇÈAü4¦~ÉdÊ� 6³�¢ÃÈ

Page 127: Functional Programming Using Calm Light

ò�øµ ï6éPë�ð�èÉê³ï�ä�ÙAæ�ë�õ[ñ)ÚzêFï�ñ èbîhꪺ¯êFï[ïað�ñãêdñu ,�.�/ � ;R� � é�éJv10d{10 � ;$��/�9�ÔP; · 5%¶=v$¹º¼J½�0á5tv8���³�¢�¦1³1¥�¥x� Æo��ü �tÇÈAü çtÇÈCüN¦�$tÇÈAü ��ìAü çdÇÈûü4¦�ÉdÊ� 6³�¢ÄÈu1� ;R� � é�éJvo�!Ô � w Ô Õ�.T���ÇûÆ��6ü=�6�dÇxÈËü>�6ç�$tì8�6ü=�(¦tÇxÈûü=�6��$oÇÈûü>�z¦tÇxÈûü=�6çtÉtÊ� 6³�¢ÃÈu �PÔ � w�Ô Õ£.�� � é�éJv � ;$� � é£é�v%���ÇûÆ��6ü=�6�dÇxÈËü>�6çdÇÈûü>�z¦�$dÇxÈûü=�6�dÇxÈËü>�6çdÇÈûü>�z¦ºÉdÊ� z³�¢ÃÈu �PÔ � w�Ô Õ£. � ;$� � é�é�vd� � é£é�v%���ÇûÆ��6ü=�6�tìûü=�6çdÇxÈAü>�z¦�$tÇÈûü>���tìCü=�6çtÇÈAü>�(¦|ÉoÊ� z³�¢ÄÈ

QTSÕP)�å\×S�UÄÿu ,�.�/1é�.��t�!Ô �z� 9�;7.ä{u 0 � ;R�L/79LÔP; ðÕñ ¶ ðÕñ ¼�½ ðÕñu �p· 5ÄÁÄ���b,RÁx¹Ä¶ · 56Ù8�J�H,JÙK¹©¼�½ · 5ÄÁöb56Ù(¹®��� · �PÔ �z� 9�;�. · ,$Áö¹,�ÙK¹J¹u � y�¼J½ é�è�9!Õ�. · � è�9�, � é�.dÜ��!Ô �z� 9<;7.j�N,�9KÕ�/�Õ ÔK0d��9M0�0�.�é�.M;�/×, .M;�ª�/TÜx¹Ä���¦x¯m¨ÄçJ¡�¢T�°Æ�ü.�~�6¡�6�tìûü.çº��¡x���tÇxÈ'�6ü.��ìAü ç�$~�6¡�6�tÉtÊ� 6³�¢ÃÈu �PÔ �6� 9�;�. ·Kð ÁÃ�>Ùê�H� ñ ¶ ð ÜPèzÜÃ��Ü � ÜR��Ü��(Ü ñ ¹���ÇûÆ��4¡m¢Ä�tì~����¥K¡m¢�±&$~�6¡�6�tÉ � "��ÖFm�¿F��*¡©�ÖFÞç¿F��£³)�ÖF�¦¥F�¤u �PÔ �6� 9�;�. ·Kð ÁÃ�>Ùê�H� ñ ¶ ð ÜPèzÜÃ��Ü � Ü ñ ¹Ä���C�¢�¦x�³�±�§Ã�t��­$¦��.�®��¡J¯�¢×ÆED(��¡x�J³¥$�GF�¦¯�¨ÄçJ¡�¢��®Æ#��¡x�6��t¯� ´�J¡� � $��¥$�Þ¢Ä�©�(�4¢�±Ã��§hF

QTSÓÍ¢�å\×S�UÄÿu ,�.�/1é�.��áÕ �J� ,�9KÕ�/�Õ|{u 0 � ;$��/79LÔP; ðXñ ¼�½ ðJðÕñ�ñu � 5å���b,�¼�½Ê, .L/¦Õ!,t{¦Õ �J� ,�9KÕ�/�Õ ,u 9�;ÉÕP,�ú ·Õ� è�w · 0 � ;¼,�¼J½ò5å���b,K¹òÕP,K¹��J���³�çx��¡x�6��AÆ�ü.�º��¡x���tÇxÈAü ����¡x�6�|�6¡x����ÉdÊ� 6³�¢ÄÈu Õ ��� ,�9KÕL/�Õ ðXñ �J�ÇûÆ�ü>�����6¡x���~�6¡�6�tÉ ��� ¤¤u Õ ��� ,�9KÕL/�Õ ð ÁÃ�>Ùê�H� ñ �J�ÇûÆÌ¡�¢Ã���6¡x���~�6¡�6�tÉ ��� ¤ � � ³3¤ � � ¡�¤§� � ¡¢�-³3¤ � � "@¤§� � "��-³3¤ � � "!�£¡�¤ � � "!�£¡©�¯³P¤¤u Õ ��� ,�9KÕL/�Õ ð ÜPèzÜ ñ �J�ÇûÆ#�6��¥K¡m¢�±´��¡x�6����¡x�6� É ��� ¤§� � FÞ�¿F�¤�¤

ÿWSÕP)�å\×S�òÄÿu /Jvxw�. · ÛG讶�Û � ¹ � /�é�.�.|{���.£è�0áÔ!0¾Û �u � «�/£é�.£. ÔK0 · ÛG讶JÛ � ¹A;�Ô���.u è�;(� · ÛOèT¶�Û � ¹X;�ÔJ� . {���4�w��ÛOèT�

Page 128: Functional Programming Using Calm Light

ò�ø�èu 1 ÔP;�Á�� · ÛOèT¶�Û � ¹ � /£é�.£.®�u 1 ÔP;zÙ8� · ÛOèT¶�Û � ¹ � /£é�.£.�ê�J������W�~çJ��¥$���~���� K¡m¢T��W£�����W�à¢Ã¯����º���� (¡�¢T��W£u ,�.�/1é�.���;�ÔJ� .£Õ�y�è�;(�6y!, .£è���.�Õp{u 0 � ;$��/79LÔP;A��.�èL015´¼�½ ·KðXñ ¶ ð 5 ñ ¹u � «£/�é�.�.|��4�w({!58� 1 ÔP;�Á�{ ÕzÁÃ� 1 ÔP;zÙ�{ Õ1Ù���¼J½u , .�/ · ;�ÔJ� .£Õ(Áö¹, .£è���.£Õ(Á¹é{ò;�ÔJ� .£Õ�y�è�;(�6y!, .£è���.�Õ�Õ(Áu èM;(� · ;�ÔJ� .£ÕÙ궹, .£è���.£ÕÙ(¹é{ò;�ÔJ� .£Õ�y�è�;(�6y!, .£è���.�Õ�ÕÙu 9�; · 5;���";�ÔJ� .�ÕzÁ�ú�;�Ô���.�Õ1Ùê¶ã, .�è���.£Õ(Á�ú£, .£è���.£ÕÙ(¹����¢Ä¯J�6�����6�m¢Ä����(���¤��1�ËÆ��6ü.�¥�Âü ç�$�ç���¥R��� ÇxÈAü ���6¡�6��ìAü.ç~�6¡�6��ÉdÊ� 6³�¢ÃÈu ; Ô���.�Õ�y£èM;z�zy!,�.�è���.�Õ · «£/�é�.�.|��4�w({$Ü�À$ÜÃ� 1 ÔP;�Á�{���.�èL0ÂÁÃ� 1 ÔP;(ÙJ{���.�è�0 Ù��(¹��J�ÇûÆ#�6��¥K¡m¢�±´��¡x�6�tìt¡�¢Ã�~�6¡�6��É � F>(¿F�¤ � � "!�£¡�¤

ÿWSÓÍ¢�å\×S�òÄÿu ,�.�/1é�.�� � è�wRy � /�é�.�.�0tªo{10 � ;R�L/79LÔP;u ��.�è�0Ê5 ¼J½���.�èL0 · 0á5$¹u � «£/�é�.£.|��4�w({£Ô1w;� 1 ÔP;�Á�{�Õ(ÁÃ� 1 ÔP;zÙ�{�ÕÙ��u ¼J½©«�/£é�.�. ��4�w({ªáÔ1wå� 1 Ô�;TÁ�{ � è�wRy � /�é�.�.�0tª ÕzÁÃ�u 1 Ô�;(ÙJ{ � è�wRy � /�é�.�.�0tª Õ1Ù��W���¨Ä�N����ç���¥$����Æ��6ü �dÇÈûü ç�$oÇÈ8�6üN¦tÇxÈûü.�$dÇxÈ'�6üN¦!�´ü.�$�çJ��¥$����ÇÈ%��ü �~�´ü ç�$�çJ��¥$���~ÉÊ� z³�¢ÄÈ

ÿWSVU �å\×S�òÄÿëzþN��þAþ�Frÿ��E���� ÝþQ�j�������>ÿ¹�©�K���M�%�©��ÿ�þ<��S��_þAÿG�2ÿH���!�rÿ�� � /�é�.£. F�� ÿG�Q�O�!��� ÿ������>ÿ��!�O�<YRëzþN���/þ 0 WD��þ��¹SfY ª�` ÿ��F�þ<���Ýÿ�þ@ÿ��þ��"�����>ÿH���!�Q�!���¹����'�2ÿ�þ�F�ÿ� ÿ���þ ��.£è�0 WD��þ��HSfY «£/�é�.�.�` F��2ÿG�+�O�!���/ÿ�����>ÿ��!�����!��ÿG�L�©�������·ÿ��þ��"���#���L$d�©����ª��V��vF�þO¢����¾ÿH���!�f(u ,�.�/1é�.�� � /£é�.£.�y�9�/10�ªd{10 � ;R��/�9�Ô�;u ��.�è�0Ê5 ¼J½ 015u � «£/�é�.£.��4�w({£Ô1wå� 1 ÔP;TÁ�{ ÕzÁÃ� 1 ÔP;(ÙJ{ Õ1Ù��u ¼�½|ªáÔ�w ·=� /£é�.�.Jy�9�/ò0tª:Õ(Á¹ ·>� /�é�.£.�y�9M/10tª¦Õ1ÙK¹u �J�ç���¥R�J�1�6¡J�ûÆ���ü �dÇxÈAü ç�$tÇxÈ'��ü4¦�ÇÈCü.çtÇxÈAü.çtÇxÈAü ç�$tÇxÈ'��ü4¦!�Ýü �$tçJ��¥R�J��ÇxÈAü.ç�ÉÊ� z³�¢ÄÈu1� /�é�.�.�y�9M/ · 0 � ;R��/�9�Ô�;15´¼�½ 5$¹u · 0 � ;R��/�9�Ô�;ÂÜ�ÀRÜ~¼�½éw�é�.L079M5ºÀu � yt¼�½ é�è�9KÕ£. · ��è�9L, � é�.dÜÞ}£;6�!;�Ôx�!;áÔ�wTܹ�¹u · «�/£é�.�.ä��4�wz{RÜ�ÀRÜÃ� 1 Ô�;TÁ�{���.£è�0ÂÁR� 1 ÔP;zÙ�{���.�èL0�ÙJ�K¹Ä���ÇûÆÌ¡�¢Ã�tÉo³

Page 129: Functional Programming Using Calm Light

ò�ø÷ ï6éPë�ð�èÉê³ï�ä�ÙAæ�ë�õ[ñ)ÚzêFï�ñ èbîhꪺ¯êFï[ïað�ñãêdñTSÕP)�å\×SOQ$òu /Jvxw�. · ÛG讶�Û � ¹�,�9KÕ�wRy��PÔP;�Õ|{�� �6� /�è � ,�. Ó èLé;�ÛOè®� �z� /�è � , . ÓJ�Ké;�Û � �ê��������W�ä��¡x�Þ���(¦¯�¢$�t�6�� K¡�¢��x�j£u ,�.�/o�£è�é�wd{~w � Ó èLéu è�;(���1�Ké�wd{~w � Ó��!éu è�;(�òéw�,�è���èpwo�d{~w � Ó èLéoÚ�¼©�u è�;(�òéw�,�è���©wo�d{~w � Ó��!éoÚ�¼©�%���¦x��¥¾Æ��6ü.�¥�´ü.ç$��6¡�m���z¦x¯m¢R�dÇÈûü �tÉtÊ� z³�¢ÃȦx��¥¾Æ��6ü.�¥�´ü.ç$��6¡�m���z¦x¯m¢R�dÇÈûü çtÉtÊ� z³�¢ÃÈ¥��Ä�6��¦x�ûÆ��6ü.�¥�´ü.ç$��6¡�m�Ä�(¦x¯m¢R�ºÇxÈAü �ºÇxÈ�³�¢Ã¡���ÉdÊ� 6³�¢ÃÈ¥��Ä�6��¦x�ûÆ��6ü.�¥�´ü.ç$��6¡�m�Ä�(¦x¯m¢R�ºÇxÈAü çºÇxÈ�³�¢Ã¡���ÉdÊ� 6³�¢ÃÈu ,�.�/~wÝ{t��Ó�è�é�{RÁÃ�jÓ��Ké�{K/£é � .1�ê�J�� Æ��4¡m¢Ä�~�äçJ¯�¯��$~��¡x�m�Ä�(¦¯�¢R� É�àxáJ��¥oÉ�"!�©áJ��¥oÉt��¥6³(�Náu éw�,�è���èpw´ÙW���ÇûÆ#³�¢Ã¡��tÉ8�9$u wå���ÇûÆ��4¡m¢Ä�~�äçJ¯�¯��$~��¡x�m�Ä�(¦¯�¢R� É�àxáJ��¥oÉ�¡©�©áJ��¥oÉt��¥6³(�Ná

TSÓÍ¢�å\×SOQ$òu ,�.�/¦ÕL/�è � wRyJ�!Ô � ;�/�.�é {1é�.�0d»W����6�J��¨1���(¦¯x³�¢Ä�6��¥CÆæ¡m¢Ä�©¥$�� ´É©¥R�� x±u ,�.�/¦ÕL/�è � w · ¹~{u ÕL/�è � wRyJ�!Ô � ;�/�.�éA�={´Á©À¾¿ÕL/�è � wRyJ�!Ô � ;�/�.�é8� ¿ÕL/�è � wRyJ�!Ô � ;�/�.�é%����6�J��¨1� Æ̳�¢Ä¡J�tÇxÈt¡m¢Ä��ÉdÊ� 6³�¢ÃÈu ÕL/�è � w · ¹��J�ÇûÆÌ¡�¢Ã�tÉÖ"u ÕL/�è � w · ¹��J�ÇûÆÌ¡�¢Ã�tÉ�¡

TSVU �å\×SOQ$òu ,�.�/¦.L5K��7èM;�ª�.�/É9 � {u ,�.�/��d{ò/ � · 9J¹á9�;t��.���/(y�è£Õ�Õ�9�ªK;á/¼9 / � ·9� ¹�����.��L/Ky£è�Õ�Õ�9�ª!;1/ � �u �J���­$¦Þ§Ã��¢�±���Æ�ü.��¤���¦�tÇxÈt¡�¢Ã�tÇxÈt¡m¢Ä�tÇȺ³�¢Ä¡J��ÉdÊ� z³�¢ÄÈu ,�.�/A� � 9���Ky£Õ!Ô!é�/1/d{u ,�.�/1é�.���� � 9x���=,�Ôä 9~{u 9�0=,�Ô�Ú©f9u /7.�; � .�ª�9�;

Page 130: Functional Programming Using Calm Light

ò�øýu ,�.�/É9|{òé�.L0¦,£Ôu è�;(� � {òé�.L0º 9u è�;(�~wÝ{ò/ � · f9J¹19�;u �f9�,�.A¿O9~ÚA¿ �u ��Ôu �x 9�,�.û¿O9�Ú©f9-âá/ � · ¿G9�¹~Ú1{ � wd�£Ô 9<;R�Lé:9|��ÔP;�.®�u �x 9�,�.û¿ � ½Ê,�Ô�â�wÂÚ{ � / � · ¿ � ¹©�£Ô���.��Lé � ��ÔP;�.®�u 9M0ë¿G9~ÚA¿ � /x�.M;:.L5K���èM;�ª�.�/ë¿O9°¿ �u ��ÔP;�.®�u .L5K���èM;�ª�.�/�f9û¿G9��u � � 9x���=,�Ô · ¿O9�¼dÁx¹Ä�u � � 9x��� · ¿O9�ÀkÁ¹hf9u .�;(�u .!,�Õ�. · ¹u 9<;�� � 9x���º» · ��.J��/KyP, .�;6ª�/1/´¼ÝÁx¹u �J�¨x³�¡6¦møK����¯�¥(��Æ� z��¯��J��¤6�J¦x�dÇxÈ~³�¢Ä¡J��ɺÊ� z³�¢ÄÈu ,�.�/¦è { ð6� Ù � »W��Á � ÞW��Û � »ê� » � »W�©Á�» � »ê�pÁ � » �Îñ ����AÆO z��¯��J��¤���¦��É � ��¡å£/±~��"®£�Ü)�¯¾ê£/±¥��±W£/±~��"�±W£H±¥��"T£/±§�ã¤u � � 9���Ky£Õ!Ô!é�/áè®���ÇûÆ#³�¢Ã¡��tÉ8�9$u èT���ÇûÆO z��¯��J��¤���¦��É � �/±j£/±~��"®£H±¥��"T£äÜ)�®¡;£/±~�-¾%£/±~��"�±j£/±§�ã¤

6WSÕP)�å\×SOQ~6u ,�.�/1é�.�� 079<;(�6y�Õ � ���£.�.��0d{ò0 � ;R�L/79�Ô�;u ðXñ ¼J½�é�è�9KÕ£. · ��è�9�, � é�.dÜ�0�9�;(�6y�Õ � ���£.�.1�RÜx¹u � 5å���H,t¼�½ /�éJv10á58�Q5��79�/xÂy�¼J½ò0�9�;z�zy�Õ � �J��.�.1� 0=,u �J� K¡m¢Ä�����³z¦�¦J���x�°Æ��6ü.�tÇxÈAü ç�$tÇxÈAü.�º��¡x���tÇxÈAü � ÉoÊ� z³�¢ÄÈu ,�.�/~z�t{×0 � ;$��/79LÔP; ðÕñ ¼�½ é�è�9KÕ£. · ��è�9L, � é�.dÜP. � w�/�vÄܹ � 5å���H,t¼�½ 58�J�§Ä�AÆ�ü.���6¡x���tÇxÈAü.��ÉdÊ� z³�¢ÄÈu 0�9�;z�zy�Õ � �J��.�.1��z� ð�ðÕñ � ðXñ � ð ÁÃ�>Ù ñ � ð �W��Û ñJñ �J�ÇûÆÌ¡�¢Ã���6¡x����É � "��*¡�¤

6WSÓÍ¢�å\×SOQ~6u ,�.�/1é�.�� � è�wRy£Õ � �J��.£.��0o{10 � ;R�L/79LÔP;u ðXñ ¼J½ ðÕñu � ,����/d¼�½ /�éJv · 0�ĹT��� ·Õ� è�wRy£Õ � �J��.£.��01/R¹u �79�/x´yt¼�½ � è�wRy£Õ � �J��.£.�ò0á/8�J�

Page 131: Functional Programming Using Calm Light

ò$ôÝó ï6éPë�ð�èÉê³ï�ä�ÙAæ�ë�õ[ñ)ÚzêFï�ñ èbîhꪺ¯êFï[ïað�ñãêdñ¨Ä�N���J��³(¦J¦��J�x�°Æo��ü �dÇxÈËü ç$dÇÈûü ���6¡�6�tÇÈAü ç~��¡x�6�tÉtÊ� z³�¢ÄÈu�� è�w$y�Õ � ���£.�.�é(� ðJðÕñ � ð Á ñ � ð Ùê�ä� ñ � ð Û%�HÞê�ä� ñJñ ���ÇûÆÌ¡�¢Ã���6¡x����É � "��*¡©�-¾3¤

JWSÕP)�å\×S�ÿÄUc%��þ�¢��G� ÿU�"�����>ÿH���!�RW �!Ô1w�v�` ÿ���� ÿª$þ[F�þO¢���þ��!���H��V�þ��³ÿ���2ÿg� ÿO�ª�P���!��V·þ<��ÿG�%����þ���þ��HSLþ��>ÿH�� ÝþO�� �ÿ���þ�����S���ÿ[����Fÿ���þ[�!��ÿS���ÿ������P����þO� Y%c%��þ< Q���_þ��!���H��V·þ�F�ÿ�&��þ��M����þ��KF� -�!S�þ<��þ�F7Yu ,�.�/o�PÔ1w�v 9<;R��=Ô � /K���{u · �á9�;$��:è�;(�áÔ � /K��¼è�é�.áÕ � w�w Ô Õ£.��/�Ô � .ÊÔ1w�.M;�.����7èM;£;7.P, Õ|�6¹u /£é�v · �>èJ��/ � è!,t�!Ô1w�v79<;6ªo��¹u �f9�,�.�/�é � .u �£Ô>Ô � /w � /(y���7è�éÊÔ � /K�� · 9<;�w � /KyJ��7èLé:9�;$��ùu �£ÔP;7.u �79�/x��K;z�zyPÔK0KyL079L, .|¼�½ · � � ÔKé � è!, /�.�é � 9<;7è�/�9�Ô�;´�6¹u é�è�9!Õ�.��!;(�zyPÔK0(y�079L, .u � Õ�v�Õ�yJy 1 v�Õ�y£.�é�é�ÔKé � Õ�ªo¼�½ · � �x� ; ÔKé � è!, /�.�é � 9<;7è�/�9�Ô�;o��¹u w�é�.Lé�éKy£.M;z��,�9<;7. � Õ�ª8�u é�è�9!Õ�. · � è�9L, � é�.dÜ���wTܹu � y�¼J½ · �©}�;6�!;�Ô�¦.�5(��.�w�/79LÔP;;¶ � è�v � .á9�;�/�.�é£é � w�/79LÔP;~å~��¹u w�é�.Lé�éKy£.M;z��,�9<;7.ºÜÞ}£;6�K; Ôx�!;:.�é£é�ÔKé �xf9L, .��PÔ1w�v79�;�ªÄÜR�u é�è�9!Õ�. · � è�9L, � é�.dÜ���wTܹu �J�¦x¯N�K�ëÆæ¡m¢R�(¦4§Ä�m¢�¢T���dÇxÈ ¯x³6��(¦4§Ä��¢J¢T���tÇȺ³�¢Ä¡J��ÉdÊ� z³�¢ÄÈc%��þN��þOZ­ÿ��������>ÿH���!���KS�þ<���x�����P����þO�T�N�O�!����þ��>ÿ�þ�F ÿ�-�¾ÿG�\¢��¾þ<����V·þÍ�P���!��V·þ<��ÿG�<������F �<�M�#�'� �PÔ1w6v �!� ÿ���þ��/þ���������þO�'�<Y�c%��þx�!F� L�P�ãÿG�P�Ýþ����UFK�� !�'FK������ÿ��þi�O��F�þ�����ÿ���ÿb$%�+�"�����>ÿH���!���È�'�Pÿ����2ÿ �!Ô�w6v S�þ<�H�"�!��V3�}ÿ���þx�!�>ÿ����M�$%�!��7������F��<�P����þN��þ<���/þ�FX��� FK�#ßÀþ<�_þ<�ãÿ3�PS�S��I�'�<�2ÿ¹�©�K���<�U$È���I�¾þ ÿ���þ3����¾þ-��� ��w �'�xV}�!��þAì<�!F�Vx�����'�/ÿ��G� ÿH�� Ýþ�í���hÿ���þÍ�/þ<��� þ�ÿ����2ÿ�� ÿ-F���þ��N���Ýÿ�������������ÿN�!SLþ<���©��� �P��F ����£������� ���������þO�'�-����F�S��H����ÿH������S��£�������� þ�þ<�����!�V·þ�������Ýþ��<Yu ,�.�/o��w=0ÄÁX0�Ù�{u · ��4�w�.M;f9<;6ªo��7è�;�;7.P, ÕT¶-0ÄÁX0�9Mé�Õ�/8¶ã/x7.�;=06Ù���¹u ,�.�/:9<;R���{u /£é�váÔ�w7.M;$y�9<;á0ÄÁu ��9M/x¼Õ�v�ÕJy�y 1 v�ÕJy�.Lé�é�Ô!é � Õ�ª´¼�½u w�é�.Lé�é(y�.M;z��,�9�;7. · 0ÃÁ���Ü��ÐÜ�� � Õ�ªR¹Ä�u é�è�9!Õ�. · � è�9�, � é�.dÜ���w�Üx¹u � y�¼J½©w�é�.Lé�é(y�.M;z��,�9�;7. · Ü4}�;��K;�Ô�K;=.�5(��.�w�/79LÔP;t�f9�,�. Ô1w�.M; 9�;6ª Ü��M0ÃÁx¹Ä�u é�è�9!Õ�. · � è�9�, � é�.dÜ���w�Üx¹u 9<;u ,�.�/áÔ � /K��d{u /£é�váÔ�w7.M;$y!Ô � /10�Ùu ��9M/x¼Õ�v�ÕJy�y 1 v�ÕJy�.Lé�é�Ô!é � Õ�ª´¼�½

Page 132: Functional Programming Using Calm Light

ò$ô�òu �!,�Ô�Õ�.Jy�9�;¼9�;$��å�u w�é�.Lé�é(y�.M;z��,�9�;7. · 0�Ù!��Ü��ÐÜ�� � Õ�ªR¹Ä�u é�è�9!Õ�. · � è�9�, � é�.dÜ���w�Üx¹u � y�¼J½t�!,�Ô�Õ�.Jy�9�;¼9�;$��å�u w�é�.Lé�é(y�.M;z��,�9�;7. · Ü4}�;��K;�Ô�K;=.�5(��.�w�/79LÔP;t�f9�,�. Ô1w�.M; 9�;6ª Ü��M0�ÙK¹Ä�u é�è�9!Õ�. · � è�9�, � é�.dÜ���w�Üx¹u 9<; · �ÊÓ�Ô�w6v�9�;6ª=èM;(� /x7.�;´�!,£Ô Õ�9�;6ªd�6¹u /�éJv �PÔ1w�v:9�;$��=Ô � /K��u �79�/xA�!;(�zyPÔK0(y�079L, .�¼J½��!,£Ô Õ£.�y�9<;É9�;$��å�æ�!,£Ô Õ�.Jy!Ô � /áÔ � /K��u · ���!,£Ô Õ�.Jy!Ô � /10�, � Õ�7.£Õ��6¹u � .L5K�t¼�½t�!,£Ô Õ£.�y�9<;:9<;R��;�æ�P,�Ô Õ£.�yPÔ � /×Ô � /(��å�-é�è�9KÕ�.Ê.�5K�u �J�¦ � Æ#����¥(¡�¢�±kÇxÈ��6��¥K¡�¢J±°ÇxÈ�³�¢Ä¡�� ÉoÊ� z³�¢ÄÈý¥þAÿ����}ÿ���  ��w (u ��w°Ü��£.�/(���w�è�Õ£Õ��6�$Ü�Ü��L/ � w¥��0�Ô�Ô$ÜÃ���ÇûÆ#³�¢Ã¡��tÉ8�9$u ��w°Ü��L/ � w¥��0�Ô�Ô$Ü�Ü��L0�Ô�Ô$ÜÃ�J�æ  (¯�¯jÆ æ  (¯�¯WÆ � ��¥�¨Ä¡���6¡J¯�¢Â���ޢá6�x�C�¢�¦x�³�±�§Ã�t��­$¦��.�®��¡J¯�¢×ÆED(��¡x�J³¥$�GF�¦.�ËFc%��þÈ�'�!�/ÿ³þOZ���V&S��¾þ��D�M�#�¾þ�FN��þ��<�����/þ[�+��þ<�!���'���%���/þ<�Ü�T�d���Ýÿª�M�#����$þ�F·ÿ��+$��H�¾ÿ�þ[�2ÿ³ÿ��þ������ÝÿU���,ÿ���þÈ¢��¾þ��H ��/ÿ�þ<VQYJWSÓÍ¢�å\×S�ÿÄUÐ ������ÿ���þ�S���þ< K���!���FþOZ­þ<�G��'�/þ!� ÿ���þ��"�����>ÿH���!� �!Ô � ;�/ SLþ<�H�"�!��V3�Fÿ���þ[�!�>ÿ����M�f�O�!����ÿH������Y�C^ÿ%$%�!������!�-���}�©��S���ÿ���������þO�h����Fj��þAÿ�����������S��M���������©��ÿ�þ<�Ýþ<�O�<Yu ,�.�/o�PÔ � ;�/:9<;R��Ý{u ,�.�/´���è�é�Õ|{1é�.�0º»u è�;(�á,�9<;7.£Õ|{1é�.�0º» 9<;u /£é�vu �f9�,�.�/�é � . ��Ôu , .L/o� {:9�;�w � /(y����è�é=9�;$��É9<;u ��7è�é�ÕA�={C¿.��7èLé�Õ|ÀÂÁR�u 9�0 � {Xç = ;hç-/7.�;=,�9<;7.�ÕË�={¾¿H,�9�;7.£Õ|ÀÂÁ .!,�Õ�. · ¹u �£ÔP;7.T�u · ¿ ���è�é�Õ®¶t¿b,�9�;�.�Õ�¹u ��9M/Ö�!;(�6y!ÔK0(y�0�9�, .|¼�½ · ¿ ���è�é�Õ®¶ ¿H,�9<;7.£Õ6¹u �J�¦x¯³�¢Ã�ûÆæ¡�¢R�z¦Þ§Ã��¢�¢��1�ºÇxÈt¡�¢Ã��ìt¡�¢Ã��ɺÊ� z³�¢ÄÈc%��þ��"�����>ÿH���!� �K� �!S�þ<�����&���������þO���!�j� ÿO�g¢��¾þ<����V·þi�P���!��V·þ<��ÿ����<�M�#�'� �PÔ � ;�/ ����FNS��¹�©��ÿG�}ÿ���þ[��þ��H���¾ÿ�Yu ,�.�/��(� 0o{u ,�.�/É9�;$��d{

Page 133: Functional Programming Using Calm Light

ò$ô!ø ï6éPë�ð�èÉê³ï�ä�ÙAæ�ë�õ[ñ)ÚzêFï�ñ èbîhꪺ¯êFï[ïað�ñãêdñu /�é�v×Ô1w7.�;Ry�9�;á0u �79M/:Õ�v�Õ�yJy 1 v�Õ�y£.�é�é�ÔKé � Õ�ª ¼J½u w�é�.Lé�é(y�.M;z��,�9�;7. · 0~�6ÜÄ�ÐÜ�� � Õ�ª$¹��u é�è�9!Õ�. · � è�9�, � é�.dÜm�K�zÜx¹u � y�¼J½©w�é�.Lé�é(y�.M;z��,�9�;7. · Ü4}�;��K;�Ô�K;=.�5(��.�w�/79LÔP;t�f9�,�. Ô1w�.M; 9�;6ª Ü��M0$¹��u é�è�9!Õ�. · � è�9�, � é�.dÜm�K�zÜx¹u 9<;=, .L/ · ���è�é�ÕT¶�,�9�;7.£Õ6¹p{��!Ô � ;�/ 9<;R��u 9�; w�é79�;�/Ky�9�;�/d��7èLé�ÕT�u w�é79�;�/Ky£Õ�/�é�9�;�ªÂÜä���è�é�è���/�.�é�Õ®¶pÜR�u w�é79�;�/Ky�9�;�/×,�9�;�.�ÕT�u w�é79�;�/Ky£Õ�/�é�9�;�ªÂÜ ,�9<;7.£Õ � = ;TÜu �J�Å6¦ûÆ#����¥(¡�¢�±kÇxÈ�³�¢Ã¡���ÉdÊ� 6³�¢ÃÈ�U�!����ÿH����� ��.L/K���w7è£Õ�Õ���� �P�© Wþ��<(u �(�dÜ��£.�/(���w�è�Õ£Õ��6�$ÜÃ�J�"�­�­3¡�¾d¦Þ§Ã��¥K��¦x����¥z�&�*¡!±�³��6¡m¢T���%£ÇûÆ#³�¢Ã¡��tÉ8�9$

P�èWSÕP)�;\�S]$ÿý¥þAÿ����È��þ��<�M�#�Éÿ��þ�F�þO¢���� ÿ¹�©�K�������Kÿ��þ@ÿb �S�þ /�Ôx��.�; �P��F-���Éÿ��þ[�¾þOZ£�'�<�M�U�����M�� �ÌAþ<��(u /Jvxw�.�/�Ô��.M;�{u ���x} 1 ��5 � � } 1¾�O� � 5 � 1¾�E. �Lç � ��� � 2 � 2� � 2u;� � ��� Ô!0 9<;�/%��������W�~�J¯�øÃ�Þ¢Â���� K¡m¢T��W£u®· � 1 w�è��£.�Õ���¹u ,�.�/1é�.��áÕ�w�è��£.�Õ|{10 � ;R�L/79�Ô�;u ð Ú�ÛçAç � ç = /éç � ç = ;hç��QÕ�w�è��£.�Õ�yt½ ñ ¼�½ · ¹u;��ð Ú�½ ñ ¼�½ · ¹��J��m�T�6¦J�1�AÆЦާÃ��¥�����¥$�x��¨kÇxÈ�³�¢Ã¡���ÉdÊ� 6³�¢ÃÈu®· ���M;�/�.�ª�.�é�Õ��6¹u ,�.�/:9<;�/(y!ÔK0(y��9�ª79�/t{ò0 � ;R�L/79LÔP;u ç>»ªç �J� ç � çQè�Õt�t¼�½ · 9�;�/(y!Ô!0Ky���7èLé���¹º¼ · 9�;�/(y!Ô!0Ky���7èLé%ç>»ªçm¹u;� y�¼J½ é�è�9!Õ�. · � è�9�, � é�.dÜO;�Ô!/¦è ��9�ª�9M/ÃÜx¹��J�¡�¢Ã�x��¯� z����¡m±Ä¡��°ÆЦާÃ��¥´ÇÈ�¡m¢Ä��ÉdÊ� z³�¢ÃÈu ,�.�/1é�.��=9�;�/�.�ª�.�é ;d{10 � ;$��/�9�ÔP;u ð Ú�ÛAç.»ªç ��� ç � çÍè�Õ��T� · 9�;�/�.�ª�.�é · Á�»6�M;dÀ:9�;�/KyPÔK0Ky1��9�ª79M/t�6¹J¹ é´½ ñ ¼�½ éu;��ð Ú�½ ñ ¼�½�;;���¡�¢Ã�6�4±T��¥ Æà¡m¢Ä�tÇÈd¦Þ§Ä��¥��6��¥R���¨°ÇÈ�¡m¢Ä��ÉdÊ� z³�¢ÃÈu®· � � �.Ê, .�5�9x�£è!,>è�;7è!,v O .�éo��¹u ,�.�/1é�.��Ê, .L5�.Lé¦Õ { � èL/K��ÉÕ©��9M/

Page 134: Functional Programming Using Calm Light

ò$ôÝôu ð Ú�Ûç · ç��ÍÕ�w7èJ��.£Õ�yt½ ñ ¼�½ ð ÚûÛ��� � 2%�Q, .L5�.�é=Õ�½ ñu;��ð Ú�ÛçÞ¹¿ç��ÍÕ�w7èJ��.£Õ�yt½ ñ ¼�½ ð ÚûÛ�2� � 2%�Q, .L5�.�é=Õ�½ ñu;��ð Ú�Ûç>Àªç��ÍÕ�w7èJ��.£Õ�yt½ ñ ¼�½ ð ÚûÛ���} 1 �Q, .L5�.�é=Õ�½ ñu;��ð Ú�ÛçN¼©ç��ÍÕ�w7èJ��.£Õ�yt½ ñ ¼�½ ð ÚûÛ 5 � � } 1 �Q,�.�5�.Lé¦Õt½ ñu;��ð Ú�ÛçN�©ç��ÍÕ�w7èJ��.£Õ�yt½ ñ ¼�½ ð ÚûÛ � � 5 � 1 �Q,�.�5�.Lé¦Õt½ ñu;��ð Ú�Ûç9�©ç��ÍÕ�w7èJ��.£Õ�yt½ ñ ¼�½ ð ÚûÛ . �Lç8�Q,�.�5�.�é¦Õt½ ñu;��ð Ú�Ûç>»ªç �J� ç � çRè£Õ��®� · 9<;�/�.�ª�.Lé · 9<;�/(y!ÔK0(y��9�ª79�/���¹�¹X;å�AÕ�w7èJ��.£Õ�yt½ ñu ¼J½ ð ÚûÛ4� �J� ;;�Í,�.�5�.Lé¦Õ�½ ñ ����(��­R��¥¾ÆЦާÄ��¥��6��¥R���¨°ÇÈ��J¯�øÃ�Þ¢´����¥R���¨ÂÉdÊ� z³�¢ÃÈc%��þ[S����O�/þ<�����!�ÿ��þi����V�þ��H����S�þ��K�ÿ���þ[�!�G�PV&V3����(u ,�.�/1é�.��á.�5w�ét{10 � ;R�L/79LÔP;u ð Ú�Û4� ��� ;½ ñ ¼J½ ;u;��ð Ú�Û����x} 1 �R.�5w�é:.(ÁR�R.�5w�é¦.1Ùo½ ñ ¼J½>.zÁ�À�.Ùu;��ð Ú�Û 5 � � } 1 �R.L5xw�é¦.(ÁR�X.L5xw�é¦.Ùo½ ñ ¼�½á.(Á�¼�.Ùu;��ð Ú�Û � � 5 � 1 �R.L5xw�é¦.(ÁR�X.L5xw�é¦.Ùo½ ñ ¼�½á.(Á���.Ùu;��ð Ú�Û . ��ç8�Í.�5xw�é:.(ÁÃ�Í.�5xw�é¦.Ùo½ ñ ¼J½1.(Á3��.1Ùê�����­��R¥¾Ææ�J¯�øÄ�4¢´�6��¥R���¨°ÇÈ�¡m¢Ä��ÉdÊ� z³�¢ÃÈu .L5xw�é · ,�.�5�.Lé · ÕL/�é�.�è � y!Ô!0Ky�ÕL/�é�9�;6ªÝÜ�ÁJÜx¹J¹����ÇûÆÌ¡�¢Ã�tÉÖ"u .L5xw�é · ,�.�5�.Lé · ÕL/�é�.�è � y!Ô!0Ky�ÕL/�é�9�;6ªÝÜ�ÀÝÁ � Ù�ÛÄܹ�¹Ä���ÇûÆÌ¡�¢Ã�tÉZÝ

P�èWSÓÍ¢�;\�S])c%��þ-�!���� ���þ<$ �������>ÿ¹�©�K�%ÿ����2ÿx$þ-��þAþ�F �'�N�E�"�����>ÿH���!�%ÿG�P!�������!�}�����!��V·þ<��ÿ&�A������G�!�>ÿ�þ<�N�/ÿ���þ���VE�U����F��þAÿ�������©����ÿ���þ�¢��G� ÿ%�'F�þ<�ãÿH�#¢�þ<�[���aÿ����2ÿ��/ÿ��þ���VQY�C^ÿ��O�!���'F-��þ+$��H�¾ÿ�ÿ�þ<�Q�K�<(u ,�.�/:9�� .�;�/Ky ��� 0t{ � è���.�y£Õ�/�é�9�;�ª�SXç�çJ���¡����Þ¢Ã�x�6ç³ ¾Æ��6��¥(¡�¢J±ÂÉ8F Fu ,�.�/1é�.��=9���.M;�/á, .�;d{10 � ;$��/�9�ÔP;u ð Ú�ÛAçOè©ç ��� ç O ç � ç � ç �J� çäêªç-è�Õt�T�u · 9�0¦,�.M;´½1{ASò/x�.M; 9���.M;�/×, .M;u .P, Õ�. � .�ª�9�;u Õ�.L/Ky�;�/x$y���7è�é=9���.M;�/Ky �J� 0á,�.M;Â�®�u 9���.M;�/ · Õ � ���Ê,�.M;Ĺu .M;(�(¹1Õ�½ ñ ¼�½áÕu;��ð Ú�½ ñ ¼�½ÊÕ ��� y�ÕL/�é79<;6ª:9�� .�;�/Ky ��� 0�»á, .�;;�J�¡����Þ¢Ã�ûÆæ¡�¢Ä�ºÇxÈd¦Þ§Ã��¥�����¥R���¨°ÇÈ��6��¥(¡�¢J±ÂÉdÊ� z³�¢ÄÈc%��þÈ�¾þOZ£�'�<�M�h�P���M�� £ÌAþ<�%$%�#�#�7¢��G�/ÿÿ��� �ÿ��+��þ��O�!�!����ÌAþ[���ã�L�©S����P��þAÿH�'��������G�K�>ÿ�þ<�Ië��Wÿ���þ<�3S���ÿQë�� ÿUS������¾ÿH���!� ó ���9���.M;�/Ky �J� 0 �M����F[�<�M�#� 9���.M;�/�Á �!�@ÿ��þ���þ��/ÿf����ÿ���þU������G�!�>ÿ_þ<���/ÿ���þ��PVQY Ð ��S������LþAÿH�'��������G�!�>ÿ�þ<�O��þ<���O�K���ãÿ�þ<�_þ�F$%�#�#�h�Lþi�/ÿ�!��þ�F��©� ÿ���þi� ÿ��H�����&����ß,þ<� 9���.M;�/Ky �J� 0 �K��S�ÿ���ÿ���þ ÷ ÿ��fYW7����_ÿ���þ<���M��S������LþAÿH�'�i������G�K�>ÿ�þ<�G�g$%�#�#�h�Lþ�HK��S�S�þ�F7Y�7v�����M�#�� !���&�¹�����/ÿ��H�����N���Éÿ���þ+����ßÀþ<�È$%�#�I����þ+��þAÿ�������þ�F-�K�%��þ��H���¾ÿ�Y

Page 135: Functional Programming Using Calm Light

ò$ô�î ï6éPë�ð�èÉê³ï�ä�ÙAæ%ë�õ[ñ)ÚzêFï�ñ èbîhꪺ¯êFï[ïað�ñãêdñu ,�.�/¦Õ {¦Õ�/£é�.£è � yPÔK0(y�Õ�/£é79<;6ªdÜ�/�ÔK/�ÔkÁJÜÃ�J�� Ææ¦Þ§Ã��¥o�6��¥R���¨ÂÉdÊx�Jçx����¥KÈu 9�� .�;�/t»¦Õ®�J�ÇûÆ#�6��¥K¡m¢�±ÂÉ8Fm�J¯��J¯¿Fu®· ����.L/ � Õ1Õ£.�.|�x�è�/1é�. � è�9�;�Õá9�;=/x�.1Õ�/£é�.£è � ��¹u�� è�/(��:Õ|�79�/x ð ÚûÛ4��½ ñ ¼J½��®�J�ÇûÆæ¦Þ§Ã��¥´ÉÕìAìu ,�.�/¦Õ {¦Õ�/£é�.£è � yPÔK0(y�Õ�/£é79<;6ªdÜ@��ÔP;�ªK���.M;�/79M0�9K.Lé´ÜR���� Ææ¦Þ§Ã��¥o�6��¥R���¨ÂÉdÊx�Jçx����¥KÈu 9�� .�;�/t»¦Õ®�J�ÇûÆ#�6��¥K¡m¢�±ÂÉ8FH#(¯�¢J±¥í6���Þ¢IFu�� è�/(��:Õ|�79�/x ð ÚûÛ4��½ ñ ¼J½��®�J�ÇûÆæ¦Þ§Ã��¥´ÉÕìAì

cd��þiF�þO¢����¾ÿH���!���[�P�³ÿ���þx��þ<$ /�Ô��.M; ÿb �S�þx����FE���³ÿ���þ\� þOZ��'�<�M�d�P���M�� £ÌAþ<���'�Pÿ��H�� K�'�M�D�f����F-$þ&�H���M�#���!Vx�¾ÿÿ���þ<VQY Ð �b�I���!��ÿH�� QV}�!��þi�O�KV&S��¾þOZQ�¾þOZ£�'�<�M�U�����M�� �ÌAþ<�[��þ��O�!�!����ÌO�����N�'F�þ<�ãÿ¹�I¢�þ<�O�xW"����$þ<�G�<�!�/þ[�!����  ` �'������ Ýþ<�j����/þ��>ÿH���!� ò�ø Y ø Y ò ����ÿ���T�ÈS�����ÿMYPÄPÄSÕP)�;\�S�6ÄU· � � è�9�; � � ,º��¹, .L/o���è�é�Õ�{t�!Ô � ;�/�.�éKyJyM;�.��t»W���, .L/á,�9<;7.£Õ�{t�!Ô � ;�/�.�éKyJyM;�.��t»W���

, .L/o�!Ô � ;�/Ky�0�9�,�.�079L, .M;�è � .|{, .L/:9�;$y����èM;d{áÔ�w7.M;$y�9<;á079L, .M;�è � .19<;/�éJv�x 9�, . /�é � . ��Ô, .�/d��{:9<;�w � /KyJ��7èLé¦9<;RyJ��7è�;É9�;�PÔ � ;�/�.LéKyJy�9�;$��ét���è�é�ÕT�9�0o� {Xç = ;Iç-/x�.M;´�PÔ � ;�/�.LéKyJy�9�;$��éÊ,�9<;7.�Õ

��Ô�;7.�79�/x��K;z�zyPÔK0KyL079L, .|¼�½�!,£Ô Õ�.Jy�9<;É9�;$y����èM;

���

0�Ô!é:9|{ÂÁ /�Ô~��.J��/(y!, .�;6ª£/x:Õ�v�Õ�yJy��PÔ ��� èM;z�zy!,�9�;�.©¼´Á©�£Ô�!Ô � ;�/(y�0�9�, . Õ�v�Õ�yJy��!Ô ��� èM;(�6y!,�9�;7. � · 9�¹

��Ô�;7.T�w�é�9�;�/Ky�9<;�/ · �!Ô � ;�/�.�é(y�y�é�.�è1�º��7è�é�Õ6¹Ä�w�é�9�;�/Ky�ÕL/�é�9�;6ªÝÜ~���è�é�èJ��/�.�é�ÕT¶ÐÜR�w�é�9�;�/Ky�9<;�/ · �!Ô � ;�/�.�é(y�y�é�.�è1�ò,�9�;7.£Õ6¹Ä�w�é�9�;�/Ky�ÕL/�é�9�;6ªÝÜ�,�9<;7.�Õ � = ;TÜÃ�.�5�9M/t»W���

Page 136: Functional Programming Using Calm Light

U VXWZY?[]\�^ _�î

a bdi v%gIï t�f bdi t psi z ðñï u�nAw yØu uZy?psz fhi j

ëzþ&���M Ýþx���Ýÿ[�LþAþ<� þOZ��������/ÿ¹�© Wþx���zÿ���þ3F�þ����O�¹�©S�ÿ¹�©�K�����ÿ���þ��ª�PVx� ý��©�K�ãÿ\� þ��2ÿ����þ��<Yxëzþ&�K���© E����ÿ�����F����>þ�F�Ýþ<��þ<�G�L�\�O�!���>þ<S�ÿO�}�©�×�������>ÿH���!���L��S����!�!�G�PV&Vx������������Fò$þQ���M Ýþj�©���b�T� ÿ�þ�F1�!�hÿ���þE�<þ��2ÿ�����þ��}���/þ�F ����ÿ���þS����Ýÿ�ÝÿH £S������&��� Ð êãý�(7��ÿH���� 3V}��F�þO���P�å�ª�PVx�Éý����!�ãÿPÿH £S������3�P��FQ�/þ<V3�P�ãÿH�'�<�<Y

cd��þi�_þO� þ<��þ<���>þ}V3�������M��þ ø�òOÿ S����� !�'F�þ����P��þOZ��������/ÿ¹�© Wþ3F�þ����O�H��S�ÿH���!� ���bÿ��þ��%��Vx�³ý����!�ãÿ\�'�����!�����Ýþ!� �¾ÿG��#�����G���H�¾þ��<�7�O�!V&V3�P��F�������F�þOZ�ÿ�þ<�������!����Y

cd���£�/þ&$����E��þ��!FÐ7 ��þ<���������þ&�_þO� þ<���_þ�F�ÿ���þ ô÷Mÿ ���jS����!�!��þ������ Ýþ!�f����ÿ�ÿ����!��!���!�E���ãÿ����F����>ÿH���!�rÿ�-S����5�!�G�PV&Vx�����N���©�ª��Vx�³ý����!��ÿ��f$d� ÿ�AV3���� N���ãÿ�þ<�_þ��/ÿH������þOZ���V&S��¾þ��<������F�ÿ��Aþ ò�ý�ÿ �¥ÿ���þ�7���þ<�����þ�FK� ÿ¹�©�K�����ÿ���þ�ª��V��Iý��©�K�ãÿ���þO�<þ<��þ<���>þ�V3�P�£���M�DY�Pþ���O�H��S�ÿH���!�A�����!��ÿ&ì��ª�PVx�UêÝÿ����K���£í3�P��F-���/þO�"�����������!�V3�2ÿH���!�R�����!��ÿ�S����!�K�G��V&Vx�����}���p�%��Vx�U�<���Q�Lþ

�"�!����FN����þ ý�ÿ ����FRþ ô�è<ÿ YÐ �N���ãÿ����F����>ÿ¹�©�K��ÿ��x�'��Vx�7F���5D�<�M�'�O�������[����F�ÿH �S�þ��H ��/ÿ�þ<V3�È�<���-��þ\���!����Fã����þ ò�è<ÿ �7þ òMø�ÿ ����FRþ î!ÿ Ycd��þiF�þ����O�H��S�ÿH���!�X���bÿ���þ\��V&S��¾þ<V·þ<�ãÿO�2ÿH���!�A���ª�<�L�I� 5"�� J5" ��M����þ&�"�����>ÿH���!���M�US���!�!�G��V}Vx�����&�'�����!���P�Ýþ��[�<���

��þ\���K����F}�©� þ øÝó�ÿ Ycd��þx��V&S��¾þ<V·þ<�ãÿO�2ÿH���!� ���U�'��Ì< E�"�����>ÿH���!���M�U�'�����K�����Ýþ����'�xF�þ����O�H���Lþ�FR���1þ øýMÿ W^ÿ��G�P�����'�2ÿ�þ�FE���p7 ��þ<����� �!�

þ ôÝóMÿ ` Y Ð �-����ÿ�����F����>ÿH���!��ÿ�iS���!�!�G��V}Vx�����x���-�'��Ì< N�"�����>ÿH���!���M�f�'�����!���P�Ýþ����<���E��þ[�"�!����F}����þ /�ÿ Y

ò�ô/

Page 137: Functional Programming Using Calm Light

ò$ôµ ï é9ë�ð@èÉêFï�ä3òãæ¦ï0î%õiï ìQ»�ñÝðAî%õ[ñ�ë�õ�÷x½¼»aï}èÉé9êFï"ï}ê³ë�÷Pðbõ�í

Page 138: Functional Programming Using Calm Light

ó fIr ghf bdjduZpse wõô

þ ò�ÿ Ç+Y Ð �LþO�T�¹�!�Q����F à Y÷ö�Y ê!�����HV3�P�fY©Î�®"²Où£üM®"ù£²H°x³!±('�ÈG±�®"°�² Û�²H°�®"³!®"úý¬!±E¬�Éñ{g¬!«ÈÛ�ù£®"°M²Qø%²H¬G¯!²H³!«+­<Yfc%��þ[ÙQCHcÏÜ��þ����<� ò�ý÷/ Y

þ øPÿ Ð Y Ð �����hù[YÈêÝþAÿ����D������F�ö�Y%Ød�I��V3�P�fY8{U¬!«ÈÛ�úý´I°M²�­Núûøª²Oú'±�ü�ú Û�´#°<­�Ñ�ü�°Gü�⣱�úÄý�ù�°<­3³K±('Öü�¬�¬K´�­<Y Ð F�FK�'�H�K�ëzþ��b� þ< !� ò�ý÷xµ Y

þ ôPÿ ö�Yf¤%�!�����<Y��%���QS����K�!�G��V&V��©���-�Lþ+�I���Lþ<�G�2ÿ�þ�F§����!V�ÿ��þñþ��K��Ñ0þ<��VN�����A�/ÿH !�¾þ�¥ Ð �������>ÿH���!���L�ª�/ÿH !�¾þ����Fi� ÿO�U�M���Ýþ<���G�\����S���!�!�G��VN�<Y�CD�-{U¬!«x«xù£±�ú'üO³!®"úý¬!±�­�¬�É�®Vâ�°Q}L{ �Í�M !������V·þ ø�ò ��S����Ýþ�� ò$ôÝô�ÿ¥ò<îãó � ò�ý�è�÷ Y

þ îKÿ Ç+Y�Ï�Y�¤%���_þ<��F���þ<�Ýÿ�Y üÄ⣰LÏf³!«�� '!³�29{g³!´#ü�ù�´IùK­NúËÈG®ý­�Î7ÚL±�®"³�03³!±K']Î�°M«i³K±�®"úýü<­<�� !������V·þ ò$óÝô ���QÎ�®"ù�'!úý°<­iúý±Ïf¬G¯Kú'üx³!±K'3®Vâ�°��f¬!ù�±('K³!®"ú'¬K±�­�¬�ɼ�R³!®V⣰�«x³!®"úýü<­<YUÑÈ�!��ÿ��65DÇÈ���#�'����F7� ò�ý÷�î Y

þ /Pÿ ù[Y�¤����GFN����F-Ï�Y!ë �!FK�¾þ<��YéÈG±�®"²H¬�'Kù£üM®"ú'¬!±-®"¬��fù£±�ü�®"úý¬!±�³K´�øª²H¬O¯!²H³!«x«xú'±�¯!Y�êÝþ<�H�¾þ��g���æ�U�!V}S���ÿ�þ<��ê£��¾þ<���>þ!YÏÜ��þ<�ãÿ¹�T�>þm5DÇ��M�#��CD��ÿ�þ<�����2ÿH���!���L� � ò�ý÷xµ Y

þ µPÿ Ð YR�U�����G��fYLüÄ⣰]{U³!´#üMù£´#ú�¬�ɼÏf³!«�� '!³|{g¬!±�ÍM°�²­óúý¬!±�Y�Ï��H�����>þAÿ��K�ÍØÈ���© Wþ<�G���¾ÿH QÏ���þ������ ò�ý�î�ò Yþ èMÿ �xY8�����þ<V�þ<�ãÿ��éö�Y%�Pþ��HSLþ< £���K��Z �%c[YW�Pþ��HS�þ< ����!��Zf�U����F à Y��[�����fY Ð ����V&S��¾þR��S�S��#�T�<� ÿH�� Ýþ-�'�����!���P�Ýþ!(

Ùj����� 5DÙ�ýÜY�C���ø%²H¬�üO°G°4'!úý±£¯�­[¬�Éx®V⣰ñ} { � ÈG±�®"°M²G±�³!®"ú'¬K±�³!´é{U¬!±@Éó°M²b°M±�üO°�¬!±ûÏhúT­DÛ�³K±('��fù�±�üM®"ú'¬!±�³!´¥ø%²b¬12¯K²b³K«i«xúý±£¯K��S����Ýþ�� ò�ô�ÿ�ø�è � ò�ý÷µ Y

þ ÷Pÿ à Y��U�K��������þ����f��Ï�Y 5^ý�Y×�U���H�¾þ<�f�[����FòÙ�YgÙÍ�P���£ !Y¦c%��þA�<�2ÿ�þ<�!�!�¹�T�<�L�À�����/ÿ��O�!�>ÿ&V3�!�������þ!Y¦CD��fù£±�üm2®"úý¬!±�³K´ øª²H¬O¯!²H³!«x«xú'±�¯�Ïf³!±�¯!ù�³�¯!°�­i³!±K'�{g¬!«ÈÛ�ù£®"°M²�}[²Hümâ�ú'®"°Oü�®"ù�²H°��7����Vi�Lþ<� øÝó ò �©� ý¥þ��>ÿ�����þ-Ñ��Wÿ�þ��È����U�KV&S���ÿ�þ<�[ê£��¾þ<���>þ!�7S����Ýþ�� /Ýó�ÿ�µ�î Y�ê!S��H�����Ýþ<� þ6þ<�H�'����� ò�ý÷/ Y

þ ýPÿ à YR�U�!��������þ����R����F à Y�Ç���þAÿ�Ygc%��þE� Ð Ù�ý§S��H��V·þ<��Y%c,þ�������'�<�M�ªù�þ<S��!��ÿ ò�ø!ø ��CbÑ ù%C Ð � ò�ýýÝó Yþ ò$óPÿ Ñ+Y6�PþÀ¤g�����8kH�fY Ïf³!«��.'K³�2büO³!´#ü�ù�´#ù!­[±�¬!®"³K®"ú'¬!± Ê�ú'®VâN±�³!«x°�´#°�­G­�'Kù£«x«xú'°�­9Ñ�³N®"¬�¬!´�É<¬!²�³Kù£®"¬!«x³!®"úýüéÉó¬K²G«xù�´I³

«x³!±�ú8Û�ù�´#³!®"úý¬!±�Y�C���F�����Y7ÙR�2ÿ��fY�� ò�ýµ!ø Yþ òÝò�ÿ Ù Y à �!�GF��K�f��ù[YLÙj�#����þ<���ãýÜY!ÙQ�K���H�'�<��Ù�Y�Ñ}þ<$bþ< !�!�P��F���Y�ë��KF�$ª�K��ÿ��fY Ð V�þAÿG�M�'�����!�����WþU�"�!�v���ãÿ�þ<�O�!�>ÿH�� Ýþ

S��������D�g����ý®�;7%Y�C��£ø%²b¬MüG°O°4'!ú'±�¯�­�¬äÉ�}L{ �²Î7Ú�«�Û�¬�­<ú'ù�«�¬!± øª²Oúý±�ü�ú Û�´#°<­[¬�ɼø%²b¬O¯!²H³!«x«xú'±�¯LÏf³!±�¯!ù�³�¯!°�­ó�S����Wþ�� òÝò�ý�ÿ¥ò$ôÝó � ò�ý�è�÷ Y

þ ò�øPÿ ö�Y ù[Y�Ç%����FK�¾þ<  ����F-ö�Y�Ï�Y�êÝþO�'FK���fY-ÈG±�®"²H¬�'!ù£üM®"ú'¬K±�®"¬�{U¬!«��<úý±�³K®"¬!²�­N³!±(' 4 2büO³!´#ü�ù�´#ù!­<Y�ý7�!��F��!��ÙR�2ÿ���þm5V3� ÿH�'�<�M�Uê!���� þAÿH !�vêÝÿ���F�þ<��ÿ�c,þOZ�ÿG�<YÃ�ª��Vx���H�'F��Ýþ�ØÈ���© Wþ<�G���¾ÿH QÏ���þ������ ò�ý÷µ Y

þ ò$ôPÿ ��Y Ð Y÷ù\Y�Ç�������þ!Y�����'����H�!��ÿMY¼{U¬!«ÈÛ�ù�®"°�² ��¬!ù�²O±�³!´#� / W ò ` � ò�ýµ!ø Yò�ô�è

Page 139: Functional Programming Using Calm Light

ò$ô÷ �Fð��ì¥ð î@í}ï0ë�ð³é}ôþ ò<îKÿ ë:Y Ð Y�ÇÈ�L$����OF7YLüÄ⣰éÉ<¬!²G«xù�´#³!°m2H³�­N2H®"ÚÛ�°&±�¬!®"ú'¬K±A¬�É�üO¬!±�­<®"²Gù�ü�®"úý¬!±���S����Ýþ�� îzè�ý�ÿ£îJýWó Y Ð �<�!F�þ<V��T�xÏÜ��þ����<�ò�ýx÷Ýó Yþ ò�/Pÿ Ï�Y�Ç���F��P�����F Ï�Yvë��!FK�¾þ<��Y*ùþ<S��K��ÿx�!� ÿ��þ3S����K�!�G��V&V��©���j�'�����!�����Ýþ-Ç��!�HÝþO�#�DYÍcIþ�������T�<�L� ùþ<S��K��ÿ

� Ð ýfeUØ ���î��ê��3ùQù;5 èèè ���U�M�¾þxØ����� Ýþ<�G�b� ÿH !� ò�ýýÝó Yþ ò�µPÿ c[Y¥ö��!������H�!�fY�ejØã��¾þ<�ãÿ��O�KV&S��#�T� ÿH���!�R�����'��Ì< �þ< L�M�����2ÿ¹�©�K�fY�C��-øª²H¬�üO°G°4'!úý±£¯P­À¬�ɼ}L{ �d{U¬!±@Éó°M²H°�±�üO°�¬K±

{U¬K«�Û7ú'´#°�²L{g¬!±�­<®"²Gù�ü�®"úý¬!±���S����Ýþ�� /x÷�ÿ�µý � ò�ý÷�î Yþ ò�èMÿ ö�Y 5^ý�Y����H�� !����þ!YhÏf³!«�� '!³�2büO³!´#ü�ù�´ Ñ�®"ÚÛ�°�­À°M®�«x¬�'��°�´#°<­<Yfe6ÿ���F�þ��FþAÿ%��þ����þ<�G���þ��³þ<�}�������K��V3�2ÿH�'JK��þ!Y�ÙÍ�K���H�!�f�ò�ýxýÝó Yþ ò�÷Pÿ Ï�Y�ýf����FK���fYUc%��þ���þOZ�ÿ è2óÝó S����!�!�G�PV&Vx�����[�'�����!���P�Ýþ��<YfC���{U¬!«x«xù£±�ú'üO³!®"úý¬!±�­[¬�É[®V⣰¼}L{ �R�� !������V·þ ý �

S����Wþ�� ò�/�è>ÿ¥ò�µ�î � ò�ýµµ Yþ ò�ýPÿ�� Y�ý¥þ<���� -����FQÏ�Y�ë�þO�T��Yh�ͳ!±�ù£°M´Ä'!°x²��°�É��°�²H°�±�üG°î'!ùQ´#³!±�¯!³�¯K°�{g³!«x´IY�C��ãÿ�þ<� �eUFK�¾ÿH���!���<� ò�ýýÝô Yþ øÝóPÿ�� YHýÀþ<���� !Y�cd��þ���CbÑ ��þOZ�S�þ<�H��V·þ<��ÿ�(����Sþ��O�!���!Vx�'�<�M����V&S��¾þ<V·þ<��ÿG�2ÿH���!�}����ÿ���þªÙ�ý��'�����!�����Ýþ!Y�cIþ��������'�<�M�

ùþ<S��!��ÿ òÝò�è ��CHÑ�ù%C Ð � ò�ýýWó Yþ ø�ò�ÿ�� Yãý¥þ<��L !Yfcd��þÖ�ª�PVx�¹ý����!��ÿd�¹ ��/ÿ_þ<VQ�!��þO�¾þ��!� þ ó Y µ�� �����O��V·þ<��ÿG�2ÿH���!�3�P��F&���/þ<��M���V3�P�£���M�DYfcIþ��������'�<�M�

��þ<S��!��ÿ�� CbÑ ù%C Ð � ò�ýýÝô Y�CD�������F�þ�Fj����ÿ���þE�ª��Vx�Éý����!��ÿ ó Y µ FK�'�/ÿ��H������ÿH���!�fYþ ø!øPÿ ö�Y7ÙR�!���ª���_ÿ��£ !YªÏhúT­�Û���Ð�� øª²H¬G¯K²b³K«i«x°M²�Ì ­¼�ͳ!±�ù£³K´IYgÙQCHcáÏ��_þ����<�K�ª��Vx���H�'F��Ýþ!��ÙR�!��<Y�� ò�ýµ!ø Yþ øÝôPÿ �xY�ÙÍ�K�����þAþ<�fY�ÙE��F����¾þ��g�"�!�%êÝÿG�P��F����GFNÙ�ýÜY7CD� øª²H¬�üO°G°4'!úý±£¯P­ª¬�É[®V⣰�} { ��{U¬!±@Éó°M²b°M±�üO°�¬!± ÏhúT­DÛQ³!±K'

�fù�±�ü�®"úý¬!±�³!´!øª²H¬G¯K²b³K«i«xúý±£¯K� ò�ý÷�î Yþ ø�îKÿ Ù Y7ÙÍ�P���£ -����F �xY�F�þñù������P�T�P��F���þ!Y�Ï����O�/þ<�G�g���AÙ�ý�Y%CD�¯øª²H¬�üO°G°4'!úý±£¯P­�¬�É&®V⣰�}L{ª�s{U¬!±@Éó°M²H°�±�üO°�¬K±

Ï�ú�­�ÛA³!±('��fù£±�ü�®"úý¬!±�³!´!ø%²b¬O¯!²H³!«x«xú'±�¯!� ò�ýýKø Yþ ø/Pÿ Ù Y�ÙR������ Ê����F Ð Y�ê!� �����þ<Ì!Y CDV&S��¾þ<V·þ<��ÿH�����ò�������>ÿH���!���L�[�T�P���!�����Ýþ��}����ÿ���þ �<�2ÿ�þ<�!�!�¹�T�<�L�\����� ÿ��G�!�>ÿ

V3�K��������þ!Y&C���ø%²H¬�üO°G°4'!úý±£¯�­�¬äÉ�®Vâ�°�}L{ ��ÈG±�®"°�²O±�³!®"úý¬!±�³!´h{U¬!±@Éó°M²b°M±�üO°x¬!±£Ï�úT­DÛ�³!±('!�fù£±�ü�®"úý¬!±�³K´)ø%²b¬12¯K²b³K«i«xúý±£¯K��S����Ýþ�� øxµµ�ÿ�ø�è�÷ � ò�ýx÷µ Y

þ øµPÿ Ù Y�ÙR������ !YW7������>ÿH���!���M��S����!�K�G��V&Vx�����x���������Ì� Ð Ù�ý�Ygc,þ�������'�<�M�ªù�þ<S��!��ÿ ò�øý �£CHÑ�ùdC Ð � ò�ýxý�ò Yþ ø�èMÿ ù[Y!Ùj�#����þ<��Y Ð ÿ���þ<�!� [����ÿH £SLþªS����� £V}�!��S����'�HV:���&S���!�!�G��V}Vx������Y"��п{U¬!«ÈÛ�ù�®RÐ�Î�ÚM­<®RÐ�Î7ü�ú�Ð�� ò�è ( ô�îJ÷�ÿ­ô�è�/ �ò�ý�è�÷ Yþ ø÷Pÿ ù[Y7Ùj�#�©��þ<�MY Ð S����!S������M�7���K�[êÝÿG����F����OFQÙ�ý�YgCD�£ø%²H¬�üO°G°4'!úý±£¯�­�¬�Éi®V⣰�}L{ �s{g¬!±>É<°�²H°�±�üG°+¬!± ÏhúT­�Û§³!±K'

�fù�±�ü�®"úý¬!±�³!´!øª²H¬G¯K²b³K«i«xúý±£¯K� ò�ý÷�è Yþ øýPÿ ê�YQýÜY�Ïaþ< ãÿ��K�65Rö��!��þ��<Y ü�⣰ ÈG«ÈÛ�´#°�«x°�±�®"³!®"ú'¬K±á¬�É#�fù£±�ü�®"úý¬!±�³!´�øª²H¬G¯K²b³K«i«xúý±£¯¯Ïf³!±£¯Kù£³M¯!°<­<Y:êÝþ<�¹� þ��ã����U�KV&S���ÿ�þ<�[ê£��¾þ<���>þ!YfÏ��_þ<�ãÿH�'�>þm5DÇ��M�#�hC��ãÿ_þ<�����2ÿH���!���M�D� ò�ý÷�è Y

þ ôÝóPÿ ê�YQýÜY�Ïaþ< ãÿ��K�65Rö��!��þ��<Y8�Rú�­<°A°M±%$�ùÍ�²H°Ð'!°�­Í´#³!±£¯K³�¯!°�­�É<¬!±�üM®"ú'¬K±�±�°M´_­ '!°NÛ�²H¬G¯K²H³!«x«i³K®"ú'¬!±�Y ÙR������þO�'�C������!�V3�2ÿH�'JK��þ���ÙR�!���¹�!�fY�ÙÍ�K���H�!�f� ò�ýýWó Y

þ ô�ò�ÿ ö�Y�ù�þAþ�������F[ë:Yx���#�©���Wþ<��Y�c%��þg��þ< !�'�/þ�F � ��þ<S��!��ÿ��!� ÿ��þd�L�©�K�!�H�¾ÿ���Vx�'�Ü�'�����!�����Ýþ�ê£���þ<V·þ!Y�CD�]Î�È�&hø Ï)}(''[¬!®"úýüG°�­ó�� !������V·þ ø�ò � ò�ý÷�è Y

Page 140: Functional Programming Using Calm Light

�Fð��ì¥ðAî@í0ï0ë�ð³é}ô ò$ôýþ ô!øPÿ ö�Y Ð Y)ù%�!�������H�K�fYE�U�!V&S���ÿO�2ÿH���!���M�����!���'��(Pÿ���þx�����I¢��<� ÿH���!���O�!V&S���ÿO�2ÿH���!�fY�CD���R³!ümâ�ú'±�°LÈG±�®"°M´'´#ú#¯!°M±�üO°��

!�P�©��V�þ µ ��� }[«x°�²OúýüG³!±*)ª´_­<°NÍ�úý°�²OY�¤�Y�Ù þO� ÿÌAþ<������F �xY�Ùj�¾ÿG���� þ}WbeUF�� ` � ò�ý�è�ò Yþ ôÝôPÿ ù[YvêÝþ�F��Ýþ<$%�'��Yé}[´8¯!¬!²Oú'®Vâ�«�­<Y Ð F�FK�'�H�!�Që�þ����¾þ< !� ò�ýx÷÷ Yþ ô�îKÿ �xY�cv������þ<��Ydê Ð êãý§�'�����!�����Ýþ+V3�������M�DYUcIþ��������'�<�M����þ<S��K��ÿ���êÝÿ Ð ��F���þ<$���Ø����� Ýþ<�G�b� ÿH !� ò�ý�è�µ Yþ ô/Pÿ �xY!cv������þ<��Y,+%°GüMù£²­<ú'¬!±}°9ýMù£³!®"úý¬!± ­d³P­d³ÈÛ�²H¬O¯!²H³!«x«xú'±�¯�´#³!±�¯!ù�³�¯!°M��S����Ýþ�� ò�ÿ�øx÷ Y6�ª�PVi���¹�TF��WþdØÈ���� Ýþ<�G���¾ÿH 

ÏÜ��þ����<� ò�ý÷!ø Yþ ôµPÿ �xY%cf�����þ<��YÉÙj���G����F���(A� ���!�65D� ÿ��H�'�>ÿN�������>ÿ¹�©�K���M���'�����K�����ÝþR$%�¾ÿ��1S����� �V&�!��S����'��ÿH �S�þ��<Y¦C��-�fù£±�üm2

®"úý¬!±�³K´ øª²H¬O¯!²H³!«x«xú'±�¯�Ïf³!±�¯!ù�³�¯!°�­i³!±K'�{g¬!«ÈÛ�ù£®"°M²�}[²Hümâ�ú'®"°Oü�®"ù�²H°��7����Vi�Lþ<� øÝó ò �©� ý¥þ��>ÿ�����þ-Ñ��Wÿ�þ��È����U�KV&S���ÿ�þ<�[ê£��¾þ<���>þ!�7S����Ýþ�� ò�ÿ¹ò�µ Y�ê!S��H�����Ýþ<� þ6þ<�H�'����� ò�ý÷/ Y

þ ô�èMÿ Ï�Y7ëzþO�'�<��Ù�Y þiY Ð S��!��ÿ�þ!� Ð Y¥ýf�M K�I�#�¾þ!��Ù YfÙÍ�P���£ !�7����F Ð Y�ê!� ��P��þ<Ì!Y�c%��þ�� Ð Ù�ý ��þO�<þ<��þ<���>þxV3�������M�DYcIþ��������'�<�M� ùþ<S��!��ÿ ò�ø�ò ��CbÑ ù%C Ð � ò�ýýÝó Y

þ ô÷Pÿ Ï�Y�ëzþO�'������F � Y�ý¥þ<���� !YhÏf°x´#³!±£¯K³�¯!°E{U³!«x´#Y�CD��ÿ�þ<� �egFK� ÿ¹�©�K���<� ò�ýýÝô Y


Recommended