¡@²Ä¤K³¹ ±±¨îµ²ºcªºÂ²¤Æ¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ±±¨îµ²ºc¦b²Å¦¡¸Ì¡A¤£¹³¦b¨ä¥¦»y¨¥¨º»ò«n¡C²Å¦¡µ{¦¡³]p®v¶É¦V©ó¥H²µuªº¦r ¼g¥X½ÆÂøªºÀ³¥Îµ{¦¡¡A¦Ó¤£¤Ó¥hª`·N¹³ IF THEN ¤@Ãþªºµ²ºc¡C ¦³´XºØ§Þ¥©¥i¥H´î¤Ö±±¨îµ²ºcªº¨Ï¥Î¡C¥¦Ì¬O: ¡E ¹Bºâ©Îpºâ ¡E ¸g¥Ñ«·s¤À¸Ñ¡A¥H«K±N±ø¥óÁôÂð_¨Ó ¡E ¨Ï¥Îµ²ºc¤Æªº¸õ¥X ¡E ¦V¶q¤Æ ¡E «·s³]p
¦b¥»³¹¤¤¡A§ÚÌnÀ˵ø¦p¦ó¨Ï¥Î³o¨Ç§Þ¥©¡A¥H²¤Æ©Î®ø°£µ{¦¡½X¤¤ªº±±¨îµ²ºc¡C ¦b¶}©l¸£µ¬«æÂàÅs¤§«e¡AÅý§ÚÌ¥ý°±¤@¤U¡A¸ÑÄÀ¬°¤°»òº¥ýnÁ×§K¨Ï¥Î"±ø¥ó"¡C ±ø¥óµ²ºcªº¨Ï¥Î·|¼W¥[µ{¦¡½Xªº½ÆÂø«×¡C§Aªºµ{¦¡½X¶V½ÆÂø¡A´N¶VÃø¾\Ū©MºûÅ@¡C ¤@Ó¾÷±ñªº¹s¥ó¶V¦h¡A·lÃaªº¾÷·|¶V¤j¡A¨Ã¥B¶VÃø×²z¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
§Ú³Ìªñ¦^¨ì´X¦~«e´¿¸g¬°¥L̰µ¹L¤@¨Ç¤u§@ªº¤½¥q¡C¥Ļâ§Ú¥s¦^¥h¡A¬O¦]¬°§Ú¼g ªº¨º¨Çµ{¦¡¤w¸g¦³¤¦~¤F¡A¨Ã¥B¤w¸gÅܪº«Ü½ÆÂø¡C¦b³o¬q´Á¶¡¡A¦³´XÓµ{¦¡³]p®v
´¿¸g¶i¤J³oÓµ{¦¡¡A×§ï¤F¤@¨Ç«ü¥O¡A¥[¤J¤F¤@¨Çª¬ºAÅܼƩM±ø¥ó¡C¨C¤@±ø§Ú©Ò°O ±oªº¤¦~«e«Ü²³æªº«ü¥O¡A²{¦b«o³£Åܱo½ÆÂø¤F¡C¡u¦pªG³o¼Ë.. §_«h¦pªG³o¼Ë..
§_«h¦pªG³o¼Ë..¡v¡A¦A¨Ó¤~¬O¨º¥ó²³æªº¨Æ±¡¡C ²{¦bŪ³o¨Ç«ü¥O¡A§Ú«ÜÃø·Q°_¨Ó¥¦n°µ¤°»ò¡A©M¬°¤°»òn³o¼Ë°µ¡C§Ú¥²»Ý¦^·Q¨C
ÓÅܼƫüªº¬O¤°»ò¡A¥¦¬°¤°»ò¦b³oùØ¡A¥H¤Î¥¦±µµÛ·|²£¥Í¤°»ò¡A©Î¤£²£¥Í¤°»ò¡C ¶}©lªº®ÉÔ¡Aµ{¦¡³]p®v«Ü¦ÛµMªº´N³o¼Ë°µ¤F¡A¦]¬°¥L̦³¤@Ó¯S®íª¬ªp»Ýn³B²z¡C
¬°¤F³B²z³oÓ¯S®íª¬ªp¡A¥LÌ¥ý¦b¤@Ó¦a¤è©ñ¤W¤F±ø¥ó¡CµM«á¥L̵o²{¡A³o¸Ì¤]»Ý n¤@Ó±ø¥ó¡A¨º¸Ì¤]»Ýn¤@Ó±ø¥ó¡Cµ²ªG¬O¡A¨C¼W¥[¤@Ó¨BÆJ¡A´N¼W¥[¤@ÂIµ{¦¡ªº
½ÆÂø«×¡C¦]¬°¥L̬Oµ{¦¡³]p®v¡A©Ò¥H¥L̤]³£Áٯ౱¨î¥¦¡C µ²ªGÅܱo«Ü¾D¿|¡C¨ì³Ì«á¡A¥L̤@¦@¦³¥b¥´ªººX¼Ð¡C´ú¸Õ³oÓ¡A±N¥¦«ì´_¡A¦A³]©w
¨ºÓ¡A¦p¦¹«´_¤£¤w¡C¦b¤@Ó±ø¥ó¦¨¥ß«á¡A·|µo²{ÁÙ¦³¥t¥~ªº±ø¥ó»ÝnÀˬd¡C¥LÌ »s³y¤F¤@°ï¹³Äѱø¦¡ªºÅÞ¿è§PÂ_ªºµ{¦¡½X¡C
µ{¦¡ªº½ÆÂø«×¤ñ·íªì¥LÌ·Q¹³ªºn°ªªº¦h¡C¦ý¬O¥LÌÁÙ¥H¬°³oºØ³B²z¤è¦¡¬O¹ïªº¡A ¥L̨S·Q¨ì¦³¤@Ó²³æªº¸Ñ¨M¿ìªk¡A´N¬O¥Î¨âÓ¦r¦Ó¤£¬O¤@Ó¦r¡C§A¥i¥H»¡ GO ©Î
ªÌ»¡ PRETEND¡C ¦b¤j³¡¥÷ªºÀ³¥Îµ{¦¡¸Ì¡A¯u¥¿»Ýn°µ±ø¥ó´ú¸Õªº¦a¤è«Ü¤Ö¡C¨Ò¦p¦b¤@Ó¹CÀ¸µ{¦¡¤¤¡A
§A¤£¥²»¡¡u¦pªG¥L«ö¤U«ö¶sA¡A´N°µ³o¥ó¨Æ¡F¦pªG¥L«ö¤U«ö¶sB¡A´N°µ¥t¤@¥ó¨Æ¡v¡C §A¤£¥²¸g¥Ñ¹³³o¼ËªºÅÞ¿è¡C
¦pªG¥L«ö¤@Ó«ö¶s¡A§A´N°µ¤@¥ó¨Æ¡C¨ä¹ê§A©Òn°µªº¨Æ¬O»P«ö¶s¬ÛÃöªº¡A¦Ó¤£¬O»P Å޿観¤°»ò¥Ê¸¯ªº¡C"±ø¥ó"¥»¨¨Ã¤£Ãa¡A¥¦Ì¬O¤@ºØ«nªºµ²ºc¡C¦ý¬O¤@Óµ{¦¡¦p
ªG¦³¤Ó¦hªº±ø¥ó¡A´N·|Åã±o²Â©å¦ÓÃøÅª¡C§A©Òn°µªº¬O¡A¦Û°Ý¨C¤@Ó±ø¥ó¬O§_¥²»Ý¡C ¹J¨ì¤@Ó±ø¥ó¡A§A´N°Ý¡u§Ú¬O¤£¬O§Ë¿ù¤F¤°»ò¡H¡v
§A¨Ï¥Î"±ø¥ó"©Ò¯à°µ¨ìªº¨Æ¡A¤]¥i¥H¥Î¥t¤@ºØ¤èªk¨Ó¹F¦¨¡C±qªø»·ªºÆ[ÂI¨Ó¬Ý¡A¨Ï¥Î ¥t¤@ºØ¤èªkn¤ñ¨Ï¥Î±ø¥ó¦³¯qªº¦h¡C
¦b§Ų́S¦³¤¶²Ð§Þ¥©ªº²Ó¸`¤§«e¡A¥ýÅý§Ú̬ݤ@Ó¯S®íªº¨Ò¤l¤¤¡A¤TºØ¤£¦P¨Ï¥Î±ø¥ó ªº¤è¦¡¡C¹Ï8-1¡A¹Ï8-2¡A©M¹Ï8-3 ¦CÁ|¤F¦Û°ÊÂdû¾÷ªº¤TºØ³]pª©¥»¡C ²Ä¤@Ó¨Ò¤lª½±µ¨Ó¦Û¾Ç®Õ¡A¬Oµ¹µ²ºc¤Æµ{¦¡³]p®vªºª©¥»¡C¥¦ªºÅÞ¿è¨ú¨M©ó IF «ü ¥Oªº¥¿½T±_¤Æ¡C ®e©ö¾\Ū¶Ü¡H½Ð§A§i¶D§Ú¡A¦b¤°»ò±ø¥ó¤U¡A¨Ï¥ÎªÌªº¥d¤ù·|³Q¦Y±¼¡C¬°¤F¦^µª³oÓ °ÝÃD¡A§A¥²»Ý±q©³³¡pºâ ELSE ªº¼Æ¥Ø¡A¨Ã±N¥¦»P±q³»³¡pºâªº IF ¼Æ¥Ø°t¦X¡A©Î¨Ï¥Î ¤@°¦¹ï»ô¥Îªºª½¤Ø¡C ²Ä¤GºØª©¥»¡A¹Ï8-2¡A¬O¤@Ó¦b¥iŪ©Ê¤W¦³©Ò§ï¶iªºª©¥»¡C¥¦¨Ï¥Î¤F³\¦h¤pªº¡B©R¤F ¦Wªºµ{§Ç¡C¦pªG¥d¤ùªº«ù¦³¤H¤£¹ï¡A¥d¤ù´N·|³Q¦Y±¼¡C §Y¨Ï¦³¤F³oÓ§ï¨}¡A¨CÓ¦rªº³]pÁÙ¬O§¹¥þ¦a¨Ì¿àµÛ¨º¥²¶·n¶i¦æªº±ø¥ó´ú¸Õ¤Wªº ¶¶§Ç¡C¬Ý°_¨Ó¹³¬O"³Ì°ª¶¥¼h"ªºµ{§Ç¡A«ot¾áµÛn¥h®ø°£¨º¨Ç³ÌÃa±¡ªp¡B³Ì¤£«nªº¤u §@¡C¦Ó¥B¡A¨CÓ±ø¥ó´ú¸Õ¤Snt³d©I¥s¤U¤@Ó±ø¥ó´ú¸Õ¡C ²Ä¤TºØª©¥»³Ì±µªñ²Å¦¡ªº©Ó¿Õ¡C¥¦³Ì°ª¼hªº¦r¥¿½T¦a¦bÆ[©À¤Wªí¹F¥Xnµo¥Íªº¨Æ¡A ¨Ã¥B¥uÅã¥Ü¥X¥Dnªº¸ô®|¡C¨C¤@Ó¦¸¯Å¦r¦³¥¦¦Û¤vªº¿ù»~¸õ¥X³B²z¡A¤£·|²V²c¤F¥Dµ{¦¡ ªº¾\Ū©Ê¡C¦Ó¥B¡A¤@Ó±ø¥ó´ú¸Õ¤]¤£¥²¤@©wn©I¥s¤U¤@Ó±ø¥óªº´ú¸Õ¡C ¦Ó¥B¡A¡y³B²z¡z¬O¨ÌµÛ¤U±ªº¨Æ¹ê©Ò³]pªº¡G¨Ï¥ÎªÌ¸g¥Ñ«öÁä¡A¿ï¾Ü©Ò»ÝnªºªA°È¡C §¹¥þ¤£»Ýn°µ±ø¥ó´ú¸Õ¡C¤@Ó«öÁä¥i¥H±Ò°Ê´£´Ú¡A¥t¤@ӱҰʦs´Ú¡C³oºØ¤èªk¤]¯àÀ³¥I º¸«á³]p¤Wªº¥i¯à§ïÅÜ¡A¨Ò¦p¼W¥[¦Û°ÊÂà¦sªº¥\¯à¡C¡]¨Ã¥B¡A³oºØ¤èªk¤]¦]¦¹¦Ó¤£·|¨Ì¿à µwÅé¡CÁä½Lªº¸Ô²Ó¤¶±¥i¥HÁôÂæbÁä½Lªºµü¶°¸Ì¡A¹³¬O¡yŪ¨ú«ö¶s¡z©M¡y«ö¶s¡z¡C¡^ ·íµM¡A³o¤TºØ¤èªk²Å¦¡³£¥i¥H¹F¦¨¡C§AÄ@·N¿ï¨º¤@ºØ©O ¡H ¹Ï 8-1 ¦Û°ÊÂdû¾÷¡Gµ²ºc¤Æªº¤èªk IF ¥d¤ù¦³®Ä DO
IF ¥dªº«ù¦³¤H¥¿½T DO
IF n¨D´£´Ú DO
IF ´£´Ú±K½X¦³®Ä DO
Ū¶i´£´Ú¼Æ
IF n¨Dªº´£´Ú¼Æ ¡Ø ¥Ø«e¦s´Ú DO
IF ´£´Ú¼Æ ¡Ø Âdû¾÷¤ºªº²{¦³²{ª÷ DO
°e¥X²{ª÷
µ²ºâ½ã¥Ø
ELSE
Åã¥Ü«H®§
°±¤î¹ï¸Ü
ELSE
Åã¥Ü«H®§
°±¤î¹ï¸Ü
ELSE
Åã¥Ü«H®§
°±¤î¹ï¸Ü
ELSE
IF ´£´Ú±K½X¦³®Ä DO
Ū¶i¦s´Ú¼Æ
±q¤J¤f±µ¨ü¦s´Ú«H«Ê
µ²ºâ½ã¥Ø
ELSE
Åã¥Ü«H®§
µ²§ô¹ï¸Ü
ELSE
¦Y±¼¥d
ELSE
Åã¥Ü«H®§
END
¹Ï 8-2 ¦Û°ÊÂdû¾÷¡G¦b¤w©R¦Wªºµ{§Ç¤¤±N±ø¥ó±_¤Æ
PROCEDURE Ū¥d¤ù
IF ..¥d¤ù¬O¥i³QŪ¨úªº.. THEN Àˬd«ù¦³¤H
ELSE ..©Úµ´¥d¤ù.. END
PROCEDURE Àˬd«ù¦³¤H
IF ..«ù¦³¤H¥¿½T.. THEN Àˬd±K½X
ELSE ..¦Y±¼¥d¤ù.. END
PROCEDURE Àˬd±K½X
IF ..±K½X»P«ù¦³¤H²Å¦X.. THEN ³B²z
ELSE ..Åã¥Ü«H®§¡Aµ²§ô¹ï¸Ü.. END
PROCEDURE ³B²z
IF ..n¨D´£´Ú.. THEN ´£´Ú
ELSE ¦s´Ú END
PROCEDURE ´£´Ú
..¸ß°Ý.. IF ..n¨Dªº´£´Ú¼Æ¥Ø ?¥Ø«e¦s´Ú.. THEN ¤ä¥I END
PROCEDURE ¤ä¥I
IF ..´£´Ú¼Æ¥Ø ?Âdû¾÷²{¦³²{ª÷.. THEN ..°e¥X²{ª÷.. µ²ºâ½ã¥Ø..
ELSE ..Åã¥Ü«H®§.. END
PROCEDURE ¦s´Ú
..±µ¨ü¦s´Ú«H«Ê..
..µ²ºâ½ã¥Ø..
¹Ï 8-3 ¦Û°ÊÂdû¾÷¡G«·s¤À¸Ñ¡A¨Ã¥B¡þ©ÎªÌ¨ú®ø±ø¥ó : ¶}©l¶i¦æ Ū¥d¤ù Àˬd«ù¦³¤H Àˬd±K½X ³B²z ;
: Ū¥d¤ù ..Ū¤Jªº½X¤£¥¿±`.. IF ..ç°£¥d¤ù.. °±¤î THEN ;
: Àˬd«ù¦³¤H ..«ù¦³¤H¨¥÷¤£²Å.. IF ..¦Y¶i¥d¤ù.. °±¤î THEN ;
: Àˬd±K½X ..±K½X¤£¦X.. IF ..Åã¥Ü«H®§.. °±¤î THEN ;
: Àˬd«ö¶s ( -- «ö¶s¥\¯àªº¦a§} ) ( ³o¬O¤@ºØ¨Ì¾÷«¬¦Ó¦³©Ò¤£¦Pªºµ{§Ç ) ;
: ³B²z Ū¨ú«ö¶s °õ¦æ ;
1 «ö¶s ´£´Ú 2 «ö¶s ¦s´Ú
: ´£´Ú ..¸ß°Ý.. n¨Dªº´£´Ú¼Æ¥Ø ?¥Ø«e¦s´Ú.. IF ¤ä¥I THEN ;
: ¤ä¥I ..´£´Ú¼Æ¥Ø ?Âdû¾÷²{¦³²{ª÷.. IF ..°e¥X²{ª÷.. µ²ºâ½ã¥Ø..
ELSE ..Åã¥Ü«H®§.. THEN ;
: ¦s´Ú ..±µ¨ü¦s´Ú«H«Ê.. µ²ºâ½ã¥Ø.. ;
¡@ ¡@ ¦p¦ó®ø°£±±¨îµ²ºc
¦b³o¤@¸`¡A§Ú̱N¬ã¨s¤@¨Ç±N±ø¥ó²¤Æ©Î¬Ù²¤ªº§Þ³N¡C¥¦Ì¤j¦h·|²£¥Í¥iŪ©Ê¸û°ªªº½X¡A¤ñ¸û®e©öºûÅ@¡A¤]¤ñ¸û¦³®Ä²v¡C¦³¨Ç§Þ³N¯à²£¥Í®Ä²v¸û°ªªºµ{¦¡½X¡A¦ý¥iŪ©Ê·|®t¤@¨Ç¡C §Q¥Îµü¨å
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ´£¥Ü ½á¤©¨CÓ¥\¯à¦³¥¦¦Û¤vªº¤@Ó©w¸q¡C Y¯à¾A·í¦a¨Ï¥Î²Å¦¡ªºµü¨å¡A¹ê»Ú¤W§Ų́èS¦³®ø°£"±ø¥ó"¡F§ÚÌ¥u¬O±N¥¦Ì±qÀ³¥Îµ{¦¡½X¤§¤¤¤À¸Ñ¥X¨Ó¡C²Å¦¡ªºµü¨å´N¬O¤@Ó¥¨¤jªº¦r¦êªº CASE ±Ôz¡C³oºØ¡uÀˬd¬O§_§k¦X¨Ã°õ¦æ¡vªº¥\¯à¬OÁôÂæb²Å¦¡¨t²Î¤ºªº¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦b§Úªº·|p½ãï¸Ì¡A¦pªG§A±q¬YÓ¤H¦¬¨ì¤@±i¤ä²¼¡A§AÁä¤Jª÷ÃB¼Æ¥Ø¡A¤ä²¼¸¹½X¡A ¡y¦¬´Ú¡z¡A©M¶}²¼¤H©m¦W¡G 200.00 N1235202 ¦¬´Ú §õ§Ó¼w
¡y¦¬´Ú¡z³oÓµü·|°µ¾A·íªº³B²z¡C¦pªG§An¶}²¼µ¹¬YÓ¤H¡A§AÁä¤J¼Æ¥Ø¡Aµo²¼¸¹½X ¡A¡y¥I±b¡z¡A©M¸Ó¤Hªº©m¦W¡G 1000.00 DS2440530 ¥I±b ¼Bª÷¼Ð
...
¤@Óµü¥NªíµÛ¤@ºØª¬ªp¡C¥Ñµü¨å¨Ó°µ¨M©w¡C ³oºØ·§©À¦b²Å¦¡¥»¨´N¨ã³Æ¤F¡Cn¬Û¥[¤@¹ï³æ¾ã¼Æ¡A§Ų́ϥΫü¥O¡y+¡z¡Cn¬Û¥[¤@¹ï Âù¾ã¼Æ¡A§ÚÌ´N¨Ï¥Î«ü¥O¡yD+¡z¡C¤@ºØ®Ä²v¸û®t¡B¸û½ÆÂøªº¤èªk¬O¡A¤@Ó«ü¥O»Ýn"ª¾¹D" ³Q¥[¼ÆªººØÃþ¡C ²Å¦¡«Ü¦³®Ä²v¡A¦]¬°©Ò¦³³o¨Çµü¡A¡y¦¬´Ú¡z¡B¡y¥I±b¡z¡B¡y+¡z¡B¡yD+¡zµ¥µ¥¡A³£¥i ¥Hª½±µ³Q°õ¦æ¡A¤£»Ýn¥ô¦óªº´ú¸Õ©M¤À¤ä¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ³o¤£¬Oµ¹¹qµø¼@§@®aªº«ØÄ³¡C³o¬O¨Ï¥Îµü¨åªº¥t¤@Ó¨Ò¤l¡C"·M²Â"ªº¦r¬O¨ººØ¤£¨Ì¾aª¬ ºAªº¦r¡A¦]¦Ó¡A¤£½×¦b¤°»òª¬ªp¤U¡A¥¦Ì³£¦³µÛ¬Û¦Pªº¦æ¬°¡C ¤@Ó·M²Âªº¦r¬O¤£ªx¸qªº¡A¤]¦]¦¹¤ñ¸û¥i¥H«H¿à¡C ¦³´XÓ±`¥Îªº²Å¦¡¦r¡A³Ìªñ¦b³o¤è±¤Þ°_ª§Ä³¡C¨ä¤¤¤§¤@¬O¡y."¡z¡A³Q¥Î¨Ó¦L¥X¤@ Ó¦r¦ê¡C¥¦³Ì²³æªº¤@ºØ§Î¦¡¬O¡A¥u¤¹³\³Q¨Ï¥Î¦b«_¸¹©w¸q¤§¤¤¡G : TEST ." THIS IS A STRING " ; ¹ê»Ú¤W¡A³oÓª©¥»ªº¦r¨Ã¤£"¦L¥X"¤@Ó¦r¦ê¡C¥¦¥u¬O½sͤ@Ó¦b°õ¦æ®É¯u¥¿¥Î¨Ó¦L¥X¦r ¦êªº¦rªº¦a§}¡A¥H¤În³Q¦L¥Xªº¦r¦ê¥»¨¡C ³o¬O³oÓ¦rªº·M²Âª©¥»¡C¦pªG§A±N¥¦¨Ï¥Î¦b«_¸¹©w¸q¤§¥~¡A¥¦¤]¥u·|½sͦr¦ê¡A¨Ã¤£ ¯à°µ¥X§A´Á±æªº¤u§@¡C ¬°¤F¸Ñ¨M³oÓ°ÝÃD¡A¦bFIGª©¥»ªº¡y."¡z©w¸q¤¤¡A¥[¤W¤F¤@Ó´ú¸Õ¡A¥H¨M©w¨t²Î¥Ø«e ¬O¦b½sĶ©Î¸ÑĶªºª¬ºA¡CY¬O¦b½sĶª¬ºA¸Ì¡A¡y."¡z´N±N¦r¦ê©M¦L¦r¦êªº¦rªº¦a§}½s¤J¡F Y¦b¸ÑĶª¬ºA¸Ì¡A¥¦´N¦L¥X¦r¦ê¡C ¡y."¡zÅܦ¨¤F¥Ñ¨âÓ§¹¥þ¤£¦Pªº¦r¡A³Q©ñ¦b¤@Ó IF ELSE THEN µ²ºc©Ò«Øºcªº«Îò ¤U©Ò²Õ¦¨¡C³Q¥Î¨Ó«ü¥Ü²Å¦¡¬O¦b½sĶ©Î¸ÑĶª¬ºA¤UªººX¼ÐºÙ¬°¡ySTATE¡z¡C¦]¬°¡y."¡zªº ¦æ¬°¨M©w©ó STATE ªºÈ¡A©Ò¥H»¡¥¦¬O¡u¨Ì STATE ¨M©wªº¡v¡]STATE-dependent¡^¡C ³oÓ«ü¥O¦b«_¸¹©w¸qªº¤º¥~¡Aªí²{¥X¨Óªº¦æ¬°³£¬Û¦P¡C³oÓ¤èªk°_ªì¬Ý°_¨Ó¦ü¥G«Ü ¦³¥Î¡A¦ý¬Oºë©úªº¾Ç¥Í«Ü§Ö´N¬Ý¥X¨Ó¡A¥¦¤ñ¬Ý°_¨Ón½ÆÂøªº¦h¡C °²³]¤@ӾǥÍn¼g¤@ÓºÙ¬°¡yB."¡zªº·sµü¡A¥Î¨Ó¦b¥LªºÅã¥Ü¹õ¤WÅã¥Ü¥X¸û°ª«G«×ªº ¦r¦ê¡C¥¦¯à³Q³o¼Ë¦a¨Ï¥ÎµÛ¡G ." INSERT DISK IN " B." LEFT " ." DRIVE " ¥L©Î³\¸Ó©w¸q¡yB."¡z¬° : B." BRIGHT ." NORMAL ; ¤]´N¬O¡A±Nµø°Tª¬ºAÅܪº«G¨Ç¡A¦L¥X¦r¦ê¡AµM«á¦A«ì´_±`ºA¡C ¥L¸Õ¤F³oÓµ{¦¡½X¡C¼v¹³¥ß¨è³QºR·´¤F¡F¤Û¹³¯}·À¡F³oÓ©w¸q¤£¤u§@¡C n¸Ñ¨M³oÓ°ÝÃD¡Aµ{¦¡³]p®v¥²»Ý¬ã¨s¥¦¦Û¤vªº¨t²Î¸Ì¡y(.")¡zªº©w¸q¡C§Ú¤£·Q¸`¥~¥ÍªK ªº¦b³o¸Ì¸ÑÄÀ¡y(.")¡zªº¤u§@ì²z¡A§Ú±ÔzªºnÂI¬O¡G¬Ý°_¨ÓªºÀuÂI¡A¹ê»Ú¤W¤£ºÉµM¬O ÀuÂI¡C ·N¥~ªº¡A¥Î¤@ºØ¤£¦P»yªkªº¤è¦¡¡A¥i¥H¸Ñ¨M³oӾǥͪº°ÝÃD¡C¥¦¤£»Ýn¨âÓ¤À§Oªº ¡y."¡z©M¡yB."¡z¨Ó¦L¥X¦r¦ê¡C¥un§ïÅܨt²Îªº¡y(.")¡z¡A¨Ï¥¦¦b¦L¥X¤§«á¤@©w¦^´_¥¿±` ª¬ºA¡A§Y¨Ï¥¦¤j³¡¥÷ªº®É¶¡³£¤w¸g¬O¦b¥¿±`ª¬ºA¡C§Q¥Î³oÓ»yªk¡Aµ{¦¡³]p®v¥un¦b »Ýn¥[±j«G«×ªº¦r¦ê«e¡A¥[¤W¤@Ó²³æªº¦r¡yBRIGHT¡z¡C ." INSERT DISK IN " BRIGHT ." LEFT " ." DRIVE " 1983¦~ªº¼Ð·Ç³W©w¤F¡y."¡zªº²Âª©¥»¡A¨Ã¥B¡A¬°¤F¸Ñ¨M»Ýn¤@Ó¸ÑĶª©¥»ªº°ÝÃD¡A¥[¤W¤F ¤@Ó·s¦r¡y.(¡z¡C¥O¤H°ª¿³ªº¬O¡A¦³¤F³o¨âÓ¦r¡A§ÚÌ´N¥i¥HÅýµü¨å¨Ó°µ¨M©w¡C ¦r¡y'¡z(tick)¤]¦³Ãþ¦üªº¾ú¥v¡C¦bFIGªº²Å¦¡ª©¥»¸Ì¡A¥¦¬O¨Ì STATE ¨M©w¡A²{¦b¤w ¸g¦b83¼Ð·Ç¸Ì³Q©w¸q¦¨¤@Ӳ¦r¡C¡y '¡z ©M¡y."¡zªº¦@¦PÂI¬O¡Aµ{¦¡³]p®v¯à°÷¦b¸û°ª ¼hªº©w¸q¤¤¨Ï¥Î¥¦Ì¡A¦Ó¥¦Ì¤]·|ªí²{ªº¦p¦P¥¿±`ªº±¡ªp¤@¼Ë¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¡yASCII¡z¬OÓ¨Ì STATE ¨M©w¦æ¬°¡A¦Ó¤S¯à¤u§@ªº«Ü¦nªº¤@Ó¦r¡AMAKE ¤]¬O¡C¡]°Ñ¬Ý ªþ¿ýC¡^±ø¥óªº±_ª¬¤Æ©M¦X¨Ö¡]Nesting and Combining Conditions¡^
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ½Ð¬Ý³oÓ¨Ò¤l¡G : PROCESS-KEY
KEY DUP LEFT-ARROW = IF CURSOR-LEFT THEN
DUP RIGHT-ARROW = IF CURSOR-RIGHT THEN
DUP UP-ARROW = IF CURSOR-UP THEN
DOWN-ARROW = IF CURSOR-DOWN THEN ;
³oÓª©¥»ªº®Ä²v«Ü®t¡A¦]¬°¤£½×¨ä¤¤þ¤@Ó±¡ªp¥X²{¡A³£¥²»Ý°µ¥þ³¡¥|ºØ´ú¸Õ¡C¨ä¹ê ¡A¦pªG¬O¥ª½b¸¹³Q«ö¤U¡A´N¤£»Ýn¦A°µ¨ä¥¦ªº«öÁäÀˬd¡C ´«¤@ºØ¤èªk¡A§A¥i±N±ø¥ó±_¤Æ¡A¹³³o¼Ë¡G : PROCESS-KEY
KEY DUP LEFT-ARROW = IF CURSOR-LEFT ELSE
DUP RIGHT-ARROW = IF CURSOR-RIGHT ELSE
DUP UP-ARROW = IF CURSOR-UP ELSE
CURSOR-DOWN
THEN THEN THEN DROP ;
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ³\¦hÂù±_ª¬ªº¡y¦pªG µM«á¡zµ²ºc¡A¥i¥H¦b°µ¨M©w«e¡A¥ý§Q¥ÎÅÞ¿è¾Þ§@¤¸§âºX¼Ð¦X¨Ö¡A¨Ó ¹F¨ì²¤Æªº¥Ø¦a¡C¤U±¬O¤@ÓÂù±_ª¬ªº´ú¸Õ¡G : ?§ä¼Ö¤l ¬P´Á¤»? ¦pªG
¤u§@ §¹¦¨¤F? ¦pªG ¥h®b·| µM«á µM«á ;
³oÓ¨Ò¤l¤¤¨Ï¥Î¤F±_ª¬ªº¡y¦pªG¡z¡A¦b¥X¥h§ä¼Ö¤l«e¡A¥ý½T©w¬O¬P´Á¤»¡A¨Ã¥B¤u§@¤w°µ§¹ ¤F¡C´«¥t¥~¤@ºØ¤èªk¡AÅý§ÚÌ¥ý±N±ø¥ó"ÅÞ¿è¦a"¦X¨Ö°_¨Ó¡AµM«á¥u°µ¤@Ó¨M©w¡G : ?§ä¼Ö¤l ¬P´Á¤»? ¤u§@ §¹¦¨¤F? ¦Ó¥B ¦pªG ¥h®b·| µM«á ; ³o¼Ë²³æ¦h¤F¡A¨Ã¥B¤]¸û¦³¥iŪ©Ê¡C ÅÞ¿è¤W"OR"ªºª¬ªp¡A¦pªG¨Ï¥Î¦hÓ¡yIF THEN¡z¨Ó¹ê²{¡A·|§óÃø¬Ý¡G : ?RISE PHONE RINGS? IF UP GET THEN
ALARM-CLOCK RINGS? IF UP GET THEN ;
¼g¦¨¤U±³o¼Ë¡A¥i¯à·|¤ñ¸û¦n¨Ç¡G : ?RISE PHONE RINGS? ALARM RINGS? OR IF UP GET THEN ; ³oÓ³W«hªº¨Ò¥~¤§¤@¬O¡A·í¦³¨Ç±ø¥óªºÀˬd¤Óªá¶O®É¶¡¡A¦Ó³y¦¨°õ¦æ³t«×ªº·l¥¢¹L¤j®É¡C §ÚÌ¥i¥H¼g¦¨ : ?ª£ÄÑ ¨§ªÞ? ª£ÄÑ ¹ÃÐ? AND IF ª£ÄÑ ·Ç³Æ THEN ; ¦ý¬O¡A°²³]§ÚÌ»Ýnªá¶O«Üªøªº®É¶¡¨Ó·j´M¹ÃЪºÀɮסA¤~¯àª¾¹Dª£ÄѸ̻Ýnþ¨Ç¨ä¥¦ªº °t®Æ¡A«Ü©úÅ㪺¡A¦pªG§Ṳ́w¸g¨S¦³¨§ªÞ¡A´N®Ú¥»¨S¥²n·j´M¡C©Ò¥H¡A¼g¦¨¤U±ªº§Î¦¡ ¤ñ¸û¦³®Ä²v¡G : ?ª£ÄÑ ¨§ªÞ? IF ª£ÄÑ ¹ÃÐ? IF ª£ÄÑ ·Ç³Æ THEN THEN ; ¦pªG¨S¦³¨§ªÞ¡A§ÚÌ´N¤£»ÝnÀˬd¹ÃСC ¥t¤@ºØ¨Ò¥~¬O¡G¦pªG¦³¥ô¦ó±ø¥ó¥i¯à¬O"¤£¬°¯u"ªº±¡ªp¡C¨º»ò¡AY¯à¥ý®ø°£³oÓ±ø¥ó ¡A§A´N¤£»Ýn¦A´ú¸Õ¨ä¥¦ªº±ø¥ó¤F¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦b"OR"ªºµ²ºc¤¤¡A¥H³oºØ¤èªk¨Ó§ï¶i©Ê¯à¡A·|§xÃø¨Ç¡C¨Ò¦p¡A¦b©w¸q¸Ì : ?RISE PHONE RINGS? ALARM RINGS? OR IF UP GET THEN ; §ÚÌ´ú¸Õ¹q¸Ü©M¾xÄÁ¡A¥un¨ä¤¤¤@ÓÅT¤F¡A§ÚÌ´N°_¨Ó¡C²{¦b°²³]¾xÄÁªºÅTÁn¤ñ¸û¤£®e ©ö´ú¸Õ¡A§ÚÌ¥i¥H¼g¦¨ : ?RISE PHONE RINGS? IF UP GET ELSE
ALARM-CLOCK RINGS? IF UP GET THEN THEN ;
¦pªG²Ä¤@Ó±ø¥ó¬°¯u¡A§ÚÌ´N¤£¥²®ö¶O®É¶¡µû¦ô²Ä¤GÓ¡C¤Ï¥¿§ÚÌn°_¨Ó±µ¹q¸Ü¡C ¡yUP
GET¡z«½Æ¥X²{¬O«ÜÃø¬Ý¡A¤ñ¥Î¡yOR¡zªº¥iŪ©ÊÁÙn®t¡A¦ý¦³®ÉÁÙ¬O«D¥Î¤£¥i¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ª¬ªp±Ôz¡]Case statement¡^ ¦³¤@Ãþ¯S®í°ÝÃD¬O¡G±q´XºØ¥i¯àªº°õ¦æ¸ô®|¤¤¡A¨Ì·Ó¤@Ó¼ÆÈ¤Þ¼Æ¡A±q¤¤¿ï¾Ü¤@ºØ¨Ó°õ ¦æ¡C¨Ò¦p¡AY§ÚÌn¦r¡y.SUIT¡z¯à¥Ñ¤@Ó¥Nªí¾ë§JµPªá¦âªº¼ÆÈ0¨ì3¡A¦L¥X³oÓªá¦â ªº¦WºÙ¡C§ÚÌ¥i¥H¨Ï¥Î±_ª¬ªº IF ELSE THEN µ²ºc¡A¹³³o¼Ë¡G : .SUIT ( suit -- )
DUP 0= IF ." HEART " ELSE
DUP 1= IF ." SPADES " ELSE
DUP 2= IF ." DIAMONDS " ELSE
." CLUBS "
THEN THEN THEN DROP ;
¦ýY¯à¨Ï¥Î"ª¬ªp±Ôz"¡A´N¥i¥H§óÀu¶®ªº¸Ñ¨M³oÓ°ÝÃD¡C¤U±¬O¨Ï¥Î"Eackerª¬ªp±Ôz" ªº®æ¦¡©Ò«¼gªº©w¸q¡C¡]¥¦¬O¥H´£¥X³oÓ¤èªkªºCharles E. Eacker³Õ¤h©Ò©R¦Wªº[1]¡^¡C : .SUIT ( suit -- )
CASE
0 OF ." HEARTS " ENDOF
1 OF ." SPADES " ENDOF
2 OF ." DIAMONDS " ENDOF
3 OF ." CLUBS " ENDOF ENDCASE ;
³oÓª¬ªp±Ôzªº»ùȦb©ó¥iŪ©Ê¤Î¥i¼g©Ê¡C¥¦¦b°O¾ÐÅ骺¨Ï¥Î©M°õ¦æ³t«×¤W¡A¨Ã¨S ¦³®Ä²v¤Wªº§ïµ½¡C¹ê»Ú¤W¡Aª¬ªp±Ôzªº½sĶ©M±_ª¬ªº IF THEN
½s½X¤jP¬Û¦P¡Cª¬ªp±Ôz ¬O½sĶ®É°Ï¤¤¦]¤l¤À¸Ñ¡]compile-time factoring¡^ªº¤@Ó¦n¨Ò¤l¡C
²Å¦¡¨t²Î³£¥²»Ý¤º«Ø¦³³oºØ"ª¬ªp±Ôz"¶Ü¡H³oˬO¦³ª§Ä³ªº¡C°ÝÃD¦b¨â¤è±¡C²Ä¤@¡A
¹ê»Ú¤W»Ýn³oºØª¬ªp±Ôzªº¨Ò¤l«Ü¤Ö¡A¤Ö¨ì§ÚÌ·|ÃhºÃ¥¦¦s¦bªº»ùÈ¡C¦pªG¥u¦³¤Ö¼Æªº±¡ ªp¡A±Ä¥Î±_ª¬ªº IF ELSE THEN
µ²ºc¡AÁöµM¥iŪ©Ê¸û®t¡A¦ý¦P¼Ë¥i¥H°µ¨ì¡C¦pªG¥X²{ªº¦¸ ¼Æ«Ü¦h¡A¤@Ó§PÂ_ªí¡]decision table¡^¥i¯à§ó¨ã¦³¼u©Ê¡C
²Ä¤G¡A³\¦h»Pª¬ªp¦³Ãöªº°ÝÃD¡A¨Ã¤£¯S§O¾A¥Î©óª¬ªpµ²ºc¡CEackerªºª¬ªp±Ôz¬O°²
³]¡G§An´ú¸Õ¤@Ó»P°ïÅ|¤Wªº¼ÆÈ¬Ûµ¥ªºª¬ªp¡C¦b¡y.SUIT¡zªº¨Ò¤l¸Ì¡A§ÚÌn´ú¸Õªº¬O
¥Ñ0¨ì3ªº³sÄò¾ã¼Æ¡C¦b³oºØ±¡§Î¤U¡A¸g¥Ñ¤Þ¼Æ¥hpºâ¥X¤@Ó°¾²¾È¡]offset¡^¡A¨Ãª½±µ¸õ ¨ì¥¿½Tªºµ{¦¡½X¤W¡A·|¤ñ¸û¦³®Ä²v¡C
¦b¥»³¹µy«áªº¤p¤p½s¿è¾¹ªº¨Ò¤l¸Ì¡A§Ṳ́£¥u¦³¤@Ó¦¸¤¸¡A¦Ó¬O¦³¨â¦¸¤¸ªº¥i¯à©Ê¡A ³o®É¡Aª¬ªp±Ôz¤]µLªk¾A¥Î¡C §ÚÓ¤H»{¬°¡Aª¬ªp±Ôz¬O¹ï©ó¤w¸g³Q±a¤Jª[³~ªº°ÝÃD
--¥ø¹Ï¥Hºtºâªk¨Óªí¹F¤@ºØ¥i ¥H¨Ï¥Î§PÂ_ªí«Ü«ê·íªº´yz¥X¨Óªº°ÝÃD-- ªº¥t¤@ºØÀu¶®ªº¸Ñ¨M¿ìªk¡C
ª¬ªp±Ôz¡A·í¯à¬£¤W¥Î³õªº®É«J¡AÀ³¸Ó¬OÀ³¥Îµ{¦¡ªº¤@³¡¥÷¡A¦Ó¤£¸Ó¬O¨t²Îªº¤@³¡¥÷ ¡C ¥¿½Tªº°j¸ôµ²ºc¥i¥H®ø°£ÃB¥~ªº±ø¥ó¡]conditionals¡^¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¦b«Ü¦h±¡ªp¡A±ø¥ó§PÂ_³Q¥Î¨Ó¸õ¥X¤@Ó°j¸ô¡C¦ý¬O¡A¦pªG¤@Ó°j¸ô¦³³\¦h¥X¤f¡A³oºØ ¯S§Oªº¥Îªk´N¯à°÷Á×§K¡C ³o¬OÓ¤´¦b°Q½×¤¤ªº¸ÜÃD¡A¦]¬°¦h«ªº WHILE
µ²ºc¤w¸g¦bpolyFORTH¨t²Î¸Ì¥X²{¡A ¥i¬OÁÙ¨S¦³³Q²Å¦¡83¼Ð·Ç±Ä¥Î¡C¨ä¹ê¡A¦b¦P¤@Ó REPEAT ¸Ì¡A©w¸q¦h«ªº WHILE ¬O¤@¥ó«Ü²³æªº¨Æ¡C
¦Ó¥B¡AFORTH Inc.ªºDean Sandersonµo©ú¤F¤@ºØ·sªºµ²ºc¡A¥i¥H¦b¤@Ó DO LOOP
¸Ì¤Þ¶i¨âÓ¥X¤f¡C³oºØµ²ºc¥u»Ý¥Î¨ì«Ü¤Öªº§PÂ_¡C§Ú¸g±`¥ý¦b°ïÅ|¤W¯d¤U¤@Ó"¯u" ºX¼Ð¡A¦pªG§Ú´£¦Â÷¶}°j¸ô¡A´N§ïÅܺX¼Ð¨Óªí¥Ü³oÂI¡Cµy«á¡A§Ú¦A¥Î¤@Ó IF ¨Ó
¬Ý¬Ý§Ú¬O§_´£«eÂ÷¶}¤F°j¸ô¡A³oºØ¤èªk¹ê¦b«Ü²Â¡C ¤@¦ý§A°µ¤F¤@Ó§PÂ_¡A´N¤£À³¸Ó¦A°µ¥¦¤@¦¸¡C¦pªG°j¸ôªºµ²ºc³Q³]pªº«Ü«ê·í¡A
§A´N¤£»Ýn°O¦í§A¬O±q¨º¸Ì¨Óªº¡A¦]¦¹¡A¤]´N¤£»Ýn¸ò¦b«á±ªº¨º¨Ç±ø¥ó§PÂ_¤F¡C ³oºØ¤èªkÁÙ¤£¬O«Ü¬y¦æ¡A¦]¬°¥¦ÁÙ¨S¦³³Qµ²ºc¤Æ¡C©ÎªÌ»¡¡A¥¦ªºµ²ºcÁÙ¤£°÷ºë±K¡C
¥¦ªº»ùȦb©ó¡A§A¥i¥H±o¨ì¸û²³æªºµ{¦¡¦Ó¤£¥²¥I¥X¥N»ù¡C ¤£¿ù¡A³o¬OÓ°Q½×¤¤ªº¸ÜÃD¡C¥H¥¦¥Ø«eªº¼gªk¨Ó¬Ý¡A«ØÄ³±Ä¥Î¥¦°µ¬°·sªº°j¸ôµ²ºc¡A¬°®É ©|¦¡C§A¥i¥H¬d¬Ý§A¨t²Îªº¨Ï¥Î¤â¥U¡A¬Ý¬Ý¥¦¬O§_´£¨Ñ¤F¤@¨ÇÀu¨}ªº°j¸ôµ²ºc¡C©ÎªÌ¡A ¨Ì§AÀ³¥Î¤Wªº»Ýn¡A¦Ò¼{¥[¶i¦Û¤vªº±ø¥óµ²ºc¡C¦b²Å¦¡¸Ì¡A³o¨Ã«D¤@¥óÃø¨Æ¡C §Ú¬Æ¦Ü¤]ÁÙ¤£½T©w¡A¨Ï¥Î³oºØ¦h¥X¤fªº¤è¦¡¡A¬O§_¹H¤Ïµ²ºc¤Æµ{¦¡ªºì«h¡C¦b¤@Ó BEGIN WHILE REPEAT ªº°j¸ô¸Ì¡A¨Ï¥Î¦hÓ WHILE¡A©Ò¦³ªº¥X¤f³£±N§A±a¨ì¤@Ó¦@¦Pªº "Ä~Äò"ÂI¡G§Y REPEAT¡C¦ý¬O¦bSandersonªºµ²ºc¤¤¡A§A¥i¥H¶¹L°j¸ôªº²×ÂI¡Aª½±µ¸õ ¥X°j¸ô¡A¨ì ELSE "Ä~Äò"¡C©Ò¥H¥¦¦³¨âÓ¥i¯àªº"Ä~Äò"ÂI¡C §ÚÌ¥i¥H»¡³oºØ¤èªk"¤£°÷µ²ºc¤Æ"¡C¦ý¬O¡A³oÓ©w¸q¤@©w·|±q¤À¸¹Â÷¶}¡A¨Ã¥B¦^ ¨ì©I¥s¥¦ªº¦r¤º¡C±q¼Ò²Õ¥u¦³¤@Ó¤J¤f©M¤@Ó¥X¤fªºÆ[ÂI¨Ó¬Ý¡A¥¦¤´¬O¨}¦nªºµ²ºc¤Æ¡C ·í§An°õ¦æ¤@¬q¯S©wªºµ{¦¡½X¡A¦Ó¤£·Q¶TµM¦aÂ÷¶}°j¸ô¡A³oºØ¤èªk¦ü¥G¬O¤@ºØ³Ì¦ÛµM ªº¥i¥Îµ²ºc¡C(µy«á¤@¸`"¨Ï¥Îµ²ºc¤Æªº¥X¤f"¡A§ÚÌ¥i¥H¬Ý¨ì¤@Ó¨Ò¤l¡C)
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ²Å¦¡¬O¥H"¦b²Ä¤@Ó¦r¤¸³B¦s¤J¦r¦êªø«×"ªº¤è¦¡¨Ó³B²z¤@Ó¦r¦ê¡C³oºØ¤è¦¡¨Ï¦r¦ê¸û®e©ö ³QÅã¥Ü¡B·h²¾¡B©Î°µ¥ô¦ó¨Æ¡C·í¦a§}©Mªø«×³£³Q©ñ¦b°ïÅ|¤W®É¡ATYPE ªº©w¸q´N¯à¼g¦¨¡G : TYPE ( a # --) OVER + SWAP DO I C@ EMIT LOOP ; ¡]ÁöµM TYPE ¹ê¦b¬OÀ³¸Ó¥H²Õ¦X»y¨¥¨Ó©w¸qªº¡C¡^ ³oÓ©w¸q¨Ã¨S¦³©úÅ㪺¨Ï¥Î±ø¥ó±Ôz¡C¹ê»Ú¤W¡A¬O LOOP ±N±ø¥óÁôÂäF¡A¦]¬°¥¦¦b ¨C¦¸°j¸ô®É¡A³£·|Àˬd¯Á¤ÞÈ¡A¦pªGÁÙ¨S¦³¨ì¹F¤W¡A´N¦^¨ì DO ¦A¨Ó¡C ¦pªG¨Ï¥Î¤À¬É²Å¸¹¡]delimiter¡^¡A¹³¬OASCII¤¤ªº"null"¡A«h¦¹©w¸q¥²»Ý¼g¦¨¡G : TYPE ( a -- ) BEGIN DUP C@ ?DUP WHILE EMIT 1+ REPEAT DROP ; ¨C¦¸¸g¹L°j¸ô®É¡A³£»Ýn¦A°µ¤@¦¸ÃB¥~ªº§PÂ_¡C¡] WHILE ¬O¤@Ó±ø¥ó¾Þ§@¤¸¡C¡^ ª`·N¡G±q³Ì¨Î¤ÆªºÆ[ÂI¨Ó¬Ý¡A³oӸѨM¤èªk¸Ì¡A¨Ï¥Î¡y?DUP¡zªº¥N»ù«Ü°ª¡A¦]¬°¥¦ ¥»¨´N¥]§t¤F¤@ÓÃB¥~ªº§PÂ_¡C¤@Ó°õ¦æªº¸û§Öªº©w¸q¬O¡G : TYPE ( a -- ) BEGIN DUP C@ DUP WHILE EMIT 1+ REPEAT 2DROP ;
¦b83¦~ªº¼Ð·Ç¸Ìªº¡yINTERPRET¡z¨Ï¥Î¤F³oÓì²z¡A²{¦b¥¦±µ¨ü¤@Óp¼Æ¡A¦Ó¤£¦A¥h´M§ä ¤@Ó²×µ²²Å¸¹¡C
¥t¤@ºØ°µªk¬O¡A¨Ï¥Î¤@ºØ³Ì®e©ö±Nµ²ºc³sµ²¡]link¡^°_¨Óªº¸ê®Æµ²ºc¡C¨C¤@Ó°O¿ý
³£«üµÛ¤U¤@Ó¡]©Î«e¤@Ó¡^°O¿ý¡C¦êÃ쪺³Ì«á¤@Ó¡]©Î²Ä¤@Ó¡^°O¿ý¥i¥H¦b¥¦ªº³sµ²Äæ¦ì ¡]link field¡^¤º¶ñ¤J¤@Ó¹s¨Óªí¥Ü¡C
¦pªG§A¦³¤@Ó³sµ²Äæ¦ì¡A§AµL½×¦p¦óÁ`¬On±N¥¦ªº¤º®e¨ú¥Xªº¡C§A©Î³\¦P®É¤]n´ú ¸Õ¥¦¬O§_¬°¹s¡C§A¤£¥²«O¦³¤@Óp¼Æ¨Ó°O¿ý¥¦¦³´XÓ¡C¡]³oºØ§Þ³N³Q¨Ï¥Î¦b²Å¦¡µü¨å¤W¡A
¥Î¨Ó«Øºc¤@Ó³sµ²ªº¦Cªí¡C¡^¦pªG§A¨Ï¥Î"±Np¼ÆÈ»¼´î¥H¨M©w¬O§_n²×¤î"ªº°µªk¡A §A¥u¬O´À¦Û¤v§ä§ó¦hªº¤u§@½}¤F¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦b«Ü¦h®ÉÔ¡A±ø¥ó±±¨îµ²ºc³Q»~¥Î¦b¤@¨Ç±¡ªp¤¤¡A¨ä¤¤¡A¿é¥X¤Wªº®t²§¥u¬O¥Ñ©ó¼ÆÈ¤W ªº¤£¦P©Ò³y¦¨¡C¦pªG³B²z¤¤¯A¤Î¨ì¼ÆÈ¡A§ÚÌ´N¥i¥H¥Îpºâªº¡C¡]°Ñ¾\²Ä¥|³¹¡A"pºâ vs. ¸ê®Æµ²ºc vs. ÅÞ¿è"¤@¸`¡C¡^
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ³o¬O«e¤@Ó´£¥Ü¡u¤£n§PÂ_¡Anpºâ¡vªº¦ÛµMµ²ªG¡C¥¦ªº«ÂI¬O¡A¦b¹q¸£¤º³¡¥H¼ÆÈ©Ò ªí¥Üªº¥¬ªLÈ¡A¥i¥H³Q«Ü¦³®Ä¦a¥Î¨Ó¼vÅT¼Æ¥Øªº¨M©w¡C³o¸Ì¦³¤@Ó¦b³\¦h²Å¦¡¨t²Î¤¤ ³£¥i¨£¨ìªº¨Ò¤l¡G : S>D ( n -- d ) \ sign extend s to d
DUP 0< IF -1 ELSE 0 THEN ;
¡]³oÓ©w¸q¬O¥Î¨Ó±N¤@Ó³æªø«×ªº¼ÆÈÂàÅܦ¨Âùªø«×¡CÂùªø«×ªº¾ã¼Æ¬O¥H°ïÅ|¸Ìªº¨âÓ ¤¸¯À¨Óªí¥Ü¡A°ª¦ì³¡¥÷¡]high-order part¡^¦b¤W¤è¡Cn±N¤@Ó¥¿Èªº³æ¾ã¼ÆÂàÅܦ¨ Âùªø«×¡A¯n¦b°ïÅ|¤W©ñ¤@Ó¹s¡A¥Nªí¥¦ªº°ª¦ì³¡¥÷§Y¥i¡C¦ý¬OÂàÅܤ@Ót¼Æ¬°Âùªø«× ¡A«h»Ýn°µ"²Å¸¹©µ¦ù"¡G¤]´N¬O¡A°ª¦ì³¡¥÷¥²»Ý³£¬O1¡C¡^ ¤W±ªº©w¸q·|¥ý´ú¸Õ³æªø«×¼ÆÈ¬O§_¬°tÈ¡C¦pªG¬O¡A¥¦´N±N -1°ï¤J°ïÅ|¡F§_«h ´N°ï¤J¤@Ó0¡C ¦ý¬Oª`·N¡A¥¦ªºµ²ªG¥u¬O¯Âºâ³Nªº¡A¨Ã¥½¯A¤Îµ{§Ç¤WªºÅܤơC§ÚÌ¥i¥H§Q¥Î³oÓ¯S ©Ê¡A±q¥¬ªLÈ¥»¨Àò±o¯q³B¡G : S>D ( n -- d ) \ sign extend s to d
DUP 0< ;
³oÓª©¥»¤]¬O±N -1 ©Î 0 °ï¤J°ïÅ|¡A¦ý«o¤£¦b§PÂ_¤W®ö¶O¤@ÂI®É¶¡¡C ¡]¦b1983¦~¤§«eªº¨t²Î¡A©w¸q¥i¥H¬O¡G : S>D ( n -- d ) \ sign extend s to d
DUP 0< NEGATIVE ;
°Ñ¬Ýªþ¿ýC¡^ §ÚÌ¥i¥H§Q¥Î"½Æ¦X¼ÆÈ"°µ§ó¦hªº¨Æ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦b²£¥Í"0"©Î«D¹sÈ"n"ªº§PÂ_¸Ì¡A¶Ç²Îªº¤ù»y ( ? ) IF n ELSE 0 THEN µ¥©ó¤U±¸û²³æªº±Ôz ( ? ) n AND ¤S¤@¦¸¡A³Z¬¬O¦b¡G "¯u"ºX¼Ð¦b1983¦~ªº²Å¦¡¨t²Î¸Ì¬O¥H -1 (¨CӦ줸³£¬O1) ªí¥Ü¡C ±N"n"»P¤@ÓºX¼Ð°µ AND¡A±N²£¥Í"n"¡]©Ò¦³ªº¦ì¤¸³£¤£¨ü¼vÅT¡^¡A©Î"0"¡]©Ò¦³ªº¦ì¤¸³£ ³Q²M°£¬°0¡^¡C ¥H¤@Ó¨Ò¤l¨Ó¼á²M³oÓÆ[ÂI¡G ( ? ) IF 200 ELSE 0 THEN ¥¦»P¤UÓ«ü¥O¬O¤@¼Ëªº ( ? ) 200 AND ¬Ý¤@¬Ý³oÓ¨Ò¤l¡G n a b < IF 45 + THEN §â"n¥[45"©ÎªÌ¤£¥[ªº¤ù»y¡A¬O¨Ìa©Mbªº¬Û¹ï¤j¤p©Ò¨M©wªº¡C¦]¬°¡u¥[45©Î¤£¥[¡v»P¡u¥[ 45©Î¥[¹s¡v¬O¤@¼Ëªº¡A¨âºØµ²ªGªº®t²§¬O¯Â¼ÆÈªº¡C©Ò¥H§Ú̯ण°µ§PÂ_¡A¥upºâ¡G n a b < 45 AND +
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¡y45 AND¡z¬O¤ñ IF §Ö¡A·íµM¤ñ¸û¦n¡C¤]¤ñ¸û²³æ¡C¦pªG§A¾i¦¨²ßºD¡A¹ï±q¤@Ó ¼Æ¥Øpºâ±o¨ì¥t¤@ӼƥخɡA³£¥hª`·N¥¦¡C¨º»ò¡A³q±`§A³£¯à°÷¥H¹ïÅÞ¿èȰµºâ³N ¹Bºâªº¤è¦¡¡A±o¨ì¬Û¦P¦Ó¤S¤ñ¸û²M·¡ªºµ²ªG¡C §Ú¤£ª¾¹D§A¥s¥¦¤°»ò¡C¥¦ÁÙ¨S¦³¦W¦r¡F³o¥u¬O¥H"ÅÞ¿èÈ"¨Ó¶i¦æºâ³N¹Bºâ¡C¦ý¬O¥¦«D ±`¦³»ùÈ¡A¦Ó¥BÁ`¦³¤@¤Ñ¡A¥¬ªL¥N¼Æ©Mºâ¼Æªººâ¦¡³£±N·|¥Î¨ì¥¦¡C ¦b¤@¨Ç®Ñ¤¤¡A§A¸g±`¥i¥H¬Ý¨ì«Ü¦h¤À¬q¦¡½u©ÊÅXªñªk¡]piece-wise linear approxi -mations¡^ªººâ¦¡¡A¥i¬O¥¦Ì¦bªí¹F¤W³£¨Ã¤£«Ü²M´·¡C¤U±¬O¨âÓ¨Ò¤l¡G x = 0 for t < 0
x = 1 for t ?0
³o¨âÓ¦¡¤l»P¤U¤@Ó¬Û¦P t 0< 1 AND
¥¦¥i¥H¥Î¤@¥y¸Ü´Nªí¥Ü²M·¡¡A¦Ó¤£¥²¨Ï¥Î¤À¬qªº¤è¦¡¡C
§ÚºÙ³o¨ÇºX¼Ð¬O"½Æ¦X¼ÆÈ"¡A¦]¬°¥¦Ì¬O¥¬ªLÈ¡]¯u°²È¡^¥H¸ê®Æ¡]¼ÆÈ¡^ªº¤è¦¡³Q¨Ï¥Î µÛ¡C§Ú¤£ª¾¹DÁÙ¦³¤°»ò¨ä¥¦ªº¦W¦r¥i¥HºÙ©I¥¦¡C ¦pªG§Ú̯à±N¨âºØµ²ªG¤§¶¡ªº®tȤÀ¸Ñ¥X¨Ó¡A´N¥i¥H¬Ù²¤ ELSE ªº³¡¥÷¡C¨Ò¦p¡G : STEPPERS 'TESTING? @ IF 151 ELSE 150 THEN LOAD ; ¥i¥H²¤Æ¬° : STEPPERS 150 'TESTING? @ 1 AND + LOAD ; ³oºØ¤èªk¦b¦¹³B¤§©Ò¥H¥i¦æ¡A¬O¦]¬°§Ú̬On¸ü¤J²Ä150¾¡A©ÎªÌ¡A·í¦b´ú¸Õªº®ÉÔ¡A ¸ü¤J¥¦ªº¤U¤@¾¡C
³oÃþ¤èªk³q±`³Q«a¤W"¨ú¥©"¤§¦W¡C¦b¤j«¬¹q¸£¤u·~¸Ì¡A"¨ú¥©"¦³ÓÃa¦WÁn¡C ¨ú¥©¡A²³æªº»¡¡A´N¬O§Q¥Î¬Y¤@ºØ¹B§@¤Wªº¯S©Ê¡C¦b¤uµ{À³¥Î¸Ì¡A"¨ú¥©"¬O³Q¼s ¬°¨Ï¥Îªº¡CChimneys§Q¥Î¼ö¤É§N°ªº¨Æ¹ê®ø°£¤F·ÏÃú¡C¨T¨®½üL§Q¥Î¤F«¤O²£¥Íªº¿iÀ¿ ¡Cºâ¼ÆÅÞ¿è³æ¤¸¡]Arthmetic Logic Units¡^§Q¥Î"´î¤@Ӽƥث굥©ó¥[¤W¥¦ªº2ªº¸É¼Æ" ªº³oӨƹê¨Ó°µ¹Bºâ¡C ³oºØ¨ú¥©¥i¥H¨Ï³]pÅܪº§ó²³æ©M§ó¦³®Ä²v¡C¥un¥¦©Ò°²³]ªº«eÃD¤@ª½¬°¯u¡A¥¦´N ¯à°÷µo´§¥\¯à¡C ¦pªG¨ú¥©ªºµ²ªG¥²»Ý¨Ì¾a¨ä¥¦¸g±`Åܰʪº¨Æ¶µ¡A©ÎªÌ¥¦©Ò¨Ì¾aªº¨Æ¶µ¨S¦³³Q¸ê°TÁôÂà ªº°µªk©Ò«OÅ@¡A¨º»ò¡A¨Ï¥Î¨ú¥©´N·|Åܪº«Ü¦MÀI¡C ¨Ã¥B¡A·í¥¦©Ò®Ú¾Úªº°²³]¤£®e©ö³QÁA¸Ñ¡A©Î¨S¦³³Q¸ÑÄÀ²M·¡¡A«h³o¨Ç¨ú¥©·|Åܱo«ÜÃø ¾\Ū¡C¦b±N±ø¥ó¥H AND ¥N´«ªº¨Ò¤l¸Ì¡A¤@¦ý³oºØ§Þ¥©Åܦ¨¨C¤@Óµ{¦¡³]p®vµü¨åªº¤@³¡ ¥÷®É¡Aµ{¦¡½X±N·|Åܱo¤ñ¸û®e©ö¾\Ū¡C¦b¤@Ó¯S©wÀ³¥Î¤¤ªº¤@Ó¯S©wªº¨ú¥©¡A¨Ò¦p§Q¥Î¨ì ¸ê®Æ¦b¤@Óªí¸Ìªº¶¶§ÇÃö«Y¡A¨º»ò¡A³oÓ¨ú¥©©Ò¥Î¨ìªº°²³]¡A´N¥²»Ý³Q²M·¡¦a»¡©ú¦bµ{¦¡ ªº¤å¥ó¤¤¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w °²³]§ÚÌn»¼´îÅÜ¼Æ VALUE ªº¤º®e¡A¦ý¬O¤£n¨Ï¥¦¤p©ó¹s¡G -1 VALUE +! VALUE @ -1 = IF 0 VALUE ! THEN ¼g¦¨³o¼Ë·|§ó²³æ¡G VALUE @ 1- 0 MAX VALUE ! ³oÓ¨Ò¤l¸Ì¡A"±ø¥ó"³Q¤À¸Ñ¨ì¦r MAX ¸Ì¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
§Ú̦b²Ä¤G³¹¤¶²Ð¹L¥¦¡C§PÂ_ªí¬O¤@ºØ¥]§t¸ê®Æ¡]¸ê®Æªí¡^©Î¥\¯à¦a§}¡]¥\¯àªí¡^ªºµ²ºc
¡A¨Ì¥ô·Nªº¦¸¤¸¨Ó¦w±Æ¡C¨C¤@¦¸¤¸¥Nªí°ÝÃDªº¤@Ó¯S©w±ªº©Ò¦³¥i¯àªº¡B¤¬¥¸ªºª¬ºA¡C¦b
¨C¤@¦¸¤¸¬°"¯u"ª¬ºAªº¥æ¶°³B¡A¦s©ñµÛ©Ò´Á±æªº¤¸¯À¡G¤@¶µ¸ê®Æ©Î¤@Ón³Q°õ¦æªº¥\¯à¡C ·í°ÝÃD¦³¦hÓ¦¸¤¸®É¡A§PÂ_ªí«Ü©úÅã¦a¬O¤@ºØ¤ñ±ø¥óµ²ºc§ó¦nªº¿ï¾Ü¡C ³o¸Ì¬O¤@Ó²³æªº³æ¦¸¤¸¸ê®Æªíªº¨Ò¤l¡C§Ú̪ºÀ³¥Î¸Ì¦³¤@ÓºÙ¬° FREEWAY? ªººX¼Ð¡A ·í§Ṵ́ѦҨ쪺¬O§Ö³t¹D¸ô®É¡A¥¦´N¬O¯u¡C°Ñ¦ÒªºY¬O¥«°Ï¹D¸ô®É¡A¥¦´N¬O°²¡C Åý§ÚÌ©w¸q¥X SPEED-LIMIT ³oÓ¦r¡A¥¦·|¨Ì¥Ø«eªºª¬ªp¡A°e¦^¹D¸ôªº³t«×¨î¡C¨Ï ¥Î IF THEN ¡A§Ú̯à¼g¥X¡G : SPEED-LIMIT ( -- speed-limit )
'FREEWAY? @ IF 55 ELSE 25 THEN ;
§ÚÌ¥i¥H¨Ï¥Î¤@ӽƦX¼ÆÈ©M AND ¥H¬Ù²¤ IF THEN : SPEED-LIMIT 25 'FREEWAY? @ 30 AND + ; ¦ý¬O³oÓ¤èªk¨Ã¤£²Å¦X°ÝÃDªºÆ[©À¤Wªº¼Ò«¬¡A©Ò¥H¥¦¨Ã¤£®e©ö¾\Ū¡C Åý§ÚÌ¸Õ¸Õ¸ê®Æªí¡C³o¬O¤@ӳ榸¤¸ªºªí¡A¥u¦³¨âÓ¤¸¯À¡A¨S¤°»òªF¦è¡G CREATE LIMITS 25 , 55 , ¦r SPEED-LIMIT? ²{¦b¥²»Ý¨Ï¥Î¥¬ªLȨÓÀò±oªí¤¤ªº¸ê®Æ¡G : SPEED-LIMIT ( -- speed-limit )
LIMITS 'FREEWAY? @ 2 AND + @ ;
¤ñ°_ IF THEN ªº¤èªk¨Ó¡A§Ú̦³¨S¦³±o¨ì¥ô¦ó¦n³B¡H®£©È¨S¦³¡A¦]¬°³oÓ°ÝÃD¤Ó²³æ¡C µM¦Ó¡A§Ú̩Ұµªº¬O¡F±q"¸ê®Æ¥»¨"¤À¸Ñ¥X"§PÂ_ªºµ{§Ç"¡C·í§Ú̦³¤@²Õ¥H¤Wªº ¸ê®Æ»P¦P¤@Ó§PÂ_¦³Ãö®É¡A³oºØ¤èªk´N·|Å㪺¸û¦³®Ä²v¡C°²³]§Ṳ́]¦³ CREATE #LANES 4 , 10 , ¥Nªí¤@±ø¥«°Ï¹D¸ô©M¤@±ø§Ö³t¹D¸ôªº«Ñ¹D¼Æ¥Ø¡C§ÚÌ¥i¥H¨Ï¥Î¬Û¦Pªºµ{¦¡½X¡A¨Ópºâ ¥Ø«e«Ñ¹Dªº¼Æ¥Ø¡G : #LANES? ( -- #lanes )
#LANES 'FREEWAY? @ 2 AND + @ ;
¨Ï¥Î¤À¸Ñ¦]¤lªº§Þ³N¡A§Ú̯à±N¥¦Â²¤Æ¦¨¡G : ROAD ( for-freeway for-city -- ) CREATE , ,
DOES> ( -- data ) 'FREEWAY? @ 2 AND + @ ;
55 25 ROAD SPEED-LIMIT
10 4 ROAD #LANES?
"³æ¦¸¤¸¸ê®Æªí"ªº¥t¤@Ó¨Ò¤l¬O"¶W¯Å¦r¦ê"¡]°Ñ¬ÝStarting FORTH ªº²Ä¤Q³¹¡^¡C
²Ä¤G³¹¸Ì¡A§Ṳ́¶²Ð¤F¤@Ó¹q¸Ü¶O²vªº°ÝÃD¡C¹Ï8-4¬O³oÓ°ÝÃDªº¤@ºØ¸Ñ¨M¤èªk¡A ¥¦¨Ï¥Î¤F¤G¦¸¤¸ªº¸ê®Æµ²ºc¡C ¦b³oÓ°ÝÃD¸Ì¡A¸ê®Æªíªº¨C¤@¦¸¤¸³£¬O¥Ñ¤TÓ¤¬¥¸ªºª¬ºA©Ò²Õ¦¨¡C©Ò¥H¡A¤@Ó²³æªº ¥¬ªLÈ¡]¯u¡þ°²¡^¨Ã¤£¦X¾A¡C³oÓ°ÝÃDªº¨C¤@¦¸¤¸³£¥H¤£¦Pªº¤èªk¨Ó¹ê²{¡C ¨Ì¤@¤Ñ¤¤ªº®É¬q©Ò¨M©wªº¶O²vªí¡A³Q·í¦¨¬O¤@Ó¦a§}¦ÓÀx¦sµÛ¡A¥Nªí¤TºØ¶O²vµ² ºc°Æªí¤¤ªº¤@Ó¡C§ÚÌ¥i¥H»¡ FULL RATE ! ©Î LOWER RATE ! µ¥µ¥¡C ¹Ï8-4. ¹q¸Ü¶O²v°ÝÃDªº¤@ӸѨM¤èªk \ ~FBBB1;¹q¸Ü¶O²v
CREATE FULL 30 , 20 , 12 ,
CREATE LOWER 22 , 15 , 10 ,
CREATE LOWEST 12 , 9 , 6 ,
VARIABLE RATE \ ~FBBB1;¨Ì¤@¤Ñ¸Ìªº®É¬q¦Ó«ü¦b FULL¡BLOWER ~FBBB1;©Î~I; LOWEST
FULL RATE ! \ ~FBBB1;¤@Ó¨Ò¤l
: CHARGE ( 0 -- ) CREATE ,
DOES> ( -- rate ) @ RATE @ + @ ;
0 CHARGE 1MINUTE \ ~FBBB1;²Ä¤@¤ÀÄÁªº¦¬¶O
2 CHARGE +MINUTE \ ~FBBB1;«áÄò¨C¤ÀÄÁªº¶O²v
4 CHARGE /MILES \ ~FBBB1;¨C¤ÀÄÁ¨C¦Êùªº¶O²v
VARIABLE OPERATOR? \ ~FBBB1;¦pªG¸g¥Ñ±µ½u¥Í¨ó§U, ¥¦ªºÈ¬O90 ; ~FBBB1;§_«h¬O0
VARIABLE #MILES \ ~FBBB1;³q¸Ü¶ZÂ÷ªº¦Êù¼Æ~I;
: ?ASSISTANCE ( ~FBBB1;²Ä¤@¤ÀÄÁªº³s½u¶O¥Î -- ¥[¤W±µ½u¥Íªº¶O¥Î~I; )
OPERATOR? @ + ;
: MILEAGE ( -- charge ) #MILES @ /MILES * ;
: FIRST ( -- charge ) 1MINITE ?ASSISTANCE MILEAGE + ;
: ADDITIONAL ( -- charge ) +MINUTES MILEAGE + ;
: TOTAL ( #minutes -- total charge ) 1- ADDITIONAL * FIRST + ;
¥Ø«eªº¦¬¶O¡A¤£½×¬O²Ä¤@¤ÀÄÁ¡B¥H«áªº¨C¤@¤ÀÄÁ¡B©Î¨C^ù¡A¦bªí¤º³£¬O¥H¤@Ӧ첾ȨӪí¥Ü¡]0, 2, ©Î 4¡^¡C ¡@ ¤Gºû§PÂ_ªí Åý§Ú̦^¨ì²Ä¤T³¹ªº¤p¤p½s¿è¾¹¡A¥H¥¦¬°¨Ò¤l¨Ó»¡©ú¤Gºû§PÂ_ªíªº¨Ï¥Î¡C ¹Ï8-5 ¤p¤p½s¿è¾¹ªºÀ³¥Î \ ~FBBB1;¤p¤p½s¿è¾¹
2 CONSTANT NORMAL \ offset in FUNCTIONS
4 CONSTANT INSERTING \ "
6 CONSTANT /KEY \ byte in table for each key
VARIABLE MODE# \ current offset into table
NORMAL MODE# !
: INSERT-OFF NORMAL MODE# ! ;
: INSERT-ON INSERTING MODE# ! ;
VARIABLE ESCAPE? \ t=time-to-leave-loop
: ESCAPE TRUE ESCAPE? ! ;
\ ~FBBB1;«Ø³y¥\¯àªí~I;
: IS ' , ; \ function ( -- ) ( for '83 standard )
CREATE FUNCTIONS
\ keys normal mode insert mode
4 , ( ctl-D ) IS DELETE IS INSERT-OFF
9 , ( ctl-I ) IS INSERT-ON IS INSERT-OFF
8 , ( backspace) IS BACKWARD IS INSERT<
60 , ( left arrow) IS BACKWARD IS INSERT-OFF
62 , ( right arrow) IS FORWARD IS INSERT-OFF
27 , ( return ) IS ESCAPE IS INSERT-OFF
0 , ( no match ) IS OVERWRITE IS INSERT
HERE /KEY - CONSTANT 'NOMATCH \ adr of no-match key
VARIABLE MATCHED
: 'FUNCTION ( key -- adr-of-match ) 'NOMATCH MATCHED !
'NOMATCH FUNCTIONS DO DUP I @ = IF
I MATCHED ! LEAVE THEN /KEY +LOOP DROP
MATCHED @ ;
: ACTION ( key -- ) 'FUNCTION MODE# @ + @ EXECUTE ;
: GO FALSE ESCAPE? ! BEGIN KEY ACTION ESCAPE? @ UNTIL ;
¹Ï8-5¸Ì¡A§Ú̺c«Ø¤F¤@Óªí¡A¥¦Àx¦sµÛÁä³Q«ö¤U®É©Òn°õ¦æªº¥\¯à¡C¥¦ªº®ÄªG»P"ª¬ªp±Ôz"¬Û¦ü¡A¤£¦Pªº¬O¥¦¦³¨âºØ¼Ò¦¡¡A¥¿±`¼Ò¦¡©M´¡¤J¼Ò¦¡¡C¨CÓÁä¨Ì¥Ø«e©Ò¦bªº¼Ò¦¡¡A¦³µÛ¤£¦Pªº¦æ¬°¡C NORMAL MODE# ! ´N¶i¤J"¥¿±`¼Ò¦¡"¤¤¡C INSERTING MODE# !
´N¶i¤J"´¡¤J¼Ò¦¡"¡C @ EXECUTE
´N¯à°õ¦æ³oÓ±`¦¡¡C : IS [COMPILE] ' CFA , ; ¦b79¼Ð·Çªº²Å¦¡¸Ì¡A«h©w¸q¬°¡G : IS [COMPILE] ' , ; §Ú̦b¥\¯àªí©³³¡ªº¨ºÓ©w¸q¸Ì¡A¤]¨Ï¥Î¤F"½sĶ®É°Ï¤¤ªº«D«½Æ©Ê"ªºì«h¡G HERE /KEY - CONSTANT 'NOMATCH \ adr of no-match key ´N¦b¨º¥\¯àªíªº³Ì«á¤@¦æ¡A§ÚÌ»s§@¤F¤@Ó±`¼Æ¡C¡]·í§ÚÌ¥s¥Î HERE ªº®É¨è¡A¥¦«üµÛªí¤¤¤U¤@Ó¥i¥ÎªºÀx¦s¦a§}¡C¦b6Ó¦r¤¸¤§«e¡A¤]´N¬O³Ì«á¤@¦æªº°_©l³B¡C¡^²{¦b¡A§Ú̦³¨âÓ¦r¡G FUNCTIONS ( adr of beginning of function table )
'NOMATCH ( adr of "no-match" row; these are the routines for
any key not in the table )
§Ú̥γo¨Ç¦W¦r¨Ó´£¨Ñ¶Ç°eµ¹ DO ªº¦a§}¡G 'NOMATCH FUNCTION DO
¥H³]©w¤@Ó°j¸ô¡A±qªí®æ¤¤ªº²Ä¤@¦æ°µ¨ì³Ì«á¤@¦æ¡C§Ṳ́£¥²ª¾¹Dªí¤¤¦³¦h¤Ö¦æ¡C§Ú̬Ʀܥi¥H¨ú®ø©Î¼W¥[¤@¦æ¡A¦Ó¤£¥²§ïÅÜ¥ô¦óµ{¦¡½X¡A§Y¨Ï¬O¥Î¨Ó·j´M³oÓªíªº½X¤]¤£¥²§ïÅÜ¡C : 'FUNCTION ( key -- adr-of-match )
'NOMATCH SWAP 'NOMATCH FUNCTIONS DO DUP
I @ = IF SWAP DROP I SWAP LEAVE THEN
/KEY +LOOP DROP ;
¡]¦b¥»³¹µy«áªº"¨Ï¥Îµ²ºc¤Æªº¥X¤f"³¡¥÷¡A§Ú̱N´£¨Ñ¥t¤@ºØ¸Ñ¨M¿ìªk¡C¡^ §ÚÌè¤~»¡¹L¡A¦pªG§A¯àpºâ¥Xµª®×¡A¦Ó¤£¥Î¨ìªí¸Ì¥h´M§ä¥¦¡A§A´N¸Ó³o¼Ë°µ¡C¤@Ó ¨Ò¥~¬O¡A·í°õ¦æ³t«×ªºn¨D¤ñ°_¦]¬°¨Ï¥Îªí®æ¦Ó¤Þ¶iªº½ÆÂø©Ê§ó¬°«nªº®ÉÔ¡C ³o¸Ì¬O¤@Ópºâ2ªº¦¸¤èªº¨Ò¤l¡C CREATE TWOS
1 C, 2 C, 4 C, 8 C, 16 C, 32 C,
: 2** ( n -- 2-to-the-n ) TWOS + C@ ;
§Ṳ́£¥²¥H2¼¦Û¤v"n"¦¸¨Ópºâµª®×¡Aµª®×³£¨Æ¥ý³Qpºâ¦n¡A¨Ã¦s¦bªí¸Ì¡C§ÚÌ¥i¥H ¥Î²³æªº¥[ªk±o¨ìªí¤¤ªº¦a§}¡A¥H¨ú±oµª®×¡C ¤@¯ë»¡¨Ó¡A¥[ªk¤ñ¼ªk§Ö«Ü¦h¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¦pªG§Anpºâ¤@Ó¤T¨¤¨ç¼Æ¡A¹³¬O¬°¤F¹Ï§ÎªºÅã¥Ü¡A§A¤£»Ýn¤Ó¦nªº¸Ñ¹³«×¡C¤@Ó 7¦ì¤¸ªº¤T¨¤¨ç¼Æ¤]³\´N¨¬°÷¤F¡C´M§ä¤@Ó¦³128Ó¦¨ûªºªí¡A·|¤ñ§A©Ò¯à·Q¨ìªº¥ô¦ó
¨ä¥L¤èªk³£n§Ö¡C¹ï©ó§CÀW²vªº¥\¯à¨ç¼Æªºpºâ¨Ó»¡¡A§PÂ_ªí«D±`¦n¥Î¡C ¦ý¬O¦pªG§A¥²»Ý¨D±o¤¤¶¡¶µ¡]interpolate¡^¡A§A²×¨s¬Onpºâ¤@Ó¨ç¼Æªº¡C¤]³\
³Ì¦nÁÙ¬O¥hpºâ¥X¤@Ó¥\¯àµy·L½ÆÂø¨Çªº¨ç¼Æ¡A¨Ã¥BÁ×§K¨Ï¥Î¬dªíªº¤è¦¡¡C «·s³]p
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦b¥»³¹¶}©l®É¹ïMoore©Ò°µªº³X°Ý¤¤¡A¥L´£¨ì¡A¦pªG¸g¥Ñ«·s³]p¡A¥Î¨âÓ¦r¨Ó¨ú¥N¤@ Ó¦r¡A¨º»ò¤@ÓÀ³¥Îµ{¦¡¤¤¤j³¡¥÷ªº±ø¥ó´ú¸Õ¡A´N¥i¥H³Q¬Ù²¤¡F¡u§A¥i¥H»¡ GO ©ÎªÌ»¡ PRETEND¡v¡C §ïÅܧAªºÀô¹Òªº«e«áÃö«Y¡A¥H«K°õ¦æ¤@Ó²³æ¦Ó¤@Pªººtºâªk¡An¤ñ«O«ùÀô¹Ò©T©w ¤£ÅÜ¡A¦Ó±q´XÓºtºâªk¤§¤¤°µ¿ï¾Ün²³æªº¦h¡C ½Ð¦^¾Ð²Ä¤@³¹¤¤Ä«ªGªº¨Ò¤l¡C¥¦³Ìªì³Q©w¸q¬°ÅܼơF¦b¾ãÓÀ³¥Î¤¤¥¦³Q°Ñ¦Ò¨ì«Ü¦h ¦¸¡A¨Ò¦p¨ÏÄ«ªGªº¼Æ¥Ø¼W¥[¡]°e³f¨®¨Ó®É¡^¡A¨Ï¼Æ¥Ø´î¤Ö¡]Ä«ªG½æ±¼®É¡^¡A¤ÎÀˬd¥Ø«eªº ¼Æ¶q¡]°µ®w¦s±±¨î®É¡^¡C ·í¥²»Ý¥[¤W³B²z²Ä¤GºØÄ«ªG®É¡A¨Ï¥Î¿ù»~ªº¤èªk±N·|¼W¥[©Ò¦³¹B¿é¡þ¾P°â¡þ®w¦s¥Î¦r ªº½ÆÂø«×¡C¥¿½Tªº¤èªk´N¬O§Ų́ϥΪº¨ººØ¡G"¦b³Ì©³³¡"¼W¥[½ÆÂø«×¡F¤]´N¬OÄ«ªG¥»¨¡C ³oÓ²z½×¥i¥H¦³«Ü¦h¤èªk¨Ó¹ê²{¡C¦b²Ä¤C³¹¡]"ª¬ºAªí"¤@¸`¡^¡A§Ú̸g¥Ñª¬ºAªí¨Ó°õ ¦æ¦r WORKING ©M PRETENDING¡A¥¦Ì§ïÅܤ@²ÕÅܼƪº·N¸q¡C¥»³¹µy«á¡A§Ú̱N¥H¦V¶q¦¡ªº °õ¦æ¤è¦¡¨Ó©w¸q VISIBLE ©M INVISIBLE¡A¥H§ïÅÜ¡yTYPE'¡z¡A¡yEMIT'¡z¡A¡ySPACES'¡z©M ¡yCR'¡zªº·N¸q¡A¨äµ²ªG¬O©Ò¦³¨Ï¥Î¨ì¥¦Ìªºµ{¦¡½X¡A³£¯à«Ü®e©ö¦a³Q§ïÅÜ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ³\¦h²{¥Nªºµ{¦¡³]p®v³£¬O"¿ù»~Àˬd"(error-checking)ªº¤WÅ}ªÌ¡C ¤£»Ýn¦b¤@Ó¥\¯à¤¤¡AÀˬd±q¨t²Î¸Ì¥t¥~¤@Ó¤¸¥ó©Ò¶Ç°e¹L¨Óªº¤Þ¼Æ¡C"©I¥sµ{¦¡"¦³ ³d¥ô¤£Åý"³Q¥s¥Îªº¤¸¥ó"¶W¸ü¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¦³«Ü¦h±ø¥ó¬O¦]¬°¹ï°ÝÃDªº©Ç²§·Qªk©Ò²£¥Íªº¡C¦b¦øªA±±¨îªº²z½×¸Ì¡A«Ü¦h¤H»{¬° ¡A"¦øªAºtºâªk"¦b¶ZÂ÷¸û»·®É¡AÀ³¸Ó»P±µªñ®É¦³©Ò¤£¦P¡C¦b«Ü»·®É¡A§A¬O¦b°jÂà¼Ò¦¡
¸Ì¡F±µªñ¥Ø¼Ð®É¡A§A¬O¦b´î³t¼Ò¦¡¡F«D±`±µªñ®É¡A§A«o¬O¦bÂy¨ú¡]hunt¡^¼Ò¦¡¡C§A ¥²»Ý´ú¸Õ§A¦³¦h»·¡A¥H«K§ä¨ì¥¿½Tªººtºâªk¨Ó¹B¥Î¡C
§Úµo®i¥X¤@ºØ«D½u©Êªº¦øªA±±¨îºtºâªk¡A¥i¥H°µ¥þ¶ZÂ÷ªº±±¨î¡C³oºØ¤èªk®ø°£¤F±q ¤@ºØ¼Ò¦¡¨ì¥t¤@ºØ¼Ò¦¡ªºÂà´«ªÅ»Ø¡C¥¦¬Ù²¤¤Fì¥ý¬°¤F´úª¾¨Ï¥Î¦óºØºtºâªk©Ò¥²»Ý
°µªº§PÂ_¡C¥¦¤]®ø°£¤F§A¥²»Ý¹ïÂà´«ÂI©Ò°µªº§PÂ_¡C·íµM¡A§A¦]¦¹¦³¤@Ó²³æ¦h¤F ªºµ{¦¡¡A¥¦¥u¥Î¤@ºØºtºâªk¡A¦Ó¤£¬Oì¨Óªº¤TÓ¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦³¤@Ó§Ú̦b¥»®Ñµy«e´£¨ìªº¨Ò¤l¡G¦pªG§A¯àÅý¨Ï¥ÎªÌ¨S¦³³Â·Ð¡A§A´N¤£¥²¤@ª½¬d¬Ý ¨Ï¥ÎªÌ¬O§_¦³³Â·Ð¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¼g²Õ;¹¬O¥t¤@Ó¦n¨Ò¤l¡C¸g±`¡A¤@Ó¾Þ§@½X¡]opcode¡^¥i¯à¨S¦³©M¥¦¬ÛÃöªº¼È¦s¾¹
¡C¦ý¬O¦pªG°²³]¥¦¦³¤@ӼȦs¾¹¡A¹³¬O¼È¦s¾¹0¡Aµ{¦¡½X´N¥i¥H³Q²¤Æ¡C¦bºâ³N¹B ºâ¸Ì¡A¤Þ¶i쥻¤£»Ý¦s¦bªº¦ì¤¸¹Ï¼Ë¡A¥i¥H²¤Æ¸Ñ¨Mªº¤èªk¡C§A¥i¥Hª½±µ¥Î0¨Ó´À
´«¡A¦ÓÄ~Äò°µ³oÓºâ³N¹Bºâ¡A¥H¥N´À§Aì¨Ó©Òn°µªº --´ú¸Õ0ªº±¡ªp¥H¨M©w¬O§_n ¸õ¹L³oÓ¹Bºâ¡C
³o¬O¥t¤@Ó"©¿²¤¤£p"ªº¨Ò¤l¡C¦pªG§A¯uªº¤£¦b¥G¡A¨º»ò´NÀH«Kµ¹¥¦¤@ÓµêÈ¡AµL½× ¦p¦ó¡A¥Î¥¦´N¬O¤F¡C
·í§A¹J¨ì¤@Ó¯S®íª¬ªp®É¡A¸ÕµÛ§ä¥X¤@Ó¯à±N¯S®íª¬ªpÅܦ¨¤@¯ëª¬ªpªººtºâªk¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¤@Ó³]p¨}¦nªº¤¸¥ó¡A¤£½×¬OµwÅé©Î³nÅé¡A¥i¥HÅý§A¥H¤@ºØ²M´·¦Ó¤S¦³®Ä²vªº¤è¦¡°õ ¦æ¤@Óµü¶°¡C¦Ñ¦¡ªºEpson MX-80¦Lªí¾÷¡]²{¦b¤w¸g¼o°£¤F¡^¸Ìªº¦r§Î²Õ±N³oºØÆ[ÂI¸à ÄÀªº«Ü¦n¡C¹Ï8-6Åã¥Üªº¬OASCII½X±q160¨ì223ªº¹Ï§Î¦r¤¸¡C ¹Ï8-6 Epson MX-80ªº¹Ï§Î¦r²Õ ¨C¤@ӹϧΦr¤¸¥Ñ¤»Ó¤p¤è®æ©Ò²Õ¦¨¡A¥¦¥i¥H¬O¶î¶Â©Î¯d¥Õ¡C°²³]¦b§Ú̪ºÀ³¥Î¸Ì¡A§ÚÌ n¨Ï¥Î³o¨Ç¹Ï§Î¨Ó»s§@¤@Ó³]p¡C¹ï©ó¨C¤@ӹϧΡA§Ú̫ܲM·¡³o¤»Ó¦ì¸mªº¨C¤@Ó¬O ¤°»ò --²{¦b¡A§ÚÌ¥²»Ý¬°¦Lªí¾÷²£¥Í¬Û¹ïÀ³ªºASCII½X¡C ¥unµy¬°¬Ý¤@¤U¡A§A´Nª¾¹D³o¬O¤@Ó«D±`²z©Êªº¹Ï®×¡C°²³]§Ú̦³¤@Ó6¦r¤¸¼eªºªí ¡A¨ä¤¤¨C¤@Ó¦r¤¸¥NªíµÛ¹Ï§Î¸Ìªº¤@ӹϯÀ¡G ¢z¢w¢w¢s¢w¢w¢{
¹Ï¯À ¢x 0 ¢x 1 ¢x
¢u¢w¢w¢q¢w¢w¢t
¢x 2 ¢x 3 ¢x
¢u¢w¢w¢q¢w¢w¢t
¢x 4 ¢x 5 ¢x
¢|¢w¢w¢r¢w¢w¢}
¨Ã¥B°²³]¡A¦pªG¹Ï¯À"on"¡A«h¸Ó¦r¤¸È¬O FF¡A"off"«h¬°0¡C²{¦b§A¥i¥H¬Ý¤@¤U¡Apºâ ³o¨Ç¹Ï§Î½Xªºµ{¦¡¦³¦h»ò¤p¡G CREATE PIXELS 6 ALLOT
: PIXEL ( i -- a ) PIXELS + ;
: CHARACTER ( -- graphics_character )
160 6 0 DO I PIXEL C@ I 2** AND + LOOP ;
(µy«á§ÚÌ·|¤¶²Ð 2** ) ¦b CHARACTER ªº©w¸q¸Ì¨Ã¨S¦³§PÂ_¡C¹Ï§Î½X¬O¥Ñ²³æªºpºâ©Ò±o¨ìªº¡C ª`·N¡G¦pªGn¨Ï¥Î¦P¤@Óºtºâªk¡A¨ÓÂà´«¤@²Õ¸û¤j¹Ï®æ¡]large grid¡^¸Ì¬Û¾Fªº¤» ӹϯÀ®É¡A¥un«·s©w¸q PIXEL §Y¥i¡C³o¬O¤@Ó¥[¤W¤Ï¦V¶¡±µ¡]adding indirection backwards¡^ªº¨Ò¤l¡A¨Ã¥B¤]¬O¤@Ó¨}¦n¤À¸Ñªº¨Ò¤l¡C ¤£©¯ªº¬O¡A³o¨Ç"¥~³¡¤¸¥ó"¨Ã¤£¥þ³£¬O³Q³]pªº«Ü¦nªº¡C¨Ò¦p¡AIBMªºÓ¤H¹q¸£¦b¥¦ ªºµøÀWÅã¥Ü¤¤¡A¨Ï¥Î¤F¤@Ó¬ÛÃþ¦üªº³]p¨Ó°µ¥X¹Ï§Î¦r¤¸¡A¦ý¬O¥¦¦bASCII¼ÆÈ©M¹Ï¯À¤§ ¶¡¡A¨Ã¨S¦³©úÅ㪺¹ïÀ³Ãö«Y¡C°ß¤@²£¥ÍASCII¼ÆÈªº¤èªk¡A´N¯¦³¨Ï¥Î¬dªíªº¤è¦¡¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
¦pªG§A·Q´M§äªº¬O¤@ºØ¨Ï¥Î³Ì¤Öªº¹Bºâ¤l¨Óªí¥Ü¾Þ§@½X¡]op-codes¡^ªº¦n¤èªk¡A
68000²Õ;¹·|¬O¥t¤@Ó¥O¤H¤ß¸Hªº¨Ò¤l¡C±q©Ò¦³ªº¸ñ¹³¬Ý¨Ó¡A¹ê¦b¨S¦³¤@ºØ¦nªº
¸Ñ¨M¿ìªk¡C³]p68000ªº¤H¡AÅãµM¨S¦³§â²Õ;¹©ñ¦b¤ß¤W¡C¥L̨ä¹ê¥i¥H§â¨Æ±¡§Ë ªºÂ²³æ¨Ç¡A¦Ó¤£¥²¥I¥X¤°»ò¥N»ù¡C
¥H³oºØ¤è¦¡¨Ó¨Ï¥Î¤@Ó¤¸¥óªº©Ê½è¡A§Aªºµ{¦¡½X´N·|Åܦ¨¨Ì¿à³o¨Ç©Ê½è¡A¦]¦Ó¤]·|¨Ì¿à
¤¸¥ó¥»¨¡C³o¬O¥i±µ¨üªº¡A¦]¬°©Ò¦³¨Ì¿à©Êªºµ{¦¡½X³£³Q¨î¦b³o¤@Óµü¶°¤¤¡A¦pªG¦³ ¥²n¡A¥¦Ì¤]¯à«Ü®e©ö¦a³Q×§ï¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦b¤À¸Ñ¦]¤l¤@³¹¤¤¡A§ÚÌ»¡©ú¤F¨Ï¥Î³oºØ§Þ¥©±N±±¨îµ²ºc¤À¸Ñ¥X¨Óªº¥i¯à©Ê¡G : CONDITIONALLY A B OR C AND IF NOT R> DROP THEN ;
: ACTIVE CONDITIONALLY TUMBLE JUGGLE JUMP ;
: LAZY CONDITIONALLY SIT EAT SLEEP ;
²Å¦¡Åý§Ú̯à°÷ª½±µ¾ÞÁaªð¦^°ïÅ|¡A¥H§ïÅܱ±¨î¬yµ{¡C¡]¦pªG§AÃhºÃ¡A½Ð°Ñ¾\¡qStarting FORTH¡r²Ä¤E³¹¡C¡^¯ó²vªº¨Ï¥Î³oºØ§Þ¥©¡A·|³y¦¨µ{¦¡½Xªº«Dµ²ºc¤Æ¡C¦ý¬O¡A¦pªG¯àÄYÂÔ ªº¨Ï¥Îµ²ºc¤Æ¥X¤f¡A«o¥i¥H¹ê½èªºÂ²¤Æµ{¦¡½X¡A¨Ã§ïµ½µ{¦¡ªº¥iŪ©Ê©M¥iºûÅ@©Ê¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
§Ú¶V¨Ó¶V³ßÅw¨Ï¥Î¡yR>
DROP¡z¨Ó§ïÅܱ±¨îªº¬yµ{¡C¥¦»P¡yABORT"¡z¡]©ñ±ó¡^ªº®ÄªG Ãþ¦ü¡A¦Ó«áªÌ«o¦³¤@Ó¡yIF THEN¡z¦b¸Ì±¡CÁöµM¦p¦¹¡A¾ãÓ¨t²Î¤¤´N¯¦³³o¤@Ó ¡yIF
THEN¡z¡A¨Ã¤£¬O¨CÓ¿ù»~³B²z¤¤³£¥X²{¡C §Ú©Î³\n¡y©ñ±ó¡z¡A©Î³\¤£©ñ±ó¡C¦pªG§Ú¤£©ñ±ó¡A§Ú´NÄ~Äò¤U¥h¡C¦pªG§Ú©ñ±ó¡A´N¤£
¥²nÁÙªuµÛ©Ò¦³ªº¸ô½u¨«¤@¹M¡C§Ú·|¥t¨«¤@±ø±¶®|¡C ¥t¤@Ó¤èªk¬O¡AÅýµ{¦¡¤¤¨ä¥¦ªº½X¨Ót³dÀˬd¿ù»~¬O§_´¿¸gµo¥Í¹L¡C¦ý³o¼Ë¬O«Ü¤£¤è «Kªº¡C
¦b¯S®íª¬ªp¤U¡A"©ñ±ó¸ô®|¡]abort route¡^"ªº¨Ï¥Î¡An¤ñ¥¿±`ªº±±¨î¬yµ{ªº¤ÏÀ³n¦n¨Ç ¡C¡yABORT"¡z©M¡yQUIT¡z´£¨Ñ¤F³oºØ¥\¯à¡C "µ²ºc¤Æ¥X¤f"ÂX¥R¤F³oÓÆ[©À¡A¤¹³\¥ß§Y°±¤î¥Ø«eªº¦rªº°õ¦æ¡A¦Ó¤£¥²Â÷¶}¾ãÓ À³¥Îµ{¦¡¡C ¤£n±N³oÓ§Þ¥©»P GOTO ²V²c¡AGOTO ¬O«D±`¨S¦³µ²ºc©Êªº¡C§A¥i¥H¥Î GOTO ¸õ¨ì ¥ô¦ó¦ì¸m¡A¤£½×¬O¼Ò²Õ¤§¤º©Î¤§¥~¡C¦Ó¨Ï¥Î¦¹³Bªº§Þ¥©¡A§A¥u¯à¸õ¨ì¼Ò²Õªº©T©w¥X¤f ¡]¤À¸¹³B¡^¡A¨ÃÄ~Äò°õ¦æ©I¥s¥¦ªº¦r¡C ¦r¡yEXIT¡z·|¥ß§Y¤¤¤î¥¦©Ò¦bªº¨ºÓ¦rªº°õ¦æ¡C¤ù»y¡yR> DROP¡z·|¨Ï¥¦©Ò¦bªº¨ºÓ ¦r°õ¦æ§¹²¦«á¡A¤¤¤î©I¥sªÌªºÄ~Äò°õ¦æ¡F®ÄªG¤@¼Ë¡A¦ý«o¯à¨Ï¥Î¦b§C¤@¼hªº©w¸q¤¤¡C³o¸Ì ¦³¤@¨Ç³o¨âºØ¤èªkªº¨Ò¤l¡C ¦pªG§A¦³¤@Ó¡yIF ELSE THEN¡zªº¤ù»y¡ATHEN ¤§«á¨S¦³µ{¦¡½X¡A¹³³o¼Ë¡G ... HUNGRY? IF EAT-IT ELSE FREEZE-IT THEN ; §A¥i¥H¨Ï¥Î EXIT ¨Ó¬Ù²¤ ELSE¡G ... HUNGRY? IF EAT-IT EXIT THEN FREEZE-IT ; ¡]¦pªG±ø¥óÄݹê¡A§Ṵ́õ¦æ¡yEAT-IT¡z¨Ã¸õ¥X¡F¡yEXIT¡zªº¦æ¬°¹³¬O¤@Ó¤À¸¹¡C¦pªG±ø¥ó ¬O°²¡A§Ú̸õ¨ì THEN ¨Ã¥B°õ¦æ¡yFREEZE-IT¡z¡C¡^ ¦b³o¸Ì¨Ï¥Î EXIT ¤ñ¸û¦³®Ä²v¡A¸`¬Ù¤F¨âÓ¦r¤¸¤ÎÃB¥~ªº°õ¦æ½X¡A¦ý¥iŪ©Ê«o¸û ®t¨Ç¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¯S§O¬O·í±ø¥óÅܱo«Ü½ÆÂøªº®ÉÔ¡A¯à¦bµ{¦¡¤¤¶¡¸õ¥X¡A¦Ó¤£¥²¨ì³Ì«á²Å¦X¤F©Ò¦³THEN ªº±ø¥ó®É¤~¸õ¥X¡A¯u¬O¤@¥ó«Ü²nªº¨Æ¡C¦b¤@ÓÀ³¥Îµ{¦¡¸Ì¡A§Ú´¿¸g¦³¤@Ó¹³³o¼Ë ªº¦r¡G : TESTING
SIMPLE 1CONDITION IF ... EXIT THEN
2CONDITION IF ... EXIT THEN
3CONDITION IF ... EXIT THEN ;
¡ySIMPLE¡z¬O¥Î¨Ó³B²z²³æªºª¬ªp¡C¡ySIMPLE¡zªº©w¸q¬O¥H¡yR> DROP¡z¤ù»y°µµ²§ô ¡C¨ä¥¦³¡¥÷¥Î¨Ó³B²z¸û½ÆÂøªº±¡ªp¡C
¥¦Ì·í¤¤ªº¨C¤@Ó³£¦b¦P¤@ÂI¸õ¥X¡A¤£¥²µhW¦a¥h²Å¦X©Ò¦³ªº IF¡BELSE¡BTHEN µ¥µ¥ ªº±ø¥ó¡C¨ì³Ì«á¡A¦pªG¨S¦³¤@Ó±ø¥ó¬O²Å¦Xªº¡A´N¬O¤@Ó¿ù»~ª¬ªp¡C
³oÓ½X¼gªº«Ü¤£¦n¡A¦]¬°¥¦«ÜÃø°£¿ù¡C¦ý¬O¥¦«o¤ÏÀ³¥X°ÝÃDªº¥»½è¡C¨S¦³¨ä¥¦§ó¦nªº ¿ìªk¨Ó³B²z¥¦¡C¡yEXIT¡z©M¡yR> DROP¡z¦Ü¤ÖÁÙ¯à¨Ï¨Æ±¡¦b´x´¤¤§¤¤¡C
µ{¦¡³]p®v¦³®É¤]¨Ï¥Î EXIT¡A¸õ¥X½ÆÂøªº BEGIN °j¸ô¡C©ÎªÌ§Ṳ́]¯à¦b¡yDO LOOP¡z¸Ì ¨Ï¥ÎÃþ¦üªº§Þ¥©¡A¹³¬O¦b¥»³¹µy«e³B¡A§Ú̦b¡u¤p¤p½s¿è¾¹¡v©Ò¼gªº¡y'FUNCTION¡z¡C¦b ³oÓ¦r¤¤¡A§ÚÌ·j´M¤@¨t¦Cªº¦a§}¡A¬d¬Ý¬O§_¦³²Å¦Xªº±¡ªp¡C¦pªGµo²{¨ì¤@Ó¡A§ÚÌ´N ±N¥¦ªº¦a§}¶Ç¦^¡F¦pªG§ä¤£¨ì¡A§ÚÌ´N¶Ç¦^¥\¯àªí¤¤³Ì«á¤@¦æªº¦a§}¡C ²{¦b§ÚÌ¥i¥H¤Þ¤J¡yLEAP¡z³oÓ¦r¡]°Ñ¬Ýªþ¿ýC¡^¡A¥¦ªº¥\¯à»P¡yEXIT¡z¬Û¦ü¡]¥¦¤] ¬O¼ÒÀÀ¤@Ó¤À¸¹¡^¡C²{¦b§ÚÌ¥i¥H¼g¡G : 'FUNCTION ( key -- adr-of-match ) 'NOMATCH FUNCTIONS
DO DUP I @ = IF DROP I LEAP THEN /KEY +LOOP
DROP 'NOMATCH ;
¦pªG§Ú̧ä¨ì¤@Ӭ۲Ūº¡A§ÚÌ´N¡yLEAP¡z¡A¤£°µ¡y+LOOP¡z¡A¦ý¬On¥ß¨è°µ¡A¨Ã¥B¦b °ïÅ|¤W¯d¤U¡yI¡z¡]§Ú̧ä¨ìªº¦a§}¡^¡C¦pªG¨S¦³§ä¨ì¤@Ӭ۲Ūº¡A§ÚÌ·|¸g¹L°j¸ô¨Ã ¥B°õ¦æ DROP 'NOMATCH
¥¦©ß±ó©Òn´M§äªºÁä¡A¨Ã¯d¤U³Ì«á¤@¦æªº¦a§}¡I
¦p§Ú̩Ҩ£¡A"´£«e¸õ¥X"³£¦³¤@Ó¾A·íªº®É¾÷¡A¬Æ¦Ü¦b¦h¥X¤f©M¦h"Ä~Äò"ªº±¡ªp¤U ¡A³£¬O¦p¦¹¡C¦ý³oºØ¨Ï¥Î¡yEXIT¡z©M¡yR>
DROP¡zªº¤èªk¡A»P³Ìª½±µªºµ²ºc¤Æµ{¦¡³]pì ²z¡AÄY®æ¦a»¡¨Ã¤£¤@P¡A¨Ï¥Î®Én¯S§O¤p¤ß¡C
¨Ò¦p¡A§A©Î³\·|¦b©w¸q¶}©l®É¡A¦b°ïÅ|¤WÂ\¤W¤@Ó¼ÆÈ¡A¥¦¬Onµ¹©w¸qµ²§ô®É¨Ï¥Î ªº¡C¹L¦ªº¸õ¥X·|¦b°ïÅ|¤W¯d¤U¤@Ó¦h¾lªºÈ¡C
ª±§Ëªð¦^°ïÅ|´N¹³ª±¤õ¤@¼Ë¡C§A¥i¯à³Q¿N¨ì¡C¦ý¬O¦³¤F¤õ¡A«o±aµ¹¤HÃþ«Ü¤jªº¤è«K¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¥ô¦ó®É¨è¡A·í§A³]©w¤@ÓºX¼Ð®É¡A´N¸ÕµÛ°Ý¦Û¤v¬°¤°»òn³]©w¥¦¡C¦pªGµª®×¬O¡u³o¼Ëµy«á §Ú´N¯àª¾¹D¸Ó³o¼Ë..³o¼Ë..ªº°µ¡v¡A´N±µµÛ°Ý§A¦Û¤v¡A¬O§_²{¦b´N¥i¥H³o¼Ë°µ¡C¤@¤pÂIªº «·s«Øºc¡A¥i¯à·|¤j¤j¦a²¤Æ§Aªº³]p¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¥ô¦ó®ÉÔ¡AY§A¯à¦b½sͤ@ÓÀ³¥Îµ{¦¡¤§«e°µ¥X¤@Ó¨M©w¡A¥ß¨è´N°µ¡C °²³]§A¦³¨âºØª©¥»ªº°}¦C¡G¤@Ó¬O¦bµ{¦¡µo®i®É¬°¤F¨¾¤î¿ù»~µo¥Í¡A·|Àˬd¬O§_¶V¬É ¡]bounds¡^¥H°µ«OÅ@¡A¥t¤@Ó°õ¦æªº¸û§Ö¡A¦ý¬O¥¦¦b¹ê»ÚÀ³¥Î¤¤«o¨S¦³«OÅ@¡C n±N³o¨âºØª©¥»©ñ¦b¤£¦Pªº¾¤¤¡C·í§A½sĶÀ³¥Îµ{¦¡®É¡A¥u¸ü¤J§A©Ò»Ýnªºª©¥»¡C ¶¶«K´£¤@¤U¡A¦pªG§A·ÓµÛ³oÓ«ØÄ³¥h°µ¡A¨C¦¸·í¸ü¤Jªºª©¥»§ïÅܮɡA§A¥i¯àn¤£³Ó¨ä ·Ðªº¥h½s¿è¸ü¤J¾¡A¥H«K¯à¸ü¤J©Ònªºª©¥»¡C§A¨ä¹ê¥i¥H´«¤@ºØ¤è¦¡¡A¼g¤@Ó¦b³Ì«á¥i¥H ¥á±¼¤£nªº©w¸q¡AÅý¥¦¬°§A°µ§PÂ_¡C¨Ò¦p¡]¦b¥t¤@¸`¸Ì§A¤w¬Ý¹L¡^¡G : STEPPERS 150 'TESTING? @ 1 AND + LOAD ;
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦³®É§A»Ýn¤@ÓºX¼Ð¡A¥Î¨Ó«ü¥Ü¬O§_«e±¤@¨Çµ{¦¡½X¤w¸g³Q©I¥s¹L¡C¤U±ªº©w¸q·|¯d¤U ¤@ÓºX¼Ð¡A¥Î¨Ó«ü¥Ü¡yDO-IT¡z¬O§_¤w³Q°õ¦æ¡G : DID-I? ( -- t=I-did )
SHOULD-I? IF DO-IT TRUE ELSE FALSE THEN ;
¥¦¥i¥H³Q²¤Æ¬°¡G : DID-I? ( -- t=I-did )
SHOULD-I? DUP IF DO-IT THEN ;
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¦pªG³]©wºX¼Ðªº°ß¤@¥Øªº¡A¬O¬°¤Fº¸«á¬Y¨Çµ{¦¡½X¥i¥H¦b¤@ӼƥةM¥t¤@Ӽƥؤ§¶¡°µ §PÂ_¡A§A³Ì¦n±N¼Æ¥Ø¥»¨«O¯d¤U¨Ó¡C ²Ä¤»³¹"¤À¸Ñ¦]¤lªº·Ç«h"¤@¸`¤¤"ÃC¦â"ªº¨Ò¤l¡A»¡©ú¤F³oÓÆ[ÂI¡C ¦r¡yLIGHT¡zªº¥Øªº¬O³]©w¤@ÓºX¼Ð¡A¥¦«ü¥X§Ú̬O§_n°ª«G«×ªº¦ì¤¸³Q³]©w¡CÁöµM §ÚÌ¥i¥H¼g¥X : LIGHT TRUE 'LIGHT? ! ; ¨Ó³]©wºX¼Ð¡A¥H¤Î 'LIGHT? @ IF 8 OR THEN ... ¨Ó¨Ï¥Î³oÓºX¼Ð¡C¦ý³oºØ¤èªk¨Ã¤£¦pª½±µ±N°ª«G«×¦ì¤¸©ñ¦bÅܼƤ¤¨ÓªºÂ²³æ¡G : LIGHT 8 'LIGHT? ! ; ¨Ã¥B²¤Æ¦¨ 'LIGHT? @ OR ... ¨Ó¨Ï¥Î¥¦¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ³oÓ´£¥Ü©M«e¤@ÓÃþ¦ü¡A¨Ã¥B³£¦s¦bµÛ¬Û¦Pªº¨î¡C¦pªG³]©w¤@ÓºX¼Ðªº°ß¤@¥Øªº¬O¡A º¸«á¬Y¨Çµ{¦¡½X¥i¥H¦b¤@Ó¥\¯à©M¥t¤@Ó¤§¶¡°µ§PÂ_¡A§A³Ì¦n¦s¤U¥\¯à¥»¨ªº¦a§}¡C ¨Ò¦p¡A¶Ç°e¤@Ó¤å¦r¨ì¦L¦r¾÷ªºµ{¦¡½X©Mª½±µ±N¤å¦r©ñ¨ìÅã¥Ü¾¹¤Wªºµ{¦¡½X¤£¤@¼Ë¡C ®t«lªº°õ¦æ¤èªk·|©w¸q¦¨¡G VARIABLE DEVICE ( 0=video | 1=printer )
: VIDEO FALSE DEVICE ! ;
: PRINTER TRUE DEVICE ! ;
: TYPE ( a # -- ) DEVICE @ IF
( ... code for printer ... ) ELSE
( ... code for video ... ) THEN ;
³oºØ°µªk¤£¦n¡A¦]¬°¨C¦¸§An¿é¥X¤@Ó¦r¦ê®É¡A³£n¨M©w°õ¦æþ¤@ºØ¥\¯à¡C ¸û¦nªº¹ê²{¤è¦¡¬O¨Ï¥Î¦V¶q¦¡ªº°õ¦æ¡C¨Ò¦p¡G DOER TYPE ( a # -- )
: VIDEO MAKE TYPE ( ... code for video ... ) ;
: PRINTER MAKE TYPE ( ... code for printer ... ) ;
³o¼Ë¸û¦n¡A¦]¬°¡yTYPE¡z¤£¥²¨M©wn¨Ï¥Îþ¤@¬qµ{¦¡½X¡A¥¦¤w¸gª¾¹D¤F¡C ¡]¦b¤@Ó¦h¤u¨t²Î¤¤¡A¦L¦r¾÷©MºÊµø¾¹ªº¤u§@¡A³£¦³¥¦¦Û¤vªº¤@Ó°õ¦æ¦V¶qªº«þ¨© ¡A¥H«KÅý¡yTYPE¡z±N¥¦Àx¦s¦b¤@ӨϥΪÌÅܼƤ¤¡C¡^ ¤W±ªº¨Ò¤l»¡©ú¤F³oÓ´£¥Üªº¨î¡C¦b²Ä¤GÓª©¥»¤¤¡A§Ų́èS¦³Â²³æªº¤èªk¯à°÷ ª¾¹D¥Ø«eªº¸Ë¸m¬O¦L¦r¾÷©Î¬OÅã¥Ü¾¹¡C§Ṳ́]³\»Ýnª¾¹D³oÂI¡A¥H«K¯à¨M©w¬O§_n²M°£¿Ã ¹õ©ÎªÌ°e¤@¶¯È¡C§Ú̥Ψì¤F"ª¬ºA"ªº¥t¤@ºØ¥Î³~¡A¦]¦Ó§Ú̪º´£¥Ü¤]´N¤£¦A¾A¥Î¤F¡C ¨Æ¹ê¤W¡AºX¼Ðªº¨Ï¥Î¬O¤¹³\"¨Ì¿àª¬ºA¨Ó¾Þ§@"ªº³Ì²³æªº¹ê²{¤è¦¡¡C¦ý¬O¦b¡yTYPE¡z ªº±¡ªp¸Ì¡A§ÚÌÃö¤ßªº¬O³t«×¡C§Ú̦L¦r¦êªº¦¸¼Æ¤ÓÀWÁc¡A¤£¤¹³\®ö¶O®É¶¡«½Æ¦a°µ§PÂ_ ¡C³Ì¦nªº¸Ñ¨M¿ìªk¬O³]©w¡yTYPE¡zªº¥\¯à¡A¦P®É¤]³]©w¤@ÓºX¼Ð¡G DOER TYPE
: VIDEO 0 DEVICE ! MAKE TYPE
( ... code for video ... ) ;
: PRINTER 1 DEVICE ! MAKE TYPE
( ... code for printer ... ) ;
©ó¬O¡ATYPE ª¾¹D¸Ó°õ¦æ¨º¤@Óµ{¦¡½X¡A¦Ó¥t¤@Ó©w¸q¤]¯à°Ñ¦ÒºX¼Ð¡yDEVICE¡z¡C ¥t¤@ºØ¥i¯à¬O¼g¤@Ó¦r¡A¥¦¯à¨ú±o¡yTYPE¡zªº°Ñ¼Æ¡]¥Ø«eµ{¦¡½Xªº«ü¼Ð¡^¡A¨Ã±N¥¦ »P PRINTER ªº°õ¦æ¦a§}¬Û¤ñ¸û¡C¦pªG¥¦¤p©ó PRINTER ªº¦a§}¡A§ÚÌ«K¬O¦b¨Ï¥Î VIDEO ªº±`¦¡¡F§_«h¡A´N¬O¦b¨Ï¥Î PRINTER ªº±`¦¡¡C ¦pªGª¬ºAªº§ïÅÜ¥]§t¤F¤@¤p³¡¥÷¥\¯àªº§ïÅÜ¡A§A¤´µM¥i¥H¨Ï¥Î DOER/MAKE¡C³o¸Ì¬O ¤TºØ°O¾ÐÅé²¾°Êªº¾Þ§@©w¸q¡A¥¦Ì¥i¥H¤@°_³QÃö±¼¡C DOER !' ( vectorable ! )
DOER CMOVE' ( vectorable CMOVE )
DOER FILL' ( vectorable FILL )
: STORING MAKE !' ! ;AND
MAKE CMOVE' CMOVE ;AND
MAKE FILL' FILL ;
: -STORING MAKE !' 2DROP ;AND
MAKE CMOVE' 2DROP DROP ;AND
MAKE FILL' 2DROP DROP ;
¦ý¬O¡A¦pªG¦³¤j¶qªº¥\¯à»Ýn³Q¦V¶q¤Æ¡A¨Ï¥Îª¬ºAªí·|¤ñ¸û¦n¡C ³oÓ³W«hªºµ²ªG¤Þ¥X¤F¡uµ²ºc¤Æªº¥X¤f±¾¤Ä¡]structured exit hook¡^¡v¡A¥¦¬O¤@ Ó"DOER¦r"¡A³Q«ü¦V¨ì¥h°õ¦æ¤@Óµ²ºc¤ÆªºÂ÷¶}¡]EXIT¡^¡C DOER µS¿Ý ( the exit hook )
: ±B«ÃµL®Ä µS¿Ý Â÷±Bµn°O ;
( .... )
( ...¦bµ{¦¡¤¤«Ü«á±ªº¦a¤è: )
: ½w©M MAKE µS¿Ý °eªá R> DROP ;
¶}©l®É¡A¡yµS¿Ý¡z¨Ã¤£°µ¥ô¦ó¨Æ¡C¦pªG¦¹®É©I¥s¡y±B«ÃµL®Ä¡z¡A´N·|¤Wªk°|¡C¦pªG §Ú̦b¡y±B«ÃµL®Ä¡z¤§«e°µ¡y½w©M¡z¡A´N·|¥ý°eªá¡A¨Ã²M²nªº¸õ¨ì¤À¸¹¡A¬Æ¦Ü¦b§ÚÌ ªº¥t¤@¥bµoı³o¥ó¨Æ¤§«e¡A´N¨î¤î¤F¨ºÓªk°|¶Ç²¼ªº°e¥X¡C ³oÓ¤èªk¯S§O¾A¦X·í"¨ú®øªº°Ê§@"¥²»Ý³Q«Ü«á±¤~©w¸q¥Xªº¥\¯à©Ò°õ¦æªºª¬ªp¡]¨Ì ¶¶§Ç¤Wªº½ÆÂø«×©Ò©î¸Ñ¡^¡C«e±µ{¦¡½Xªº½ÆÂø©Ê¼W¥[ªº«Ü¦³¡A§A¥u»Ýn©w¸q¥X±¾¤Ä¡A µM«á¦b¾A·íªº®É¶¡©I¥s¥¦§Y¥i¡C
§Ú«O¯d³oÓªº´£¥Ü¡A±N¥¦©ñ¦b³Ì«á¡A¬O¦]¬°¥¦¥i¥H°µ¬°¤@Ó½d¨Ò¨Ó»¡©ú²¤ÆªºÀuÂI¡C ·í¨ä¥¦ªº´£¥ÜµÛ«¦b¥iºûÅ@©Ê¡B®ÄªG¡Bºë²µ¥µ¥®É¡A³oÓ´£¥Ü«o¬O»Pº¡·N«×¦³Ãöªº¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w ¤@Ó¦b°ïÅ|¤WªººX¼Ð¡A©M¤@Ó¦b°O¾ÐÅé¸ÌªººX¼Ð¡A¦³«Ü¤jªº¤£¦P¡C¦b°ïÅ|¤WªººX¼Ð¯à°÷ «Ü®e©ö³Q¨M©w¡]¥HŪ¤JµwÅé¡Bpºâ¡B©Î¥ô¦ó¨ä¥¦¤èªk¡^¡A©ñ¨ì°ïÅ|¤W¡AµM«á³Q±±¨î µ²ºc¥Î±¼¡C¥¦ªº¥Í©R¬Jµu¼È¤S¤£½ÆÂø¡C ¦ý¬OY±NºX¼Ð«O¦s¦b°O¾ÐÅé¸Ì¡A¬Ý¬Ý·|µo¥Í¤°»ò¨Æ¡C§A°£¤F¦³ºX¼Ð¥»¨¤§¥~¡AÁÙ ¼W¥[¤FºX¼Ð¦ì¸mªº³oÓ½ÆÂø«×¡C³oÓ¦ì¸m¥²»Ý¡G ¡E ³Q»s³y¥X¨Ó ¡E ³Qªì³]¡]¬Æ¦Ü¬O¦b¦³¥ô¦óªF¦è¯u¥¿¦a§ïÅܤ§«e¡^ ¡E ³Q«¸m¡]§_«h¡AY±N¤@ÓºX¼Ð¶Ç°e¨ì¤@Ó«ü¥O¡A¸ÓºX¼Ð·|¤@ª½«O¯dµÛ¥Ø«eªºª¬ºA¡^ ¦]¬°¦b°O¾ÐÅ餤ªººX¼Ð¬OÓÅܼơA©Ò¥H¥¦Ì¤]¬O"¤£¥i¦A¶i¤Jªº"¡]not reentrant¡^¡C ·|Åý§ÚÌ«·s¦Ò¼{¬O§_¯uªº»Ýn¤@ÓºX¼Ðªº¨Ò¤l¤§¤@¡A´N¬O¨ºÓ§Ṳ́w¸g¬Ý¹L¦n¦h ¦¸ªº"ÃC¦â"ªº¨Ò¤l¡C¨ä¤¤¡A§Ṵ́²³]³Ì¦nªº»yªk¬O¡G LIGHT BLUE ( ²H ÂŦâ ) ¤]´N¬O§Î®eµü LIGHT ¥X²{¦bÃC¦â¤§«e¡C³o¨S¦³°ÝÃD¡C¦ý¬O¡A°O±o°õ¦æ¨ºÓª©¥»ªºµ{¦¡½X ¶Ü¡H ½Ð±N¥¦©M¤U±³oºØ¤èªkªºÂ²³æ©Ê°µÓ¤ñ¸û¡G 0 CONSTANT BLACK 1 CONSTANT BLUE 2 CONSTANT GREEN
3 CONSTANT CYAN 4 CONSTANT RED 5 CONSTANT MAGENTA
6 CONSTANT BROWN 7 CONSTANT GRAY
: LIGHT ( color -- color ) 8 OR ;
¦b³oÓª©¥»¸Ì¡A§Ú̱N»yªk¤ÏÂà¡A©Ò¥H§Ú̲{¦b»¡ BLUE LIGHT ~FBBB1;( ÂŦ⠲H ) §ÚÌ¥ý³]©wÃC¦â¡AµM«á¦A¥h×¹¢¥¦¡C ¦b§¹¦¨«á¡A§ÚÌ®ø°£¤F¹ï¤@ÓÅܼƪº»Ý¨D¡BŪ¨úÅܼƪºµ{¦¡½X¡B©M§ó¦hªº«¸mÅÜ¼Æ ªºµ{¦¡½X¡C¨Ã¥B¡A³oÓµ{¦¡½X¬O¦p¦¹ªºÂ²³æ¡A¬O¤£¥i¯à¬Ý¤£À´ªº¡C ·í²Ä¤@¦¸¼g³o¨Ç«ü¥O®É¡A§Ú¨Ï¥Î¹³¤f»yªº¤è¦¡¡C¡yBLUE LIGHT¡zÅ¥°_¨Ó«e«áÄAË¡A ¤@ÂI¤]¤£¯à±µ¨ü¡C¦ý¨º¬O¦b§Ú©MChuck Moore½Í¸Ü¤§«e¡C
¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
§Ún¦b¡u^¤å»¡ªº¦n¡v©M¡u»¡ªº¦n¡v¤§¶¡°Ï§O¥X¨Ó¡C¨ä¥¦»y¨¥¡A¹³¦è¯Z¤ú»y¡A§Î®eµü ¬O¸ò¦b¦Wµü¤§«áªº¡C§ÚÌÀ³¸Ó¤£¨ü¡u¥Î¨Ó«ä¦Òªº»y¨¥¬O«ç¼Ëªº¡v³oºØ²Ó¸`ªº¬ù§ô¡C
¥¦¨ú¨M©ó§Aªº·N¹Ï¡Gn²³æ¡AÁÙ¬On¹³^¤å¡C^¤å¨Ã¤£¬O¤@ºØ«D±`Àu¶Vªº»y¨¥¡A§ÚÌ ¥Î¤£µÛ¹³¥£Áõ¤@¼Ëªº¸òµÛ¥¦¡C
¦pªG§Ún±N³o¨Ç³B²zÃC¦âªº¦r¥]¸Ë°_¨Ó¡A½æµ¹Ã¸¹ÏÃÀ³N®a¨Ï¥Î¡A§Ú¥i¯à·|¦Û§ä³Â·Ðªº ¥h»s³y¤@ÓºX¼Ð¡C¦ý¬O¹ï³o¨Çµ¹§Ú¦Û¤v¨Ï¥Îªº¦r¡A¦pªG§Ú»Ýn¦A¼g¥¦¤@¹M¡A¨º§Ú¹çÄ@ ¨üMooreªº¼vÅT¡A¨Ï¥Î¡yBLUE LIGHT¡zªº»yªk¡C
±NÅÞ¿è©M±ø¥ó·í§@¬O¼gµ{¦¡ªº«nµ²ºc³æ¤¸¡A·|¾ÉPµ{¦¡¹L¥÷ªº½ÆÂø¡A¤£®e©öºûÅ@¡A ©M¨S¦³®Ä²vªº½s½X¡C¦b¥»³¹¸Ì¡A§Ṵ́Q½×¤F´XºØ¤èªk¡A¥H´î¤Ö¡B³Ì¨Î¤Æ¡B©Î®ø°£¤£»Ýn ªº±ø¥óµ²ºc¡C ³Ì«á¤@ÂI¡A ²Å¦¡¹ï±ø¥óªº³B²z¤è¦¡¡A¬O¤£¤Ó¾A¥Î©ó¨ä¥L¤j³¡¥÷ªº²{¥N»y¨¥¤Wªº¡C ¨Æ¹ê¤W¡A¤é¥»®Ú¾Ú¥¦Ìªº²Ä¤¥N¹q¸£p¹º¡Aµo®i¥X¤@ºØºÙ¬° PROLOG ªº»y¨¥¡A§Y PROgramming in LOGic¡A¥¦¬O¤@ºØ§¹¥þ¨Ï¥ÎÅ޿誺»y¨¥¡C·í§Ú̲`«ä¤U±ªº°ÝÃD To "IF" or not to "IF" ªº®ÉÔ¡A«Ü¦³½ìªº¡A§ÚÌ¥i¥H¬Ý¨ì¤@Ó¾Ô½uªº§Î¦¨¡C ¥»®Ñ¸Ì¡A§Ṳ́¶²Ð¤F³nÅéµo®i©P´Áªº«e¤»Ó¨BÆJ¡A¥]§t¤F³nÅé³]pªºõ²z°ÝÃD¡A©M¹ê²{ ¥i¾aªº¡B¦³®Ä²vªº¡B¥iŪ©Ê°ªªº³nÅ骺¹ê»Ú¦Ò¼{¡C §Ų́S¦³°Q½×¨ìªº¬O¡Gµ{¦¡ªº³Ì¨Î¤Æ¡A½T¹ê©Ê¡A°£¿ù©Ê¡A¤å¥ó©Ê¡A¤Îp¹ººÞ²z¡A µo®i¤u¨ã¡A²Õ;¹¡A»¼°j¡]recursion¡^ªº¨Ï¥Î©M»~¥Î¡A¦hÀ³¥Îµ{¦¡¡]multiprogrammed applications¡^ªºµo®i¡A©Î¥Ø¼Ð½sĶ¡]Target compilation¡^¡C ¦ý¨º±N¬O¥t¥~¤@Ó¬G¨Æ¡C
1. Charles Eaker¡A"Just in
Case" ²Å¦¡ Dimensions II/3, p.37¡C §A¦³¤@Ó¦r¡yCHOOSE¡z¡A¥¦¨ú¤@Ó¤Þ¼Æ"n"¡A¨Ã°e¦^¤@Ó±q0¨ìn-1ªº¥ô·N¼Æ¡C¨äµ²ªG ¥Ã»·¬O¥¿©Î¹s¡C§A¥i¥H¥Î CHOOSE ¨Ó²£¥Í¤@ÓºX¼Ð¡F¤ù»y 2 CHOOSE ²£¥Í¤@Ó 0©Î 1ªººX¼Ð¡]°²©Î¯u¡^¡C ¸ÕµÛ¼g¥X¤@Ó¤ù»y¡A¥¦¯à²£¥Í0¨ì19¡]¥]§t¡^¤§¶¡¡A©Î -20 ¨ì0¤§¶¡ªº¥ô·N¼Æ¡C ¡@ |