¡@

 ²Ä¤C³¹ ¸ê®Æªº³B²z : °ïÅ|©Mª¬ºA ¡@¡@¡@¡@¡@¡]States¡^

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢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¨âºØ¤è¦¡¨Ó³B²z¸ê®Æ: ¦b°ïÅ|¤W¡A©ÎªÌ¦b¸ê®Æµ²ºc¸Ì¡C¥»³¹ªº¥DÃD§Y¦b»¡©ú¡A ¦b¦ó®É¡B¨Ï¥Î¦óºØ¤èªk¡B¥H¤Î¦p¦ó¨ÓºÞ²z°ïÅ|©M¸ê®Æµ²ºc¡C


Àu¶®ªº¸ê®Æ°ïÅ|

¦b²Å¦¡ªº¦r¶¡¶Ç»¼¤Þ¼Æ¡A³Ì²³æªº¤èªk´N¬O¸g¥Ñ°ïÅ|¡C¦¹¹Lµ{¤§©Ò¥H"²³æ"¡A¬O¦]¬° ©Ò¦³±q°ïÅ|¨ú¥X©Î°ï¤J¼Æ­Èªº°Ê§@³£¬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
MooreªºÆ[ÂI:

¸ê®Æ°ïÅ|¨Ï¥Î¤F¡u¸ê°TÁôÂávªºÆ[©À¡C ¦b¦r¶¡©Ò¶Ç»¼ªº¤Þ¼Æ¡A¨Ã¤£»Ý­n¦b©I¥sµ{ §Ç¤¤³Q©úÅã¦aªí¥Ü¥X¨Ó¡C¤@­Ó¤Þ¼Æ«Ü¥i¯à¼ç¦æ¸g¹L³\¦h¦r¦Ó¤£³Q¬Ý¨ì¡A¬Æ¦Ü³sµ{¦¡³]­p ®v³£¤£·|·Pı¨ì¡C­ì¦]«Ü²³æ¡A¦]¬°¥¦®Ú¥»¤£»Ý­n¶Â¯È¥Õ¦rªº¼g¥X¨Ó¤~¯à³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

³oºØ¤è¦¡ªº¤@­Ó­«­nµ²ªG¬O: ¤Þ¼Æ³£¥¼³Q©R¦W¡C¥¦­Ì±H¥Í¦b°ïÅ|¸Ì¡A¦Ó¤£¬O¦s¦b©R¤F¦W ªºÅܼƸ̡C³o¬O¨Ï²Å¦¡¦¨¬°Â²¼ä»y¨¥ªº¤@­Ó­ì¦]¡C¦ý¬O¥¦¤]¬O¨Ï¼g§@ªº¤£¨}ªº²Å¦¡µ{¦¡¡A Åܪº«ÜÃø¾\Ūªº¤@­Ó­ì¦]¡CÅý§Ú­Ì¬ã¨s¤@¤U³oºØ¦Û¬Û¥Ù¬Þªº±¡ªp¡C

°ïÅ|ªºµo©úÃþ¤ñ©ó»y¨¥¤¤¥N¦Wµüªºµo©ú¡C½Ð°Ñ¦Ò¤U­±¤@¥y¸Ü:

®³°_³o­Ó§ª«¡A±N¥¦¥H´Ö¯È¥]¦n¨Ã±N¥¦©ñ¦b²°¤l¸Ì¡C

ª`·N¡Aµü"§ª«"¥u´£¨ì¤@¦¸¡C¨ä«áªº"§ª«"³£¬O¥H"¥¦"¨Ó¥N´À¡C "¥¦"³oºØ«D¥¿¦¡ªºµ²ºc¡A¼W¥[¤F»y¨¥ªº¥iŪ©Ê¡]¥u­n³o­Ó°Ñ¦Ò¤£¬Oªx¸qªº¡^¡C¦P¼Ë ªº¡A¦³¤F°ïÅ|¡A³oºØÁôÂæ¡ªº¤Þ¼Æ¶Ç»¼¡A¤]·|¨Ïµ{¦¡¦³¸û°ªªº¥iŪ©Ê¡C§Ú­Ì©Ò­«µøªº¬O ¡uµ{§Ç¡v¡A¦Ó«Dµ{§Ç¤§¶¡ªº¡u¤Þ¼Æ¶Ç»¼¡v¡C ³o­Ó¥N¦Wµüªº¤ñ³ë¡A¤]»¡©ú¤F¬°¤°»ò¦³®É²Å¦¡·|³Q¼gªº«D±`¦aÃøÅª¡C¦pªG¦³¤Ó ¦hªº¨Æª«³£¨Ï¥ÎµÛ¥N¦Wµü¨Ó°Ñ¦Òªº®É­Ô¡A§Y¨Ï¬O¤f»yªº»¡ªk¤]·|Åܪº»y·N²V²c¡C

¸Ñ¶}¥]¸Ë¯È¨Ã¥´¶}²°¤l¡C®³¥X§ª«¡A±N¥¦¥á±¼¡C

³o¥y¸Üªº°ÝÃD¦b©ó¡A§Ú­Ì¥Î"¥¦"¥h°Ñ¦Ò¤F¤Ó¦hªº¨Æª«¡C¹ï©ó³o­Ó¿ù»~¡A¦³¨âºØ¸Ñ¨Mªº ¿ìªk¡C³Ì²³æªº¬O¨Ï¥Î¤@­Ó¯u¥¿ªº¦WºÙ¡A¦Ó¤£­n¥Î"¥¦"¡G

¸Ñ¶}¥]¸Ë¯È¨Ã¥´¶}²°¤l¡C®³¥X§ª«¡A±N²°¤l¥á±¼¡C

©ÎªÌ§Ú­Ì¥i¥H¨Ï¥Î¡u«eªÌ¡v©M¡u«áªÌ¡v³oºØµü¡C¦ý¬O¡A³Ì¦nªº¿ìªkÁÙ¬O±N¥y¤l­«·s³]­p:

¸Ñ¶}¥]¸Ë¯È¨Ã¥´¶}§ª«¡C¥á±¼²°¤l¡C

¦b²Å¦¡¸Ì¡A¤]¦³Ãþ¦üªº±¡ª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
´£¥Ü ¨Ï¥Î°ïÅ|¥H²¤Æµ{¦¡½X¡C¦ý¬O¡A´N³æ¤@­Ó©w¸q¤§¤º¡A¤£­n°ïªº¤Ó²`¡C ­«·s³]­p¡A©ÎªÌ¡A³Ì«á¤£±o¤w®É¡A¨Ï¥Î¤@­Ó©R¤F¦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

¦³¨Ç²Å¦¡ªºªì¾ÇªÌ¡A¬Ý°ïÅ|´N¹³Åé¾Þ¹B°Ê­û¬ÝÂùºb¤@¼Ë: ¬O¤@­Ó¦nª±ªº¼u¸õ³õ©Ò¡C¦ý¬O¡A ²¦³º°ïÅ|¬O¤@­Ó¸ê®Æ¶Ç°eªº´C¤¶¡A¦Ó¤£¬O¯S§Þªíºtªº³õ©Ò¡C ©Ò¥H¡A¤U¤@­Ó°ÝÃD¬O¡A¦h²`¤~ºâ"¤Ó²`"¡H ¤@¯ë¨Ó»¡¡A¦b¤@­Ó©w¸q¸Ì¡A§A³Ì¦h¯­¯à ºÞ²z¤T­Ó°ïÅ|¤¸¯À¡C¡]¹ï©óÂù¾ã¼Æªø«×ªººâ³N¡A¨C­Ó"¤¸¯À"¦û¦³¨â­Ó°ïÅ|¦ì¸m¡A¦ýÅÞ¿è ¤W¡A¥¦­Ì¤´µM³Q¾A·íªº¹Bºâ¤¸¡A½Ñ¦p 2DUP ¡B2OVER µ¥µ¥¡A·í¦¨¤@­Ó¤¸¯À¨Ó¬Ý«Ý¡C¡^ ¦b³q±`ªº°ïÅ|¾Þ§@µü¶°¸Ì¡AROT ¬O°ß¤@¥i¥H¦s¨ú°ïÅ|²Ä¤T­Ó¤¸¯Àªº¦r¡C°£¤F PICK ©M ROLL ¤§¥~¡]§Ú­Ì§Y±N½Í¨ì³o¨Ç¦r¡^¡A¨S¦³¥ô¦ó¦r¥i¥HIJ¤Î§ó²`¼hªº¤¸¯À¡C ±q»y¨¥ªºÃþ¤ñÃö«Y¨Ó¬Ý¡A°ïÅ|ªº¤T­Ó¤¸¯Àµ¥©ó¤T­Ó¥N¦Wµü¡G³o­Ó¡A¨º­Ó©M¨ä¥¦¡C


­«·s³]­p

Åý§Ú­Ì¬Ý¤@­Ó¦]¤è¦V¿ù»~¦Ó¨Ï°ïÅ|²V¶Ãªº¨Ò¤l¡C°²³]§Ú­Ì­n¼g¤@­Ó +THRU ªº©w¸q¡]°Ñ ¦Ò²Ä¤­³¹¡A¡uµ{¦¡¦Cªíªº²Õ´¡v¤@¸`¤¤ªº"³¹¸`¸ü¤J¹õ"³¡¥÷¡^¡C§Ú­Ìªº°j°é¥»Åé¤j·§¬O ³o¼Ëªº:

      ...  DO  I LOAD  LOOP ;

¤]´N¬O¡A§Ú­Ì±N LOAD ©ñ¦b°j°é¤¤¡A¨Ã¦w±Æ"¯Á¤Þ­È"¤Î"¬É­­­È"¡]index and limit¡^ ¥H²Å¦X§Ú­Ì©Ò­n¸ü¤Jªºµ´¹ï¹õ¸¹¡C §Ú­Ìªº°ïÅ|¦b¶}©l®É¬O:

      lo hi

³o¸Ìªº"lo"©M"hi"¬O BLK ªº°¾²¾­È¡]offset¡^¡C ¬°¤F DO ªº¹B§@¡A§Ú­Ì¥²»Ý±N¥¦­ÌÅÜ´«¬°µ´¹ï¾­¸¹:

      hi+1+blk lo+blk

³Ì¤jªº°ÝÃD¬O±N BLK ªº¼Æ­È¥[¨ì³o¨â­Ó°¾²¾­È¤¤¡C §Ú­Ì¤w¸g¨«¿ù¤F¤è¦V¡A¦ý²{¦bÁÙ¥½µoı¡C©Ò¥HÄ~Äò¨«¤U¥h¡C©ó¬O:

                    lo hi
         BLK @
                    lo hi blk
         SWAP
                    lo blk hi
         OVER
                    lo blk hi blk
         +
                    lo blk hi+blk
         1+
                    lo blk hi+blk+1
         ROT ROT
                    hi+blk+1 lo blk
         +
                    hi+blk+1 lo+blk

·d¦n¤F¡A¦ý«o¬O¤@¹Î¶Ã! ¦pªG§Ú­Ìı±o¨üªº¸oÁÙ¤£°÷¡AÁÙ¦³¨â­Ó§ó¼Ñªº°µªk¡A¥¦­Ì¬O:

      BLK @  DUP ROT + 1+  ROT ROT +

©M

      BLK @  ROT OVER +  ROT ROT + 1+  SWAP

©Ò¦³ªº¤T­Óµ{§Ç³£°µ¦P¼Ëªº¨Æ¡A¦ý¬Oµ{¦¡½X«o¤@­Ó¤ñ¤@­ÓÁV¡A¦Ó¤£¬O§ó¦n¡C ¸g¥Ñ¹L¥hªº¸gÅç¡A§Ú­Ì»{ÃѨì¡yROT ROT¡zªº²Õ¦X¬O­Ó¦MÀIªº«H¸¹¡G°ïÅ|¤Ó¾ÖÀ½¤F¡C ¦bÁÙ¨S¦³§ä¥X§Oªº¿ìªk¤§«e¡A§Ú­Ì¤w¸g¬Ý¥X¤F°ÝÃD¡G¤@¥¹§Ú­Ì°µ¤F¨â¥÷"blk"ªº«þ¨©¡A °ïÅ|¸Ì´N·|¦³¥|­Ó¤¸¯À¡C ³o®É¡A­º¥ý·Q¨ì¥i¥H¨Ì¿àªº¾ÌÂÇ¡A´N¬Oªð¦^°ïÅ|¡G

      BLK @  DUP >R  + 1+  SWAP R> +

¡]°Ñ¦ÒÀH«áªº"Àu¶®ªºªð¦^°ïÅ|"¤@¸`¡C¡^³o¸Ì¡A§Ú­Ì±N"blk"½Æ»s¤@¥÷¡A¥ý±N¨ä¤¤ªº ¤@¥÷¦s¨ìªð¦^°ïÅ|¤¤¡A¥t¤@¥÷«h»P"hi"¬Û¥[¡C §ïµ½¤F¤@¨Ç¡C¦ý¬O¥iŪ©Ê¬O§_¤]¼W¥[¤F¡H ¤U¤@¨B­n¦Ò¼{ªº¬O¡A"©Î³\§Ú­Ì»Ý­n¤@­ÓÅܼÆ"¡C·íµM¡I§Ú­Ì­ì¥»´N¤w¸g¦³¤F¡G ´N¬O BLK ¡C©Ò¥H§Ú­Ì¸ÕµÛ¦A©w¸q¡G

      BLK @  + 1+  SWAP  BLK @ +

²{¦bªº¥iŪ©Ê¤ñ¸û°ª¤F¡A¦ýÁÙ¬O¤Óªø¡A¨Ã¥B¤]¤Ó­«½Æ¡C¡yBLK @ +¡z¥X²{¤F¨â¦¸¡C ¡yBLK @ +¡z¡H ¬Ý°_¨Ó¦ü¥G«Ü¼ô±x¡C²×©ó¡A§Ú­Ìªº¯«¸g±µ¤W½u¤F¡C§Ú­Ì¦^ÅU­è¤~ ©w¸q¹Lªº +LOAD ªº­ì©l½X¡G

      : +LOAD   ( offset'--)   BLK @ +  LOAD ;

+LOAD ³o­Ó¦rÀ³¸Ó¬O¯à³Q¥Î¨Ó°µ³o¥ó¨Æªº¡C§Ú­ÌÀ³¸Ó¼gªº¬O¡G

      : +THRU   ( lo hi--)   1+ SWAP  DO  I +LOAD  LOOP ;

³o¸Ì¡A§Ú­Ì¨Ã¨S¦³°µ¥X¤@­Ó°õ¦æ§ó§Öªºª©¥»¡A¦]¬°¨C·í¸g¹L°j°é®É¡A¡yBLK @ +¡z³£ ·|³Q°õ¦æ¤@¦¸¡C§Ú­Ì»s§@ªº¬O¤@­Ó§ó²M·¡¡AÆ[©À§ó²¼ä¡A¨Ã¥B§ó¾Ö¦³¥iŪ©Êªºµ{¦¡½X¡C¦b ³o­Ó¨Ò¤l¸Ì¡A®Ä²v®t¡]͵ù¡G«üªº¬O°õ¦æ³t«×¡^¨Ã¤£·|³Q¹îı¨ì¡A¦]¬°¥¦¥u¦b¨C­Ó¹õ³Q¸ü ¤J®É¡A¤~·|°õ¦æ¤@¦¸¡C ­«·s³]­p¡A©ÎªÌ­«·s«ä¦Ò¡A¬O¦b°ÝÃD´c¤Æ¤§«e¡A§Ú­Ì¥²»Ý±Ä¨úªº¨BÆJ¡C
§½³¡ÅܼÆ

¤j³¡¥÷ªº®É­Ô¡A°ÝÃD³£¯à°÷³Q¾A·íªº¥[¥H¦w±Æ¡A¨Ï¥ô¦ó®É¨èªº°ïÅ|¤W¡A»Ý­nªº¤Þ¼Æ ¼Æ¶q³£¥u¦³´X­Ó¦Ó¤w¡C¦ý¦³®É«oµL¯à¬°¤O¡C ³o¸Ì¦³¤@­Ó³ÌÃa±¡ªpªº¨Ò¤l¡C°²³]¦³¤@­Ó¦r LINE ¡A¥¦·|¦b¥ô·N¨âÂI¤§¶¡µe¤@±ø½u¡C ¥¦©Ò»Ý­nªº®y¼Ð¶¶§Ç¬°¡G

      ( x1 y1 x2 y2 )

¨ä¤¤ x1 y1 ¥Nªí¨ä¤¤¤@ÂIªº®y¼Ð¡Ax2 y2 ¥Nªí¬Û¹ïªº¥t¤@ÂI¡C ²{¦b§A»Ý­n©w¸q¥X¤@­Óµe²°¤lªº¦r [BOX]¡C¥¦¥H¤U¦Cªº¦¸§Ç¨ú±o¥|­Ó¤Þ¼Æ¡G

      ( x1 y1 x2 y2 )

¨ä¤¤ x1 y1 ¥Nªí²°¤l¥ª¤W¨¤ªº®y¼Ð¡A x2 y2 ¥Nªí¥k¤U¨¤ªº®y¼Ð¡C §A¤£¶È¦³¥|­Ó¤¸¯À¦b°ïÅ|¤W¡A¦Ó¥B·í§Aµe½u®É¡A¨ä¤¤ªº¨C¤@¶µ³£·|³Q°Ñ¦Ò¨ì³\¦h¦¸¡C ÁöµM§Ú­Ì¯à¦Û°ïÅ|¨ú±o©Ò»Ýªº¤Þ¼Æ¡A¦ý¬Oµe²°¤lªººtöªk«o¨Ã¤£¶¶µÛ°ïÅ|ªº¥»©Ê¡C¦pªG §A«Ü«æ¡A¤£§«¥H³Ì²³æªº¤èªk¼g¦¨¡G

      VARIABLE TOP        ( y coordinate: top of box)
      VARIABLE LEFT       ( x    "        left side)
      VARIABLE BOTTOM     ( y    "        bottom)
      VARIABLE RIGHT      ( x    "        right side)
      : [BOX]   ( x1 y1 x2 y2 --)   BOTTOM !   RIGHT !   TOP !   LEFT !
        LEFT @  TOP @  RIGHT @  TOP @  LINE
        RIGHT @  TOP @  RIGHT @  BOTTOM @  LINE
        RIGHT @  BOTTOM @  LEFT @  BOTTOM @  LINE
        LEFT @  BOTTOM @  LEFT @  TOP @  LINE ;

§Ú­Ì»s³y¤F¥|­Ó©R¤F¦WªºÅܼơA¨C­Ó®y¼Ð¤@­Ó¡C[BOX] ©Ò°µªº²Ä¤@¥ó¨Æ´N¬O¥ý±N°ïÅ| ¤Wªº¤Þ¼Æ¦s¤J³o¨ÇÅܼƤº¡AµM«á°Ñ¦Ò³o¨ÇÅܼƵe¥X¥|±ø½u¨Ó¡C³oºØ¥u¦b¤@­Ó©w¸q¤º³Q°Ñ¦Ò ªºÅܼơ]¦³®É¬O¥u¦b¤@­Óµü¶°¤º¡^ºÙ¬°¡u§½³¡Åܼơv¡C §Ú¦³®É·|¦]¬°½æ§Ë§Þ¥©¦Óı±o¤ºª¹¡A¦]¬°§ÚÁ`¬OºÉ¶q¦a¨Ï¥Î°ïÅ|¡A¦Ó¤£Ä@·N¥h©w¸q ¤@­Ó§½³¡ÅܼơC¦ý¬O¡A¦³¤T­Ó²z¥Ñ¤£À³¸Ó³o¼Ë°µ¡G ²Ä¤@¡A¨ººØ¼g½Xªº¤è¦¡«Üµh­W¡C²Ä¤G¡Aµ²ªGªº¥iŪ©Ê·|«Ü®t¡C²Ä¤T¡A¦b³]­p¤W¦³©Ò §ïÅܮɡA©Î°ïÅ|¤Wªº¤Þ¼Æ¦¸§Ç§ïÅܮɡA©Ò¦³¤w¸g§¹¦¨¤Fªº¤u§@³£­n­«·s­×¥¿¡C¡yDUP¡z¡B ¡yOVER¡z©M¡yROT¡z³o¨Ç¦r¨Ã¤£¥h¸Ñ¨M°ÝÃD¡A¥¦­Ì¥u¬O§âªF¦è¦w±Æ¨ì¥¿½Tªº¦ì¸m¤W¡C ±N³o¤T­Ó²z¥Ñ»Ê°O¦b¤ß¡A§Úªº«ØÄ³¬O¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢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¦b³]­p¶¥¬q¡A§A¥u§â­n¥ß§Y¨Ï¥Î¨ìªº¤Þ¼Æ©ñ¦b°ïÅ|¸Ì¡C¨ä¥¦ªº³£°µ¦¨§½³¡ ÅܼơC¡]¦pªG¦³¥²­n¡A¦b³Ì«áªº³Ì¨Î¤Æ¶¥¬q(optimization phase)¦A¨Ó®ø°£Åܼơ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¦pªG³o­Ó©w¸q¹ï³t«×ªº»Ý¨D«Ü±Ó·P¡A³o¨Ç©Ç²§ªº°ïÅ|¾Þ§@¡A¡]¦p ROT ROT¡^¯u·|§â ®É¶¡³£¦Y±¼ªº¡Cª½±µ¦s¨úÅܼƷ|¤ñ¸û§Ö¡C ¦ý¬O¡A¦pªG®É¶¡¯uªº«Ü­«­n¡A§A¤]³\²×¨s¤£±o¤£§ï¼g¦¨²Õ¦X»y¨¥ªº©w¸q¡C¦¹®É©Ò¦³ªº °ïÅ|°ÝÃD¤]³£ªï¤b¦Ó¸Ñ¡A¦]¬°©Ò¦³ªº¸ê®Æ³£±N°Ñ¦Ò¨ì¼È¦s¾¹¡A©ÎªÌ¶¡±µ¦a¸g¥Ñ¼È¦s¾¹¡C©¯ ¹Bªº¬O¡A³Ì²V¶Ãªº°ïÅ|¤Þ¼Æªº©w¸q¡A³q±`³£¬O¥H¾÷¾¹½X¼g¦¨¡C§Ú­Ìªº [BOX] ´N¬O¤@­Ó³o ¼Ëªº¨Ò¤l¡ACMOVE> ¬O¥t¤@­Ó¨Ò¤l¡C ¦b§Ú­Ì¹ï [BOX] ©Ò±Ä¥Îªº¤èªk¤¤¡Aªá¤F¤j¬ù¥b¤p®É¦b·d³o¨Ç°ïÅ|¤¸¯À¡A¦ý¥¦¤´¤£¬O ­Ó³Ì¨Îªº¸Ñ¨M¿ìªk¡C³Ì¤£µÎªAªº¬O»s³y¤F¥|­ÓÅܼơA¦û¥Î¤FÀx¦s¦WºÙ¤Î¨ä¥¦ªF¦è©Ò»Ýªº °O¾ÐÅé¡A¥u¬O¬°¤F¦b³o­Ó±`¦¡¤¤¨Ï¥Î¡C³o­Ó¥N»ù¤]¥¼§K¤Ó°ª¤F¨Ç¡C Åý§Ú¦A­«½Æ¤@¦¸¡G³o­Ó¨Ò¤l©Ò¥Nªíªº¬O¤@ºØ³ÌÃaªºª¬ªp¡A¦b¤j³¡¥÷ªº²Å¦¡À³¥Î¸Ì«Ü¤Ö ¥X²{¡C¦pªG¦r³Q¤À¸Ñªº«Ü¦n¡A«h¨C­Ó¦r·|³Q³]­p±o¥u°µ«Ü¤Öªº¨Æ¡C°µ«Ü¤Ö¨Æªº¦r³q±`´N¥u »Ý­n¸û¤Öªº¤Þ¼Æ¡C ¦b³o­Ó¨Ò¤l¸Ì¡A§Ú­Ì­±¹ïªº¬O¨â­ÓÂI¡A¨C­ÓÂI¥H¨â­Ó®y¼Ðªí¥Ü¡C §Ú­Ì¯à§_§ïÅܳ]­p¡H ­º¥ý¡ALINE ¥i¯à¬O¤Ó°ò¥»¤F¡C¥¦»Ý­n¥|­Ó¤Þ¼Æ¡A¦]¬°¥¦ ­n¦b¥ô·N¨âÂI¤§¶¡µe½u¡A¦Ó¥B¥i¯à¬O±ø±×½u¡C ¨ä¹ê§Ú­Ìµe²°¤l®É¡A¶·­nªº¬O¯Âºéªº««ª½©M¤ô¥­½u¡C³o­Ó¨Ò¤l¸Ì¡A§Ú­Ì¥i¥H±N³o¨Ç µe½uªº¦r VERTICAL ©M HORIZONTAL¡A¼gªº¸û¦³«Â¤O¦Ó¤S¦³³q¥Î©Ê¡C¨C­Ó¦r¥u­n¤T­Ó¤Þ¼Æ ¡G°_©l¦ì¸m x y ¤Îªø«×¡C³oºØ¥\¯à¤Wªº¤À¸Ñ¡A²¤Æ¤F [BOX] ªº©w¸q¡C ¤U­±ªº»yªk¹ï©ó¨Ï¥ÎªÌ¥i¯à¸û¬°¦ÛµM¡G

      10 10 ORIGIN!  30 30 BOX

¨ä¤¤ ORIGIN! ±N¤@­Ó"¨â¤¸¯Àªº«ü¼Ð"³]©w¬°"origin"¡A¤]´N¬O²°¤lªº°_ÂI¡]¥ª¤W¨¤¡^¡C µM«á¡y30 30 BOX¡z·|¬Û¹ï©ó³o­Ó°_ÂI¡Aµe¥X¤@­Ó30³æ¦ì°ª¡A30³æ¦ì¼eªº²°¤l¡C ³oºØ¤èªk¡]¤]¬O³]­pªº¤@³¡¥÷¡^´î¤Ö¤F BOX ©Ò»Ýªº°ïÅ|¤Þ¼Æªº¼Æ¶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
´£¥Ü ¦b¨M©w­þ¤@¨Ç¤Þ¼Æ­n¸g¥Ñ¸ê®Æµ²ºc¡A¦Ó¤£¬O°ïÅ|¡A¨Ó³B²z®É¡A¿ï¾Ü¨º¨Ç¸û¨ã¥Ã¤[©Ê ªº¡A©ÎªÌ¬Oªí¥Ü¤@­Ó¥Ø«eª¬ºAªº¤Þ¼Æ¡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

PICK ©M ROLL

¦³¨Ç¤H³ßÅw¦r PICK ©M ROLL¡C¥L­Ì¥Î³o¨Ç¦r¥h¦s¨ú°ïÅ|¥ô¤@¼hªº¤¸¯À¡C§Ú¤£«ØÄ³³o¼Ëªº ¥Îªk¡C ¨ä¤@¬O¡APICK ©M ROLL ¨Ïµ{¦¡³]­p®v±N°ïÅ|¬Ý¦¨¬O¤@­Ó°}¦C¡A¦ý¨Æ¹ê¤W¥¦¨Ã¤£¬O¡C ¦pªG¦³³\¦h°ïÅ|¤¸¯À»Ý­n PICK ©M ROLL¡A³o¨Ç¤¸¯ÀÀ³¸Ó©ñ¦b°}¦C¸Ì¡C ²Ä¤G¡A¥¦¹ªÀyµ{¦¡³]­p®v¥h°Ñ¦Ò¤@¨Ç¥Ñ¤W¼h©w¸q©Ò¯d¦b°ïÅ|¤Wªº¤Þ¼Æ¡A¦Ó³o ¨Ç¤Þ¼Æ¨Ã¨S¦³¦b³o­Ó©w¸q¤¤³Q©ú½Tªº«ü¥X¨Ó¡C³o·|¨Ï±o³o­Ó©w¸qªº¹B§@­n¨Ì¿à¨ä¥¦ ªº©w¸q¡C³o¬O«Dµ²ºc¤Æªº --¨Ã¥B«Ü¦MÀI¡C ³Ì«á¡A¤@­Ó¤¸¯À¦b°ïÅ|¸Ìªº¦ì¸m¡A¬O¥Ñ¦b¥¦¤W­±¦³¦h¤Ö­Ó¤¸¯À¨Ó¨M©w¡A¦Ó¦b¥¦¤W­± ªº¤¸¯À¼Æ¶q«o¬OÀH®É·|§ïÅܪº¡CÁ|­Ó¨Ò¤l¡A¦pªG¦³¤@­Ó¦a§}¦b°ïÅ|ªº²Ä¥|­Ó¦ì¸m¡A§A¥i ¥H¼g

      4 PICK @

¨Ó¨ú±o¥¦ªº¤º®e¡C¦ý¬O§A¥²»Ý¼g¦¨

      ( n)  5 PICK !

¨Ó¦s¤J¥¦¡C¦]¬°¦³"n"¦b°ïÅ|¤W¡A²{¦b¥¦Åܦ¨¬O²Ä¤­­Ó¦ì¸m¤F¡C Ãþ¦ü³o¼Ëªºµ{¦¡½X«ÜÃøÅª¡A§óÃø¥H­×§ï¡C
»s§@°ïÅ|¹Ïªí

·í§A­n¸Ñ¨M¤@­ÓÁcÂøªº°ïÅ|±¡ªp¡A³Ì¦nªº¤èªk¬O¥Î¯È©Mµ§¡C¦³¨Ç¤H¬Æ¦Ü»s§@ªí®æ¡A¹³¹Ï 7-1©Ò¥Ü¡C³oºØ¥¿¦¡ªº¤u§@¡]¤ñ¨Ï¥Î¹q¸Ü½ã³æªº­I­±­n¦n¡^¨Ï°ïÅ|°O¨Æ¦¨¬°²M·¡ªº»²§U ©Ê¤å¥ó¡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
´£¥Ü ½T©w°ïÅ|®ÄªG¡]stack effects¡^¦b©Ò¦³¥i¯àªº±±¨î¬yµ{¤U³£¯à¥­¿Å¡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¹Ï7-1ªº CMOVE> °ïÅ|µù¸Ñ¸Ì¡A¤º¼hªº¥ª¤j¬A¸¹¼Ð¥Ü¥Xªº³¡¥÷¥Nªí DO LOOP ªº¤º®e¡C ¦b¶i¤J¦¹¤@°j°é®Éªº°ïÅ|²`«×»PÂ÷¶}®É¤@¼Ë: ¥u¦³¤@­Ó¤¸¯À¡C¦b¥~¼hªº¤j¬A¸¹¸Ì¡AIF ¤l ¥yªº°ïÅ|µ²ªG»P ELSE ¤l¥y¤@¼Ë: ¤]¥u¦³¤@­Ó¤¸¯À¯d¤U¡C¡]¯d¤Uªº¤¸¯À¬O¤°»ò¨Ã¤£­«­n¡A ¦]¦¹¥Î"x"ªí¥Ü¡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¤@­Ó¤¸¯À¥h°µ¨â¥ó¨Æ®É¡A¥ý°µ¨º¥ó°õ¦æªºµ²ªG·|¯d¦b°ïÅ|¸û¤U¤èªº¨Æ¡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:

      : COUNT   ( a -- a+1 # )   DUP C@  SWAP 1+  SWAP ;

¡]¦b³oùØ¡A§A¥ý¨ú±o­p¼Æ­È#¡^¤ñ¸û¦³®Ä²vªº¼gªk¬O¡G

      : COUNT   ( a -- a+1 # )   DUP 1+  SWAP  C@ ;

¡]¦b³oùØ¡A§A¥ý­pºâ·s¦a§} a+1¡^¡C

  ¹Ï7-1  °ïÅ|°O¨Æªº¨Ò¤l

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü   ¾¨¥i¯àªº¨Ï¶Ç¦^ªº¤Þ¼Æ¼Æ¶q¡A¦b©Ò¦³ªºª¬ªp¤U³£«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

§A¸g±`»Ý­n¤@ºØ©w¸q¡A¥¦¥­±`°µ¤@¨Ç¤u§@¡A¦ý¦b¦³¿ù»~µo¥Í®É¡A·|¶Ç¦^¤@­Ó¿ù»~½X ¥HÅã¥Ü¥X¿ù»~ªºµo¥Í¡C¤U­±¬O¤@ºØ¥i¯àªº°ïÅ|¤¶­±³]­p¡G

      ( -- error-code f | -- t)

¦pªGºX¸¹¬°¯u¡A¾Þ§@´N¬O¦¨¥\ªº¡C¦pªGºX¸¹¬°°²¡A´Nªí¥Ü¬O¥¢±Ñªº¡A¨Ã¥B°ïÅ|¸Ì·|¦³¥t¤@ ­Ó¼Æ­È¡A¥Î¨Óªí¥Ü¿ù»~ªº©Ê½è¡C ¦pªG±N¤¶­±­«·s³]­p¡A§A¥i¯à·|ı±o°ïÅ|ªº¾ÞÁaÅܱo¤ñ¸û®e©ö¨Ç¡G

      ( -- error-code | 0=no-error )

¥¦¨Ï¥Î¤@­Ó¼Æ­È¡A¦P®É¥NªíºX¸¹¤Î¡]·í¿ù»~±¡ªp®É¡^¿ù»~½X¡Cª`·N¡A¦b³o¸Ì¨Ï¥Î¤F ¬Û¤ÏªºÅÞ¿è¡G«D¹sªí¥Ü¤@­Ó¿ù»~¡C°£¤F¹s¥H¥~¡A§A¥i¥H¥Î¥ô¦ó¼Æ­È¨Ó¥Nªí¿ù»~½X¡C
Àu¶®ªºªð¦^°ïÅ|****

¨Ï¥Îªð¦^°ïÅ|¨Ó¼È®É¦a«O¦s¤Þ¼Æ¡A±N·|¦p¦ó¡H ³o¬O§_¬O¤@ºØ¦nªº­·®æ¡H ¦³¨Ç¤H¹ï³oºØ¥Îªk¡A¦³µÛ±j¯Pªº§Ü©Ú¡C¦ý¬O¡Aªð¦^ªº°ïÅ|½T¹ê¹ï¬YºØ°ïÅ|ªºÂø¶Ã µL³¹¡A´£¨Ñ¤F¤@­Ó²³æªº¸Ñ¨M¤èªk¡CCMOVE> ªº©w¸q´N¬O­Ó¹ê»Úªº¨Ò¤l¡C ¦pªG§A¨M©w¥H³oºØ¥Øªº¨Ó¨Ï¥Îªð¦^°ïÅ|¡A½Ð°O¦í¡A§A¬O¨Ï¥ÎµÛ¤@­Ó·íªì³]­pªº¥Øªº ¨Ã¤£¬°¦¹ªºµü¶°¡C¡]°Ñ¬Ý¥»³¹µy«á¡u¤¸¥óªº¦@¥Î¡v³¡¥÷¡^¡C ³o¸Ì¦³¤@¨ÇÁ×§K¶Ë®`ªº«ØÄ³¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü

1. «O«ùªð¦^°ïÅ|ªº¹B§@¬O¹ïºÙªº¡C 2. ¦b±±¨î¬yµ{ªº¦UºØ±ø¥ó¤U¡A³£­n±Nªð¦^°ïÅ|ªº¹B§@«O«ù¹ïºÙ¡C 3. ¦b¤À¸Ñ©w¸q®É¡A¨¾¤î¤U­±ªº±¡ªp¡G¤@³¡¥÷¥]§tµÛ¤@­Óªð¦^°ïÅ|ªº¹B§@¤¸¡A¦Ó»P ¥¦¤¬¸Éªº¹B§@¤¸«o¦b¥t¤@³¡¥÷¤¤¡C 4. ¦pªG¦b¡yDO LOOP¡z¸Ì¨Ï¥Î¡Aªð¦^°ïÅ|ªº¹B§@¤¸¥²»Ý¦b°j°é¸Ì¬O¹ïºÙªº¡A¦Ó¥B ¦b³Q¡y>R¡z©M¡yR>¡z©Ò¬É©wªºµ{¦¡¬q¤¤¡A¡yI¡z¤£¦A¦³®Ä¡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¸q¸Ì¡A¨C¤@­Ó¡y>R¡z¥²»Ý¦³¤@­Ó¡yR>¡z¡C¦³®É­Ô¡A¹B§@¤¸¬Ý°_¨Ó¬O¹ïºÙªº ¡A¥i¬O¥Ñ©ó±±¨îµ²ºcªºÃö«Y¡A¥¦¹ê»Ú¤W¨Ã¤£¹ïºÙ¡C¨Ò¦p¡G

      ...  BEGIN  ...  >R  ...  WHILE  ...  R>  ...  REPEAT

¦pªG³o­Óµ²ºc³Q¥Î¦bÀ³¥Îµ{¦¡ªº³Ì¥~¼h°j°é¤¤¡A¦b§A¸õ¥X¥H«e¡A¨C¤@¥ó¨Æ³£·|°õ¦æ ªº«Ü¶¶ºZ¡]¥i¯à¬O¤@¤p®É¤§«á¡^¡A¥i¬O¬ðµM¶¡µ{¦¡´N·í±¼¤F¡C«ç»ò¦^¨Æ¡H ¦]¬°³Ì«á¤@¦¸ ¸g¹L°j°é®É¡A¥­¿Å¹ïºÙªº°Ê§@¡yR>¡z³Q¸õ¹L¤F¡C
Åܼƪº°ÝÃD

ÁöµM§Ú­Ì¹ï¥Ø«e¦³¿³½ìªº¸ê®Æ³£©ñ¦b°ïÅ|¤W³B²z¡A¦ý¬O§Ú­Ì«o¤´µM­Ê¿àµÛÅܼƨÓÀx¦s¤j³¡ ¥÷ªº¸ê®Æ¡C¤@¬qµ{¦¡½X¥i¥H¦b¤£ª¾¹D¥ô¦ó¦³Ãö³o­ÓÅܼƬO¦p¦ó³Q¨Ï¥Îªº¡B¬O­n³Q½Ö¨Ï¥Îªº ¡B©Î¦b¦ó®É¦ó¦a¯à°÷³Q¨Ï¥Îªº±¡ªp¤U¡A´N¯à§ïÅܳo­ÓÅܼƪº¤º®e¡C¥t¤@¬qµ{¦¡½X¤]¥i¥H ¨ú±oÅܼƪº¤º®e¨Ã¥B¨Ï¥Î¥¦¡A¦Ó¤£¥Îª¾¹D³o­Ó¼Æ­È¬O¨Ó¦Û¦ó¤è¡C ¨C¤@­Ó±N¼Æ­È°ï¤W°ïÅ|ªº¦r¡A¥²©w¦³¥t¤@­Ó®ø¯Ó±¼¸Ó¼Æ­Èªº¦r¡C°ïÅ|µ¹§Ú­Ì¡uÂI¹ï ÂI¡vªº³q°T¡A´N¹³¶l§½¤@¼Ë¡C ÅܼơA±q¥t¤@­Ó¨¤«×¬Ý¨Ó¡A¥i¥H³Q¥ô¤@­Ó©R¥O³]©w¡A¨Ã¥B¥i¥H³Q¥ô¤@­Ó¨ä¥Lªº©R¥O ¦s¨úµL­­¦h¦¸ --©ÎªÌ§¹¥þ¤£¥h¨Ï¥Î¥¦¡CÅܼƬO¬°¨C¤@­Ó¤H¦Ó·Ç³Æªº¡A½ÖºÞ¥¦¬Ý°_¨Ó¹³ ¤°»ò¡C ¦]¦¹¡AÅܼƥi¥H³Q¥Î¨Ó¤ÏÀ³¥X¨Æª«ªº¥Ø«eª¬ºA¡]current state¡^¡C ¨Ï¥Î¡u¥Ø«eª¬ºA¡v¥i¥H²¤Æ°ÝÃD¡C¦b²Ä¥|³¹ªºÃ¹°¨¼Æ¦r¸Ì¡A§Ú­Ì¨Ï¥ÎÅÜ¼Æ COLUMN# ¥Nªí¥Ø«e³B²zªº"X¦ì¼Æ"¡F ¦r¡yONER¡z¡yFIVER¡z¡yTENER¡z¨Ì¦¹¸ê®Æ¨Ó¨M©w¸ÓÅã¥Ü¤°»ò ²Å¸¹¡C§Ú­Ì¤£¥²¨C¦¸³£´£¨ì©Ò­n³B²zªº¦ì¼Æ¡A¦p¡yTENS ONER¡z¡B¡yTENS FIVER¡zµ¥µ¥¡C ´«¤@­Ó¨¤«×¨Ó¬Ý¡A¡u¥Ø«eª¬ºA¡v«o¼W¥[¤Fµ{¦¡·s¤@¼hªº½ÆÂø«×¡C¬°¤F¨Ï¬Yª«¦¨¬°"¥Ø «eªº"¡A§Ú­Ì¥²»Ý¥ý©w¸q¥X¤@­ÓÅܼơA©Î¬Y¤@ºØ¸ê®Æµ²ºc¡C¦pªG¦b¥¦³Q³]©w¤§«e¡Aµ{¦¡¤¤ ´N¤w¸g¦³¨ä¥¦ªº³¡¥÷»Ý­n°Ñ¦Ò¥¦¡A¨º»ò´N­n°O±o°µªì­È³]©w¡C Åܼƪº¥t¤@­Ó§óÄY­«ªº°ÝÃD¬O¡A¥¦­Ì¬O¤£¯à³Q"¦A¶i¤J"¡]re-entrant¡^ªº¡C¦b¦h¤u ªº²Å¦¡¨t²Î¸Ì¡A¤@¥ó»Ý­n§½³¡Åܼƪº"¤u§@"¡]task¡^¡A¥²»Ý¦³¥¦¦Û¤vªº¤@¥÷³o­ÓÅܼƪº «þ¨©¡C²Å¦¡ªº USER ÅܼƴN¬O¬°¤F³o¶µ¥ô°È¦Ó³]¡C¡]°Ñ¦ÒStarting Forth ²Ä¤E³¹¡A "Forth Geography" ³¡¥÷¡C¡^ §Y¨Ï¦b³æ¤@ªº¤u§@¤¤¡A¤@­Ó°Ñ¦ÒÅܼƪº©w¸q¡A¤]¤ñ¸g¥Ñ°ïÅ|¨Ó¶Ç°e¤Þ¼Æ¡A§óÃø´ú¸Õ¡B ÅçÃÒ¡B¤Î¦A¨Ï¥Î¡]resue¡^¡C °²³]§Ú­Ì­nµo®i¤@­Ó¤å®Ñ³B²z¾¹¡C§Ú­Ì»Ý­n¤@­Óµ{§Ç¡A¥¦¯à­pºâ¥X¥Ø«eªº´å¼Ð¦ì¸m»P «e¤@­Ó´«¦æ°Ê§@¤§¶¡ªº¦r¤¸¼Æ¶q¡C©Ò¥H¡A§Ú­Ì¥²»Ý¦³¤@­Ó¦r¡A¥¦¨Ï¥Î¡yDO LOOP¡z¡A¦Û¥Ø «eªº´å¼Ð¦ì¸m¡] CURSOR @ ¡^¶}©l¡Aª½¨ì²Ä¹s­Ó¦ì¸mµ²§ô¡A¦b¨ä¶¡¦V«e·j´M"´«¦æ"³o­Ó¦r ¤¸¡C ¤@¥¹¦b°j¸ô¤¤§ä¨ì³o­Ó¦r¤¸¡A§Ú­Ì´N±N¥¦ªº¬Û¹ï¦ì¸m±q¥Ø«eªº´å¼Ð¦ì¸m¤¤´î¥h

      its-position CURSOR @  SWAP -

¥H¨M©w¥¦­Ì¤§¶¡ªº¶ZÂ÷¡C ³o­Ó¦rªº°ïÅ|®ÄªG¦p¤U:

      ( -- distance-to-previous-cr/lf)

¦bµy«áªºµ{¦¡½X¸Ì¡A§Ú­Ì¤Sµo²{»Ý­n¥t¤@­ÓÃþ¦üªº¦r¡A¥¦­pºâ±q¥ô·N¤@­Ó¦r¤¸ --¤£ ¦b¥Ø«e´å¼Ðªº¦ì¸m¤W-- ¦Ü«e­±²Ä¤@­Ó´«¦æ¦r¤¸¤§¶¡ªº¶ZÂ÷¡Cµ²½×¬O¡A§Ú­Ì­n±N¡yCURSOR @ ¡z¤À¸Ñ¥X¨Ó¡A¨Ã±N³o­Ó"¶}©l¦ì¸m"·í°µ¬O¤@­Ó°ïÅ|¤Þ¼Æ¨Ó¶Ç»¼¡Aµ²ªG¬O:

      ( starting-position -- distance-to-previous-cr/lf)

±NÅܼƪº°Ñ¦Ò¤À¸Ñ¥X¨Ó¡A§Ú­Ì´N¯à¨Ï³o­Ó©w¸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
´£¥Ü °£«D·|¨Ï°ïÅ|ÅܪºÂø¶Ã¦Ó¾É¦ÜÃø¥H»{Ūªº±¡ªpµo¥Í¡A§_«hÀ³¸Ó¾¨¶q¦a¸g¥Ñ°ïÅ|¨Ó ¶Ç»¼¤Þ¼Æ¡A¦Ó¤£­n¸g¥ÑÅܼơ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
KoggeªºÆ[ÂI¡G

±q¼Æ¾Çªº·N¸q¨Ó¬Ý¡A²Å¦¡ªº¼Ò²Õ©Ê¤j¦h¨Ó¦Û©ó¡G±N²Å¦¡ªº"¦r"¹³"¥\¯à"¤@¼Ëªº³]­p ©M¬Ý«Ý¡C¦b§Úªº¸gÅç¸Ì¡A²Å¦¡ªºµ{¦¡³]­p®v°£¤F³Ì­«­nªº¾ãÅéÅܼƤ§¥~¡A³£ºÉ¶qÁ× §K©w¸q¥ô¦óÅܼơ]§Úªº¤@¦ìªB¤Í¦³­Ó¡u«ô°UÁ×±¼Åܼơvªº¶K¯È¦b¥Lªº®à¤W¡^¡A¨Ã¥B ¸ÕµÛ¼g¥X©Ò¿×¡u°Ñ¦Ò¤W¬O³z©úªº¡]referential transparency¡^¡v¦r¡F¤]´N¬O¡Aµ¹ ¥¦¬Û¦Pªº°ïÅ|¿é¤J¡A³o­Ó¦rÁ`¬O²£¥Í¬Û¦Pªº°ïÅ|¿é¥X¡A¦Ó¤£¨ü¥¦¤º³¡¨º¨Ç§ó¨ãÁ`Åé ©Êªº¤å¥yªº¼vÅT¡C¨Æ¹ê¤W¡A³o­Ó¯S©Ê¥¿¬O§Ú­Ì¦b¿W¥ß´ú¸Õ¤@­Ó¦r®É©Ò¨Ï¥Îªº¡C¨S¦³ ³oºØ¯S©Êªº¦r·|«D±`¦aÃø¥H´ú¸Õ¡C¦b¬YºØ·N¸q¤W¡A¤@­Ó¤º®e¸g±`§ïÅܪº¡u¦³¦W¦rªº Åܼơv¡A¬O¶È¦¸©ó²{¦b¤w¸g³Q"¸T¤î¨Ï¥Î"ªº GOTO ±Ô­zªº¦¸¤@ÁV¿|ªºª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¢w¢w

µy¦­§Ú­Ì´¿«ØÄ³¨Ï¥Î§½³¡ÅܼơA¯S§O¬O¦b³]­p¶¥¬q¤¤¡A¥Î¨ÓÁ×§K°ïÅ|ªº¾ÖÀ½±¡ªp¡CÀ³¸Óª` ·Nªº¬O¡A³oºØ°µªk»Ý­nÅܼƥu¦b¤@­Ó©w¸q¤º³Q°Ñ¦Ò¨ì¡C¦b§Ú­Ìªº¨Ò¤l¸Ì¡A[BOX] ±q°ïÅ| ±µ¦¬¥|­Ó¤Þ¼Æ¡A¨Ã¥ß¨è±N¥¦­Ì¸ü¤J¨ì§½³¡ÅܼơA¨Ñ¥¦¦Û¨­¨Ï¥Î¡C³o¥|­ÓÅܼƨS¦³¦b³o­Ó ©w¸q¤§¥~³Q°Ñ¦Ò¡A¦]¦¹¡A¥¦ªº¹B§@´N·|«Ü¦w¥þ¡C ¹ï©ó¤£²ßºD¤@ºØ¡u¸ê®Æ¥i¥H³QÁô§t¦a¶Ç»¼¡vªº¹q¸£»y¨¥ªºµ{¦¡³]­p®v¦Ó¨¥¡AÁ`¬O ¤£¯à¥R¥÷¦a¨Ï¥Î°ïÅ|¡CMichael Hamı±o¡A¥i¯à¬O¦]¬°²Å¦¡ªºªì¾ÇªÌ¤£«H¥ô°ïÅ|[1]¡C ¥L©Ó»{¦b¶}©l®Éªº·Pı¬O¡G¼Æ­ÈÀx¦s¦bÅܼƸ̦ü¥G­n¤ñ¯d¦b°ïÅ|¤W¦w¥þ±o¦h¤F¡C¥LÃhºÃ¡A ¡u¦b°ïÅ|¸g¹L¼@¯PªºÅÍ©M¤§«á¡A¸ê®Æ¤£ª¾¹D·|Åܦ¨¤°»ò¼Ò¼Ë¡H¡v ¸g¹L¤@¬q®É¶¡¤§«á¡A¥L¤~Åé·|¨ì¡u¦pªG¦r¯àºÞ¦n¥¦¦Û¤vªº¨Æ¡A¥u¦b¥¦­Ì´Á«Ýªº¿é¤J ©M¿é¥X¤W¤~¥h¨Ï¥Î°ïÅ|¡A¦Ó¥B¦b¥Î§¹¤§«á¡A·|±N¥¦²M²z°®²b¡C¨º»ò¡A¦r´N¥i¥H³Q¬Ý¦¨¬O¤@ ºØ«Ê³¬ªº¨t²Î ... §Ú¯à°÷¦b¤@­Ó°j°é¶}©l®É¡A¥ý¦b°ïÅ|¤W©ñ­Ó­È¡A¦b¥¦¨«¹L¾ã­Ó±`¦¡¤¤ ªº¨C¤@­Ó´`Àô¤§«á¡A¦b°j°éµ²§ôªº¦a¤è¡A¥¦¤S¥X²{¦b°ïÅ|ªº³»ºÝ¡A¨S¦³¤@µ·¤@²@¦ì¸m ¤Wªº®t¿ù¡C¡v


§½³¡©M¾ãÅéÅܼơþªì­È³]©w

´N¦p§Ú­Ì¥ý«e©Ò¨£¡A¤@­ÓÅܼơA­Y¯­³Q¨Ï¥Î¦b¤@­Ó©w¸q¡]©Î¤@­Óµü¶°¡^¤§¤º¡A¨Ã¹ï¨ä¥¦ ªºµ{¦¡½XÁôÂð_¨Ó¡A´NºÙ¬°§½³¡ÅܼơC¤@­Ó¨Ï¥Î¦b¶W¹L¤@­Ó¥H¤Wªºµü¶°¤¤ªºÅܼơAºÙ¬° ¾ãÅéÅܼơC¦p«e­±ªº³¹¸`¤¤©Ò¨£¡A¤@²Õ¾ãÅéÅܼơA­Y¥¦ºî¦XµÛ´y­z¥X´X­Óµü¶°¤§¶¡ªº¤¶ ­±¡A´NºÙ¬°¡u¤¶­±µü¶°¡v¡C §½³¡ÅܼƩM¾ãÅéÅܼƹï²Å¦¡¦Ó¨¥¡A¬O¨S¦³®t§Oªº¡C¦ý¬O¡A¹ï²Å¦¡ªºµ{¦¡³]­p®v«o¬O ¤£¦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¢w¢w
MooreªºÆ[ÂI:

§Ú­Ì¥²»Ý¬°Åªµ{¦¡½Xªº¤H¦Ó¼g¡C¦pªG¬Y¥ó¨Æ¥u¬O¦b§½³¡³Q°Ñ¦Ò¡A¨Ò¦p¤@­Ó¼È®É¥Î¨Ó²Ö¿n Á`¦XªºÅܼơA¨º§Ú­Ì´N¸Ó±N¥¦©w¸q¬°§½³¡ÅܼơC¶¶¤â´N±N¥¦©w¸q¦b©Ò¨Ï¥Îªº°Ï¶ô¤º¡AÅý §A¥i¥H¬Ý¨ì¥¦ªºµù¸Ñ¡C ¦ý¬O¡A¦pªG¥¦³Q¨ì³B³£¨Ï¥ÎµÛ¡A§Ú­Ì´N¥²¶·¨Ì¨äÅÞ¿è¤Wªº¥\¯à¨ÓÂkÃþ¡A±N¥¦­Ì¶°¤¤¦b¤À ¶}ªº¤@­Ó¹õ¤¤¡C¤@­Ó¤@¦æ¡A¨Ã¥B¸òµÛ¤@­Óµù¸Ñ¡C °ÝÃD¬O¡A§A­n¦b¦ó³B°µ¥¦­Ìªºªì­È³]©w¡H¦³¨Ç¤H»¡¥i¥Hºò±µ¦b©w¸q¤§«á¡C¦ý³o¼Ë°µ·| §Ë¶Ãµù¸Ñ¡A¦Ó¥B¤]´N¤£¯à¯d¤U¨¬°÷ªºªÅ¶¡¡A°µ¤ñ¸û§¹¾ãªºµù¸Ñ¡C¥t¥~¡A³o¼Ë°µ¤]·|¨Ïªì ­È³]©wªº°Ê§@¡A´²§G¦bÀ³¥Îµ{¦¡¤¤¦U³B¡C §Ú¶É¦V©ó¡A¦b¸ü¤J¹õ¤¤°µ©Ò¦³ªºªì­È³]©w¡C¦b©Ò¦³ªº°Ï¶ô³£¸ü¤J¤F¤§«á¡A¦A°µ¥²»Ýªºªì ­È³]©w¡A¤]³\¦P®É¤]³]©w¤@¨Çªí®æ¡A©Î°µ¤@¨Ç°_©lªº°Ê§@¡C ¦pªG§Aªºµ{¦¡³Ì«á¬O­n°µ¥Ø¼Ð½sĶ¡]Target compiled¡^¡A¨º»ò¡A¤]«Ü®e©ö¦b¦¹¦a¼g¥X¤@ ­Ó°õ¦æ©Ò¦³ªì­È³]©wªº¦r¡C ¥¦ÁÙ¥i¥H°µªº§óºë¥©¨Ç¡C§Ú´¿¸g¦b¨Ï¥ÎROMªº¨t²Î¸Ì©w¸qÅܼơA¥¦­Ìªº­È¦s©ñ¦b°ª°O¾ÐÅé ¤ºªº¤@­ÓRAM°}¦C¤¤¡Aªì­È«h³Q¦s¦bROM¤¤¡C°µªì­È³]©w¡A´N¬O±NROMªì­È«þ¨©¨ìRAM°}¦C ¤¤¡C¦ý¬O¡A³q±`ªº±¡ªp¬O¥u»Ý­n³]©w´X­Óªì­È¤£¬°¹sªºÅܼơ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

ª¬ºAªº«O¦s©M«ì´_

ÅܼƦ³¤@ºØ¯S©Ê¡A´N¬O·í§A§ïÅÜ¥¦ªº¤º®e®É¡A¤]¦P®É·´±¼¤F­ì¥ý¦b¸Ó³Bªº­È¡CÅý§Ú­Ì¬Ý ¤@¤U³o¥ó¨Æ©Ò·|¤Þµoªº°ÝÃD¡A¥H¤Î§Ú­Ì¸Ñ¨Mªº¹ïµ¦¡C BASE ¬O¤@­ÓÅܼơA¥¦ªí¥Ü©Ò¦³¿é¤J©M¿é¥Xªº¼Æ­È¡A¥Ø«e©Ò¿í´`ªº¶i¦ì¨î¡C¥H¤Uªº ¦r¦b²Å¦¡¨t²Î¸Ì¸g±`¥i¥H¨£¨ì¡G

      : DECIMAL   10 BASE ! ;
      : HEX   16 BASE ! ;

°²³]§Ú­Ì¼g¤F¤@­Ó¦r¡A¥Î¨Ó"Åã¥Ü"¡]dump¡^¤@°ï°O¾ÐÅ骺¤º®e¡C¥Ø«e§Ú­Ì¤u§@¦b¤Q¶i ¨î¤U¡A¦ý¬O«o­n¥Î¤Q¤»¶i¨î¥hÅã¥Ü¥¦ªº¤º®e¡C©Ò¥H§Ú­Ì¼g:

      : DUMP  ( a # --)
         HEX  ...  ( code for the dump ) ... DECIMAL ;

³oºØ°µªk¬O¥i¦æªº --¦b¤j³¡¥÷ªº®É­Ô¡C¦ý³o»Ý­n¤@­Ó«eÃD¡A´N¬O¡A³Ì«á¬O­n¦^¨ì¤Q¶i¨î ªº¡C¦pªG¥¦­ì¥ý´N¦b¤Q¤»¶i¨î¤U¡A°µ§¹«á¤´µM­n¯d¦b¤Q¤»¶i¨î¡A³o¤S¸Ó¦p¦ó¡H¦b§Ú­Ì±N BASE §ï¦¨ HEX ¤§«e¡A¥²»Ý¥ý«O¦s¥¦¥Ø«eªº­È¡C¦b§¹¦¨Åã¥Ü¤§«á¡A¦A±N¥¦ÁÙ­ì¡C ³o´N¬O»¡¡A¦b§Ú­Ì°µªº®É­Ô¡A¥²»Ý¥ý¼È®É¦a±N­ì¥ýªº¼Æ­È«O¦s°_¨Ó¡Cªð¦^°ïÅ|¬O­Ó ¥i¥H¥Î¨Ó°µ³o¥ó¨Æªº¦a¤è¡G

      : DUMP  ( a # -- )
          BASE @ >R  HEX  ... (code for dump) ...  R> BASE ! ;

¦pªG¨Æ±¡Åܪº¤Ó½ÆÂø¡A§Ú­Ì´N¥²»Ý©w¸q¤@­Ó¼È®ÉªºÅܼÆ:

      VARIABLE OLD-BASE
      : DUMP  ( a # -- )
          BASE @ OLD-BASE !  HEX  ... (code for dump) ...
          OLD-BASE @ BASE ! ;

§A¬Ý¡A¨Æ±¡«Ü§Ö¦a´NÅܱo½ÆÂø¤F¡C ¦b³oºØ±¡ªp¤U¡A¦pªG¤@­ÓÅܼƪº"¥Ø«e"©M"¥ý«e"ªºª©¥»³£¥u¬OÄÝ©ó§AªºÀ³¥Î³¡¥÷ ¡]¦Ó¤£¬O¨t²Î³¡¥÷¡^¡A¦Ó¥B³oºØª¬ªp¥X²{¤£¥u¤@¦¸¡A¨º»ò´N¥i¥H¨Ï¥Î¤À¸Ñªº§Þ³N:

      : BURY  ( a --)   DUP 2+  2 CMOVE ;
      : EXHUME ( a --)   DUP 2+  SWAP 2 CMOVE ;

µM«á¡A¥u»Ý©w¸q¤@­ÓÂùªø«×ªºÅܼơA¥H¨ú¥N­ì¨Ó¥²¶·©w¸qªº¨â­ÓÅܼơA¦p CONDITION ©M OLD-CONDITION¡C¦¹ÅܼƬ°¡G

      2VARIABLE CONDITION

¨Ï¥Î BURY ©M EXHUME ¨Ó«O¦s©MÁÙ­ì³o­ÓÅܼơG

      : DIDDLE   CONDITION BURY   17 CONDITION !  ... (diddle) ...
         CONDITION EXHUME ;

BURY ¦b¡yCONDITION 2+¡z¤§³B«O¦s¤F"ÂÂ"ª©¥»¡C §AÁÙ¬O­n«Ü¤p¤ß¡C¦^¨ì§Ú­Ì DUMP ªº¨Ò¤l¡A°²³]§A­n¼W¥[¤@­Ó¤ñ¸û¤è«Kªº¥\¯à¡A Åý¨Ï¥ÎªÌ¦b¥ô¦ó®É¨è¡A¥u­n«ö"escape"Áä¡A´N¥ß§YÂ÷¶}DUMP¡A°±¤îÅã¥Ü¡C ©Ò¥H¡A¦b°j°é¸Ì¡A§Aºc«Ø¤F¤@­Ó«öÁäÀˬd¡A·í"escape"Áä³Q«ö¤U®É¡A´N°õ¦æ¡yQUIT¡z¡C ¦ý¬Oµ²ªG¦p¦ó¡H ¨Ï¥ÎªÌ¥Ñ¤Q¶i¨î¶}©l¡AÁä¤J¡yDUMP¡z¡C¥L¦b DUMP ªº³~¤¤¸õ¥X¡Aµo²{¥L¦Û¤v¡A«Ü©_ ©Çªº¡A³ºµM¬O¦b¤Q¤»¶i¨îªºª¬ºA¤U¡C ¦b³o­Ó²³æªº¨Ò¤l¸Ì¡A³Ì¦nªº¸Ñ¨M¿ìªk¬O¡A¤£­n¨Ï¥Î¡yQUIT¡z¡A¹çÄ@¨Ï¥Î¤@­Ó¨ü±±¨î ªº¸õÂ÷«ü¥O¡]¦p LEAVE¡A©Î¨ä¥¦«ü¥O¡^¨Ó¸õ¥X°j°é¡A¦Ó¦^¨ì©w¸q¤¤ BASE ³QÁ٭쪺¦a¤è¡C ¦b«D±`½ÆÂøªºÀ³¥Î¸Ì¡A¤@­Ó¨ü±±¨îªº¸õ¥X¡A³q±`¬O¤£¤Á¹ê»Úªº¡A¦]¬°¥i¯àÁÙ¦³³\¦h Åܼƥ²»Ý³QÁ٭쬰¬Y¤@ª¬ºA¡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
Moore¹ï³o­Ó¨Ò¤lªº¤ÏÀ³¡G

§A¯u¬O¥´¤F­Ó¦ºµ²¡C§A¬O¦b¦Û§ä³Â·Ð¡C¦pªG§Ú»Ý­n¤@­Ó¤Q¤»¶i¨îªº DUMP ¡A§Ú´N·|»¡ HEX DUMP¡C¦pªG§Ú­nªº¬O¤Q¶i¨îªº DUMP¡A§Ú´N»¡ DECIMAL DUMP¡C§Ú¤~¤£Åý DUMP ¦³ Åv§Ë¶Ã§ÚªºÀô¹Ò¡C ¦bµ²§ô®É«ì´_¤@ºØª¬ºA©M¦b¶}©l®É«Ø¥ß¤@ºØª¬ºA¡A³o¨âªÌ¤§¶¡¦³¤@ºØ­õ²z¤Wªº¿ï¾Ü¡C ¦³«Üªø¤@¬q®É¶¡¡A§Úı±o¥²»Ý¦bµ²§ô®É±Nª¬ºA«ì´_¡C¨Ã¥B§Ú·|ºÉ¶q¸ÕµÛ¦b¦U³B³£«O «ù¤@­Pªº°µªk¡C¦ý¬O¡A­n¨M©w¤°»ò¦a¤è¬O"¦U³B"¨Ã¤£®e©ö¡C©Ò¥H¡A²{¦b§Ú¹çÄ@¦b¶}©l «e«Ø¥ßª¬ºA¡C ¦pªG§Ú¦³¤@­Ó¦r¡A¥¦«Ü¦b·NªF¦èªº¦ì¸m¡A¨º¥¦³Ì¦n¦Û¤v¥h³]©w¥¦­Ì¡C¦pªG¥t¥~¦³§O¤H §ïÅܤF¥¦­Ì¡A¥¦¤]¤£¥²¶O¤ß¦a¥h­«¸m¡]reset¡^¡C ¥X¤fÁ`¬O¤ñ¤J¤f­n¦h¤@¨Ç¡C¡]͵ù¡G·N«ä¬O»¡¡A¦pªG¿ï¾Ü¨Ï¥Î"«ì´_"ª¬ºAªº°µªk¡A ¨º»ò¡A´N»Ý­n¦b¨C¤@­Ó¥X¤f³£°µ³o¨Ç¨Æ¡A¦]¦¹¡A¤]´N¦h°µ¤F³\¦h¤u§@¡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»Ý­n¦b§¹¦¨¤@¥ó¨Æ¤§«e¡A°µ­«¸mª¬ºAªº¤u§@¡A¦b³oºØ±¡ªp¤U­Y¯à¦³³æ¤@­Ó¦r¡]§Ú ºÙ¥¦¬° PRISTINE¡^¨Ó°µ³o¥ó¤u§@¡A±N·|¬O«Ü¦³À°§Uªº¡C§Ú¨Ï¥Î PRISTINE ªº±¡ªp¬°¡G

¡E ¦bÀ³¥Îµ{¦¡¤¤¡A¥¿±`ªºÂ÷¶}¡]exit¡^¤§³B¡C ¡E ¦b¨Ï¥ÎªÌ¦³·NÂ÷¶}¤§³B ¡]¦b QUIT ¤§«e¡^¡C ¡E ¦b¥ô¦ó¥i¯àµo¥Í­P©R¿ù»~¡A¤Þ°_¤¤¤î¡]abort¡^¤§³B¡C

³Ì«á¡A·í§A¹J¨ì³oºØ¥²»Ý«O¦s¡þ«ì´_¤@­Ó¼Æ­Èªº±¡ªp®É¡A­n½T©w¥¦¨Ã¤£¬O¦]¬°¤£¨}ªº¤À¸Ñ ¦Ó³y¦¨ªº¡C¨Ò¦p¡A°²¨Ï§Ú­Ì¤w¸g¼g¤F¡G

      : LONG   18 #HOLES ! ;
      : SHORT   9 #HOLES ! ;
      : GAME   #HOLES @  0 DO  I HOLE PLAY  LOOP ;

¥Ø«eªº GAME ¤£¬O LONG ´N¬O SHORT¡C µy«á¡A§Ú­Ì¨M©w»Ý­n¤@­Ó¦r¨Óª±¥ô¦ó¼Æ¥Øªº¬}¡C©Ò¥H§Ú­Ì­É§U GAME¡A ¥H½T©w¤£ ·|·´±¼ #HOLES ¥Ø«eªº¼Æ­È¡G

      : HOLES   ( n -- )   #HOLES @  SWAP  #HOLES !   GAME   #HOLES ! ;

¦]¬°§Ú­Ì¬O¦b©w¸q¤F GAME ¤§«á¡A¤~µoı»Ý­n HOLES¡A©Ò¥H¥¦¬Ý°_¨Ó¦ü¥G¤ñ¸û½ÆÂø¡F§Ú ­Ì¬O¨Ï¥Î GAME ¨Ó«Ø¥ß HOLES¡C¦ý¬O¨Æ¹ê¤W --¤]³\§A¤w¸g¬Ý¥X¨Ó¤F-- ¦A·Q¤@¤U¥¦ªº¶¶ §Ç¡G

      : HOLES ( n --)   0  DO  I HOLE PLAY  LOOP ;
      : GAME   #HOLES @  HOLES ;

§Ú­Ì¥Î HOLES ¨Ó«Ø¥ß GAME¡A¦]¦¹¬Ù¥h¤F¨º¨ÇµL·N¸qªºÀx¦s©M«ì´_ªº°Ê§@¡C
À³¥Î¤Wªº°ïÅ|

¦b¤W¤@¸`¸Ì¡A§Ú­Ì¾Ç²ß¤F´XºØ«O¦s©M«ì´_¤@­Ó¥ý«e¼Æ­Èªº¤èªk¡C¦b¦³¨ÇÀ³¥Î¤¤¡A¤]³\»Ý­n¦P®É«O¦s©M«ì´_´X­Ó¼Æ­È¡C§A·|µo²{¡A¸Ñ¨M³oÃþ°ÝÃDªº³Ì¦n¿ìªk¬O¡A©w¸q¥X§A¦Û¤vªº°ïÅ|¨Ó¡C ³o¸Ì¦³¤@­Ó«Ø¥ß¨Ï¥ÎªÌ°ïÅ|ªºµ{¦¡½X¡A¥¦¤]¥]§t²³æªº¿ù»~Àˬd¡]­Y¿ù»~µo¥Í¡A«h°ïÅ|·|³Q²M°£¡^¡G

    CREATE STACK  12 ALLOT    \  { 2tos-pointer | 10stack [5 cells] }
    HERE CONSTANT STACK>
    : INIT-STACK   STACK STACK ! ;    INIT-STACK
    : ?BAD   ( ?-- )   IF  ." STACK ERROR "  INIT-STACK  ABORT  THEN ;
    : PUSH   ( n --)   2 STACK +!  STACK @ DUP  STACK> = ?BAD  ! ;
    : POP   ( -- n )   STACK @ @  -2 STACK +!  STACK @  STACK <  ?BAD ;

¦r PUSH ±q¸ê®Æ°ïÅ|¤W¨ú¥X¤@­Ó¼Æ­È¡A¨Ã±N¥¦"°ï¤J"³o­Ó·sªº°ïÅ|¡CPOP «h¬Û¤Ï¡A ¥¦±q·sªº°ïÅ|"¨ú¥X"¤@­Ó¼Æ­È¡A¨Ã±N¥¦©ñ¨ì²Å¦¡ªº¸ê®Æ°ïÅ|¤W¡C ¦b¹ê»ÚªºÀ³¥Î¸Ì¡A§A©Î³\»Ý­n§ïÅÜ PUSH ©M POP ªº¦W¦r¡A¥H²Å¦XÆ[©À¤Wªº·N¸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
´£¥Ü ±N¤¸¥ó¨Ï¥Î¦b»P­ì¥ý³]­p¥Øªº¤£¦Pªº³õ¦X¤¤¬O¥i¥Hªº¡A¥u­n¡G 1. ©Ò¦³¹ï³o­Ó¤¸¥óªº¨Ï¥Î³£¬O¤¬¤£¯¡Ä²ªº¡C 2. ¨C·í¥H¤¤Â_¤è¦¡¡]¤£½×¬OµwÅé©Î³nÅé¡^¥h¨Ï¥Î¤@­Ó¤¸¥ó®É¡A¦b¥Î§¹¤§«á¡A¥²¶· ±N³o­Ó¤¸¥óªº¥ý«eª¬ºA«ì´_¡C §_«h¡A§A´N»Ý­n¼W¥[¤@­Ó¤¸¥ó¡A©ÎªÌ¼W¥[¤@¼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

ªð¦^°ïÅ|¬O³oºØ­ì«hªº¤@­Ó²³æ¨Ò¤l¡C¥¦¬O²Å¦¡¨t²Îªº¤@­Ó¤¸¥ó¡A³Q³]­p¨Ó«O¦s¤@­Ó°ª ¶¥¦r¡]«_¸¹©w¸q¡^ªºªð¦^¦a§}¡C¦]¦¹¡A¥¦¯à§iª¾§A´¿¦b¦ó³B¤Î±N¨ì¦ó³B¡C§âªð¦^°ïÅ|·í °µ¬O¼Æ­Èªº¼È®ÉÀx¦s¤§©Ò¡A¬O¥i¯àªº¡A¦Ó¥B¦b¦³¨Ç±¡ªp¤U¤]¬O¥²­nªº¡C¦ý¬O¡A¦pªG©¿µø ¤F¤W­±´£¨ìªº­­¨î¡A´N·|²£¥Í°ÝÃD¡C ¦b§Úªº¤å®Ñ±Æª©¾¹¡]text formatter¡^¸Ì¡A¿é¥X¥i¥H¬O"¬Ý¤£¨£ªº"¡]invisible¡^¡C ³oºØ¥\¯à¦³¨â­Ó¥Øªº¡G¡]1¡^¤¹³\¥ý¤@¨B¦V«e¬d¬Ý¡]lookahead¡^¡A¬Ý¬Ý¬O§_¦³¤°»òªF¦è «ê¦n¥i¥H¶ñ¤JªÅÀÉ¡A¥H¤Î¡]2¡^¥Î¨Ó½s±Æ¥Ø¿ý¡]¯à¹ï¾ã­Ó¤å¥ó¥[¥H½s±Æ¡A¥H¨M©w­¶¼Æ¡A ¦ý«o¤£¥²¹ê»Ú¦a¿é¥X¥ô¦óªF¦è¡^¡C §Ú´¿¥H¬°¡A¤@¥¹¥[¤W¤F¯à¨Ï¿é¥XÅܬ°¤£¥i¨£ªº³oºØ¥\¯à¤§«á¡A´N¯à¨Ï¥Î¥¦¦P®É¹F ¨ì¤W­±¨º¨â­Ó¥Øªº¡C¤£©¯ªº¬O¡A³o¨â­Ó¥Øªº¨Ã¤£¬O¤¬¤£¯¡Ä²ªº¡C Åý§Ú­Ì¬Ý¤@¤U¡A¦pªG¹H¤Ï¤F´£¥Ü¤¤ªº³W©w·|¦³¤°»òµ²ªG¡C°²³]¡yÅã¥Ü¡z³o­Óµü ­t³d¿é¥X¡C¦Ó¥B¡A¥¦¯à¸g¥Ñª¬ºAªº§PÂ_¡Aª¾¹D¬O§_¿é¥X¬O­n¥i¨£ªº¡A©Î¬OÁôÂ꺡C ¡y¥i¨£¡z©M¡y¤£¥i¨£¡z³o¨â­Óµü¤À§O¥Î¨Ó³]©w³o¨âºØª¬ºA¡C §Ú¨º­Ó¡u©¹«e¬d¬Ý¡vªºµ{¦¡½X­º¥ý°õ¦æ¡y¤£¥i¨£¡z¡AµM«á°²¸Ë½s±Æ±µ¤U¨Óªº¤å ¥y¡A¥H¨M©w¥¦ªºªø«×¬O§_¦X¾A¡A³Ì«á¦A°õ¦æ¡y¥i¨£¡z±N¨Æ±¡«ì´_¬°­ì¨Óªº¼Ë¤l¡C ¥¦³o¼Ë¤u§@ªº«Ü¥¿±`¡C ¤§«á¡A§Ú¥[¤W¤F½s±Æ¥Ø¿ýªº¥\¯à¡C¥¦­º¥ý°õ¦æ¡y¤£¥i¨£¡z¡AµM«á½s±Æ¾ã­Ó¤å¥ó¥H¨M©w ­¶¼Æµ¥µ¥¡F³Ì«á°õ¦æ¡y¥i¨£¡z±N¨Æ±¡«ì´_¬°±`ºA¡C °ÝÃD¨Ó¤F¡H°²³]§Ú¥¿½s±Æ¤@­Ó¥Ø¿ý¡A¨Ã¥B¸I¨ì¤F¤@­Ó»Ý­n¨Ï¥Î¡u¦V«e¬d¬Ý¡v¥\¯àªº ¦a¤è¡C·í§Úµ²§ô¦V«e¬d¬Ý®É¡A§Ú°õ¦æ¤F¡y¥i¨£¡z¡C¬ðµM¶¡¡A¦bÀ³¸Ó°µ½s±Æ¥Ø¿ý®É¡A«o¶} ©l¦L¥X¤å¥ó¨Ó¡C ¸Ñ¨Mªº¤èªk¡H¦³¦n´XºØ¡C ¨ä¤¤¤§¤@»{¬°¡A¥Ñ©ó¤Þ°_°ÝÃDªº­ì¦]¬O¦]¬°¡u¦V«e¬d¬Ý¡vªºµ{¦¡½X·´±¼¤F¥i¨£¡þ¤£ ¥i¨£ªººX¼Ð¡A¦Ó³o­ÓºX¼Ð¤]³\¤w¸g³Q¡u½s±Æ¥Ø¿ý¡vªº¥\¯à³]©w¤F¡C¦]¦¹¡u¦V«e¬d¬Ý¡vªº µ{¦¡½X´NÀ³¸Ó­t³dºX¼Ðªº«O¦s¤Î«ì´_¡C ¥t¤@ºØ¸Ñ¨Mªº¤èªk»{¬°¡A»Ý­n«O¦³¨â­Ó¤À§OªºÅܼơA¤@­Ó¥Î¨Ó«ü¥Ü§Ú­Ì¥¿¦b¡u¦V«e¬d ¬Ý¡v¡A¥t¤@­Ó¥Î¨Ó«ü¥Ü§Ú­Ì¥¿¦b¡u½s±Æ¥Ø¿ý¡v¡C¡yÅã¥Ü¡z³o­Óµü¦b¨â­ÓºX¼Ð³£¬O"°²"ªº ª¬ºA®É¡A¤~°µ¯u¥¿ªº¿é¥X¡C «á¤@ºØ¸Ñ¨M¤è®×¦³¨âºØ¤èªk¨Ó§¹¦¨¡AºÝµø§A­n¦p¦ó¤À¸Ñ³o­Ó°ÝÃD¡C­º¥ý¡A§Ú­Ì ¥i¥H±N¤@­Ó±ø¥ó"±_¤J"¡]nest¡^¥t¤@­Ó±ø¥ó¤§¤¤:

       : [Åã¥Ü]   ...  ( ­ì¥ý°µ¿é¥Xªº©w¸q ) ... ;
       ÅÜ¼Æ °µ¬d¬Ý     ( t = ¦V«e¬d¬Ý )...
       : <Åã¥Ü>   °µ¬d¬Ý Ū¨ú  ¤£¬O ¦pªG  [Åã¥Ü]  µM«á ;
       ÅÜ¼Æ ½s¥Ø¿ý     ( t = ½s±Æ¥Ø¿ý)
       : Åã¥Ü     ½s¥Ø¿ý Ū¨ú  ¤£¬O ¦pªG  <Åã¥Ü>  µM«á ;

¡yÅã¥Ü¡zÀˬd­Y¤£¬O¦b½s±Æ¥Ø¿ý¡A«h©I¥s¡y<Åã¥Ü>¡z¡A¥¦¦AÀˬd­Y¤£¬O¦b¡u¦V«e¬d¬Ý¡v ¡A«h©I¥s¡y[Åã¥Ü]¡z¡C ¦bµo®iªº¹Lµ{¤¤¡A°µ¿é¥Xªºµü¡y[Åã¥Ü]¡z­ì¥»¬O³Q©R¦W¬°¡yÅã¥Ü¡zªº¡C¤§«á¡A¤@ ­Ó·sªº¡yÅã¥Ü¡z¥]§t¤F¡u¦V«e¬d¬Ý¡vªºÀˬd¡A¦Ó±N­ì¨Óªº©w¸q§ï¦W¬°¡y[Åã¥Ü]¡z¡C§Ú­Ì ¦V¤º¼W¥[¤F¤@¼h½ÆÂø«×¡A¦ý«o¤£¥Î§ïÅÜ¥ô¦ó¨Ï¥Î¡yÅã¥Ü¡zªºµ{¦¡½X¡C ³Ì«á¡A·í¥[¤J½s±Æ¥Ø¿ýªº¥\¯à®É¡A¤S¤@­Ó·sªº¡yÅã¥Ü¡z³Q©w¸q¥X¨Ó¡A¥¦¥]§t½s±Æ¥Ø¿ý ªºÀˬd¡A¦Ó¡yÅã¥Ü¡z¦A«×³Q­«·s©R¦W¬°¡y<Åã¥Ü>¡z¡C ³o¬O¨Ï¥Î¨â­ÓÅܼƪº¨âºØ¸Ñ¨M¤èªk¤§¤@¡C ¥t¤@ºØ¬O¦b³æ¤@­Ó¦r¸Ì¥]§t¨âºØ´ú¸Õ¡G

      : Åã¥Ü   °µ¬d¬Ý Ū¨ú  ½s¥Ø¿ý Ū¨ú  ©Î ¤£¬O ¦pªG  [Åã¥Ü]  µM«á ;

¦ý¦b³o­Ó¯S®íªº¨Ò¤l¡AÁÙ¦³¥t¤@ºØ¤èªk¥i¥H§â³o¨Ç²V¶Ã²¤Æ¡C§Ú­Ì¥i¥H¨Ï¥Î¤@­ÓÅÜ ¼Æ¡A¤£§â¥¦·í°µºX¼Ð¡A¦Ó¬O§â¥¦·í°µ­p¼Æ¾¹¨Ï¥Î¡C

      ÅÜ¼Æ '¤£¥i¨£     (t = ¤£¥i¨£)
      : Åã¥Ü   '¤£¥i¨£ Ū¨ú  0= ¦pªG  [Åã¥Ü]  µM«á ;
      : ¤£¥i¨£   1 '¤£¥i¨£ ¥[¦s ;
      : ¥i¨£    -1 '¤£¥i¨£ ¥[¦s ;

¡u¦V«e¬d¬Ý¡vªºµ{¦¡½X¦b¶}©l®É©I¥s¡y¤£¥i¨£¡z¡A¥¦±N­p¼Æ­È¥[¤@¡C­Y¥H«D¹s­Èªí¥Ü "¯u"¡A«h¡yÅã¥Ü¡z±N¤£°µ¿é¥X¡C¦bµ²§ô¬d¬Ý¤§«á¡Aµ{¦¡½X¦A©I¥s¡y¥i¨£¡z¡A¥¦·|±N­p¼Æ ­È´î¤@¦Ó¦^¨ì¹s¡]°²¡^¡C ¡u½s±Æ¥Ø¿ý¡vªºµ{¦¡½X¤]¬O¥H©I¥s¡y¤£¥i¨£¡z¶}©l¡A¥H¡y¥i¨£¡zµ²§ô¡C¦pªG§Ú­Ì¦b °õ¦æ¤¤¥s¥Î¤F¡u¦V«e¬d¬Ý¡vªº¥\¯à¡A²Ä¤G­Ó¡y¤£¥i¨£¡zªº©I¥s´N·|±N­p¼Æ­È¼W¥[¦Ü2¡C ±µ¤U¨Óªº¡y¥i¨£¡z±N­p¼Æ­È´î¤@¡A©Ò¥H¿é¥X¤´µM¬O¬Ý¤£¨£ªº¡Aª½¨ì½s¥Ø¿ýªº°Ê§@³Q§¹¦¨¡C ¡]ª`·N¡A§Ú­Ì¥²»Ý¥H 0= ¥N´À NOT¡]¤£¬O¡^¡C¦b1983¦~ªº²Å¦¡¼Ð·Ç¸Ì¡ANOT ªº¦æ¬° ³Q§ï¦¨¡u²£¥Í1ªº¸É¼Æ¡v¡A©Ò¥H¡A¡y1 NOT¡zªº­È¡]0FFFE¡^·|³Qµø¬°"¯u"¡A©Ò¥H¤£¯à ¨Ï¥Î¦b³o­Ó±¡ªp¤¤¡C¶¶«K´£¤@¤U¡A§Ú­Ó¤Hı±o³oºØ§ïÅܬO­Ó¿ù»~¡C¡^ ¦ý¬O¡A³oºØ¨Ï¥Î­p¼Æ­Èªº¤èªk«Ü¦MÀI¡C¥¦­n¨D«ü¥O¦¨¹ï¦a¨Ï¥Î¡G³sÄò°µ¨â­Ó¡y¥i¨£¡z ¦³¥i¯à·|²£¥Í¡y¤£¥i¨£¡zªºµ²ªG¡C°£«D¡y¥i¨£¡zªº©w¸q·|­­¨î­p¼Æ­È¤£·|Åܬ°­t­È¡G

      : ¥i¨£   '¤£¥i¨£ Ū¨ú 1-  0 ¨ú¸û¤j­È  '¤£¥i¨£ ¦s¤J ;

 

ª¬ºAªí¡]The State Table¡^

³æ¤@­ÓÅܼƥi¥Hªí¥Ü³æ¤@ºØª¬ªp¡A¤£½×¥¦¬O¤@­ÓºX¼Ð¡A¤@­Ó¼Æ­È¡A©Î¤@­Ó¥\¯àªº¦a§}¡C ³\¦hª¬ªp¶°¦X¦b¤@°_¡A¥i¥Hªí¥Ü¤@­ÓÀ³¥Îµ{¦¡©Î¯S®í¤¸¥óªºª¬ºA¡C¦³¨ÇÀ³¥Î»Ý­n¯à °÷±N¥Ø«eªºª¬ºA«O¦s¤U¨Ó¡A¨Ã¦bµy«á±N¥¦«ì´_¡A©ÎªÌ¨ã¦³´XºØ¥i¥HÅܤƪºª¬ºA¡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¦P®É±±¨î¤@²Õª¬ºA®É¡A¥i¥H¨Ï¥Îª¬ºAªí¡]state table¡^¡A¦Ó¤£­n¥Î ´X­ÓÅܼơ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

  ¹Ï 7-2  ¬ÛÃöÅܼƪº¶°¦X
  VARIBLE TOP
  VARIBLE BOTTOM
  VARIBLE LEFT
  VARIBLE RIGHT
  VARIBLE INSIDE
  VARIBLE OUT

»Ý­n«O¦s©M«ì´_ª¬ºAªº¤@­Ó²³æªº¨Ò¤l¬O¡A°²³]§Ú­Ì¶}©l®É¦³¤»­ÓÅܼƥNªí¤@­Ó¯S®í¤¸¥óªºª¬ºA¡A¦p¹Ï7-2©Ò¥Ü¡C
²{¦b§Ú­Ì­n±N¥¦­Ì¥þ³¡«O¦s°_¨Ó¡A¥H«K¨ä¥¦ªº³B²zµ{§Ç¯à°÷¶i¦æ¡Aµy«á¦A±N¥¦­Ì¥þ³¡«ì´_¡C§Ú­Ì©w¸q¡G

      : @STATE   ( -- top bottom left right inside out )
         TOP @  BOTTOM @  LEFT @  RIGHT @  INSIDE @  OUT @ ;
      : !STATE   ( top bottom left right inside out -- )
         OUT !  INSIDE !  RIGHT !  LEFT !  BOTTOM !  TOP ! ;

³o¼Ë¡A§Ú­Ì´N¯à±N°ïÅ|¸Ì©Ò¦³ªº¼Æ­È³£«O¦s°_¨Ó¡Aª½¨ì«ì´_¥¦­Ìªº®É¾÷¨ì¨Ó¡C©ÎªÌ¥Î¥t¤@ºØ¤èªk¡A¹ïÀ³¥H¤Wªº¨C¤@­ÓÅܼơA¦A©w¸q¥X¥t¤@²ÕÅܼơA¨Ã¥Î¥¦­Ì¤À§OªºÀx¦s¹ïÀ³ªº¨C¤@­ÓÅܼƭȡC
¦ý¬O¡A¥t¥~¤@ºØ§ó¦nªº§Þ¥©¬O¡A»s³y¤@­Óªí¡Aªí¸Ìªº¨C¤@­Ó¤¸¯À³£¯à¥H¦W¦r¨Ó°Ñ¦Ò¡C
µM«á¡A»s³y¤@­Ó¦³¬Û¦Pªø«×ªº²Ä¤G­Óªí¡C¦p¹Ï7-3©Ò¥Ü¡C§Ú­Ì¥i¥H±NºÙ¬° POINTERS ªº²Ä¤@­Óªí¡A«þ¨©¨ìºÙ¬° SAVED ªº²Ä¤G­Óªí¥H«O¦sª¬ºA¡C

  ¹Ï 7-3  «O¦s¤@­Óª¬ºAªíªºÆ[©À¼Ò¦¡

§Ú­Ì¤w¸g±N³oºØ¤èªkªº¹ê²{¼g¦b¹Ï7-4¤¤¡C

  ¹Ï 7-4  «O¦s/«ì´_ª¬ºAªíªºµ{¦¡½X
  0 CONSTANT POINTERS    \  address of state table PATCHED LATER
  : POSITION   ( o -- o+2 )   CREATE DUP , 2+
     DOES>   ( -- a )   @ POINTERS + ;
  0  \ initial offset
  POSITION TOP
  POSITION BOTTOM
  POSITION LEFT
  POSITION RIGHT
  POSITION INSIDE
  POSITION OUT
  CONSTANT /POINTERS   \ final computed offset

  HERE ' POINTERS >BODY !   /POINTERS ALLOT    \ real table
  CREATE SAVED /POINTERS ALLOT    \ saving place
  : SAVE   POINTERS  SAVED  /POINTERS COMVE ;
  : RESTORE   SAVED  POINTERS  /POINTERS CMOVE ;

ª`·N¡A³o­Óµ{¦¡½X¸Ìªº«ü¼Ð¦WºÙ¡A¦p¡yTOP¡z,¡yBOTTOM¡zµ¥µ¥¡AÁ`¬O·|¶Ç¦^¤@­Ó©T©wªº¦a§}¡C¤£½×¦ó®É¡A¹ï¥ô¤@­Óª¬ºA¡A³£¥u¦³¤@­Ó¦ì¸m¥NªíµÛ¥¦¥Ø«eªº¼Æ­È¡C
¤]½Ðª`·N¡A§Ú­Ì±N POINTERS¡]ªíªº¦WºÙ¡^¥Î CONSTANT ©w¸q¡A¦Ó¤£¬O¥Î CREATE ¡A¨Ã¥B¥ý¥Î¤F¤@­Ó°²¼Æ­È¡]¹s¡^¡C³o¬O¦]¬°§Ú­Ì¦b POSITION ³o­Ó©w¸q¦r¤§¤¤¡A»Ý­n°Ñ¦Ò¨ì POINTERS¡]¦ý¨Ã¤£¥h°õ¦æ¥¦¡A¦]¬°¥¦¬O¥X²{¦b"°õ¦æ®É°Ï"¤§¤º¡^¡Aª½¨ì§Ú­Ì©w¸q¤F¥þ³¡ªºÄæ¦ì¦W¦r¡A¨Ã¥Bª¾¹D¤Fªíªº¤j¤p¤§«á¡A¤~¯à¹ê»Ú¦a¥h ALLOT ¥¦¡C
¦b§Ú­Ì«Ø¥ß©Ò¦³ªºÄæ¦ì¦WºÙ«á¡A§Ú­Ì´N±Nªíªº¤j¤p©w¸q¬°±`¼Æ /POINTERS ¡C³Ì«á¦A¨Ì¥¦ªº°_©l¦ì§}¡]HERE¡^¥h­×¥¿±`¼Æ POINTERS ¡A¨Ã¥B¬°ªíªº¥»¨­«O¯d¤UªÅ¶¡¡C¡]¦r>BODY ¬O¥Î¨Ó±N¡y'¡z©Ò¶Ç¦^ªº¦a§}¡AÂà´«¬°Àx¦sµÛ±`¼Æ¼Æ­Èªº¦a§}¡^©Ò¥H POINTERS´N¯à¶Ç¦^µy«á¤~³Q°t¸m¥X¨Óªºªíªº°_©l¦a§}¡A´N¦p¦Pªí¬O¥Î CREATE ©Ò©w¸q¡A¨Ã¥BªÅ¶¡¤]¸òµÛ¥ß§Y°t¸mªº±¡§Î¤@¼Ë¡C
ÁöµM¦b½sͮɡA­×§ï±`¼Æ­È¬O¥i¦æªº¡A¦p¦P§Ú­Ì¦b¦¹¦a©Ò°µªº¡C¦ý¬O¦³¤@­Ó¤åÅé¤Wªº­­¨î¡G

¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w
´£¥Ü   ¤@¦ýÀ³¥Îµ{¦¡³Q½sͧ¹¦¨¤§«á¡A¤@­Ó±`¼Æªº¼Æ­È¬Oµ´¹ï¤£À³¸Ó¥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

¥æ´Àª¬ºA¡]alternating states¡^ªº¨Ò¤l¤ñ¸û½ÆÂø¡C¦b³oºØ±¡ªp¤U¡A§Ú­Ì»Ý­n¦b¨â­Ó ª¬ºA¡]©ÎªÌ§ó¦h¡^¤§¶¡Âà´«¡A¦Ó¦b§Ú­Ì¸õ¨ì¤@­Óª¬ºA®É¡Aµ´¤£¯à·´±¼¥t¤@­Óª¬ºA¡C¹Ï7-5 Åã¥Ü³oºØª¬ºAªíªºÆ[©À¼Ò«¬¡C

  ¹Ï7-5  ¥æ´Àª¬ºAªíªºÆ[©À¼Ò«¬

¦b³o­Ó¼Ò«¬¸Ì¡A¦WºÙ¡yTOP¡z,¡yBOTTOM¡zµ¥µ¥¡A³Q³]­p¦¨¥i¥H«ü¨ì¨â­Ó¤£¦Pªºªí¡A REAL ©Î PSEUDO ¤¤ªº¤@­Ó¡C¦pªG REAL ªí¬O¥Ø«eªº¤@­Ó¡A«h©Ò¦³ªº«ü¼Ð¦WºÙ³£·|°Ñ¦Ò¨ì¥¦ªº¦a§}¡A¦pªG PSEUDO ªí¬O¥Ø«eªº¤@­Ó¡A«h·|°Ñ¦Ò¨ì PSEUDO ªíªº¦a§}¡C

  ¹Ï7-6  ¹ê²{¥æ´Àª¬ºAªº¾÷ºcªº¹ê»Úµ{¦¡½X
  VARIABLE 'POINTERS    \ pointer to state table
  : POINTERS   ( -- adr of current table )   'POINTERS @ ;
  : POSITION   ( o -- o+2 )   CREATE DUP ,  2+
      DOES>   ( -- a )   @  POINTERS + ;
  0   \ initial offset
  POSITION TOP
  POSITION BOTTOM
  POSITION LEFT
  POSITION RIGHT
  POSITION INSIDE
  POSITION OUT
  CONSTANT /POINTERS   \ final computed offset
  CREATE REAL   /POINTERS ALLOT   \ real state table
  CREATE PSEUDO /POINTERS ALLOT   \ temporary state table
  : WORKING   REAL 'POINTERS ! ;  WORKING
  : PRETENDING    PSEUDO 'POINTERS ! ;

¹Ï7-6¬O³oºØ¥æ´Àª¬ºA¾÷ºcªº¹ê»Úµ{¦¡½X¡C¦r WORKING ©M PRETENDING ·|¨Ì±¡ªp§ïÅÜ«ü¼Ð¡C
¨Ò¦p¡G

      WORKING
      10 TOP !
      TOP ?  10
      PRETENDING
      20 TOP !
      TOP ? 20
      WORKING
      TOP ? 10
      PRETENDING
      TOP ? 20

«á¤@ºØ¤èªkªº¥D­n¤£¦PÂI¬O¡A¥¦ªº¦W¦r¸g¹LÃB¥~ªº¤@¼h¶¡±µ¡]indirection¡^¤~¨ú±o¦a§} ¡]POINTERS ¥Ñ­ì¥ýªº±`¼Æ©w¸q³Q§ïÅܬ°«_¸¹©w¸q¡^¡CÄæ¦ìªº¦W¦r¦]¦¹¥i¥H«ü¨ì¨â­Óª¬ºAªí¤¤ªº¥ô¤@­Ó¡C¨C­Ó¦W¦r¦]¦¹»Ý­n¦h°µ¨Ç¤u§@¡C
«e¤@­Ó¤èªkªº¦W¦r³£°Ñ¦Ò¨ì©T©wªº¦ì¸m¡A©Ò¥H¦b¨C¦¸«O¦s©Î«ì´_¼Æ­Èªº®É­Ô¡A³£»Ý­n°µ¡yCMOVE¡z¡C¦b«á­±³o­Ó¤èªk¸Ì¡A§Ú­Ì¥u»Ý§ïÅܤ@­Ó«ü¼Ð§Y¥i¡C

¡@

¦V¶q¦¡ªº°õ¦æ¡]Vectored Execution¡^

¦V¶q¦¡ªº°õ¦æ±N"¥Ø«e"¡]currentness¡^©M"¶¡±µ"¡]indirection¡^ªºÆ[©À¡A±q¡u¸ê®Æ¡v ÂX®i¨ì¡u¥\¯à¡v¡C´N¦p§Ú­Ì¥i¥H¦bÅܼƸ̫O¦s¼Æ­È©MºX¼Ð¤@¼Ë¡A§Ú­Ì¤]¥i¥H«O¦s¥\¯à¡A ¦]¬°¥\¯à¥i¥H¸g¥Ñ¦a§}°Ñ¦Ò¨ì¡C ¶Ç²Î¤W¹ê²{¦V¶q¦¡°õ¦æªº§Þ³N¡A¤w¦b¡qStarting FORTH¡r¤@®Ñªº²Ä¤E³¹¸Ì¸ÑÄÀ¹L¡C¦b ³o¸`¤¤¡A§Ú­Ì±N°Q½×¤@ºØ§Úµo©úªº·s»yªk¡C§Ú»{¬°¦b³\¦h±¡ªp¤U¡A¥¦¤ñ¶Ç²Îªº¤èªk­n¶® ½o±o¦h¤F¡C ³o­Ó»yªkºÙ¬° DOER/MAKE¡C¡]¦pªG§Aªº¨t²Î¨S¦³³o¨Ç¦r¡A¥i¥H°Ñ¦Òªþ¿ýB¤¤ªºµ{¦¡½X ©M¹ê²{²Ó¸`¡^¡C¥¦ªº¤u§@¤è¦¡¬O¡G§A¥ý¨Ï¥Î©w¸q¦r¡yDOER¡z©w¸q¥X¤@­Ó¦r¨Ó¡]§Ú­ÌºÙ¥¦¬° "DOER¦r"¡A©Î DOER ªº«Ä¤l¡A¥¦ªº¦æ¬°¬O¦V¶q¦¡ªº¡^¡A´N¹³¬O¡G

      DOER PLATFORM

¶}©l®É¡A¡yPLATFORM¡z¤£°µ¥ô¦ó¨Æ¡CµM«á¡A§A¥i¥H©w¸q¤@¨Ç¦r¡A¨Ã¦b¨ä¤¤¨Ï¥Î¡yMAKE¡z ¨Ó§ïÅÜ¡yPLATFORM¡z©Ò­n§¹¦¨ªº¤u§@¡G

    : LEFTWING    MAKE PLATFORM  ." proponent" ;
    : RIGHTWING   MAKE PLATFORM  ." oponent" ;

·í§A©I¥s¡yLEFTWING¡z®É¡A¤ù»y¡yMAKE PLATFORM¡z·|§ïÅÜ¡yPLATFORM¡zªº¤u§@¡C¤§«á¡A ¦pªG§AÁä¤J¡yPLATFORM¡z¡A§A±N·|¬Ý¨ì¡G

    LEFTWING  ok
    PLATFORM proponent  ok

RIGHTWING ·|¨Ï PLATFORM ¦L¥X"opponent"¡C§A¥i¤]¥H¦b¤@­Ó©w¸q¸Ì¨Ï¥Î PLATFORM

      : SLOGAN   ." Our candidate is a longstanding"  PLATFORM
         ." of heavy texation for business. " ;

©R¥O

      LEFTWING SLOGAN

±NÅã¥Ü¥X¤@­ÓÄv¿ï¼Ð»y¡A¦Ó

      RIGHTWING SLOGAN

±NÅã¥Ü¥X¥t¤@­Ó¡C "MAKE"³o³¡¥÷ªºµ{¦¡½X¥i¥H¬O¥ô¦ó²Å¦¡½X¡A¤£½×¦hªø©Î¦h¤Ö¡F¥u­n°O¦í¡A¥²»Ý¥H¤À ¸¹µ²§ô¡C¦b LEFTWING ©w¸q¤¤ªºµ²§ô¤À¸¹¡A¦P®É¨Ñ LEFTWING ªº©w¸q©M MAKE ¤§«áªº µ{¦¡½X¨Ï¥Î¡C·í MAKE ­«©w"DOER¦r"ªº°õ¦æ¦V¶q®É¡A¥¦¤]¦P®Éµ²§ô¥Ø«e§t¦³ MAKE ³o­Ó¦r ªº©w¸qªº°õ¦æ¡C ¨Ò¦p¡A·í§A©I¥s LEFTWING ®É¡AMAKE ­«©w PLATFORM ªº¦V¶q¨ÃÂ÷¶} LEFTWING ¡C©I ¥s LEFTWING ¨Ã¤£·|¨Ï"proponent"³o­Ó«H®§³Q¦L¥X¡C¹Ï7-7¸ÕµÛ¨Ï¥Î¤@­Ó·§©À¤Æªº¦r¨å ¨Ó¸ÑÄÀ³oÂI¡C

       ¹Ï7-7  DOER ©M MAKE

¦pªG§A·Q­n"Ä~Äò¦a"°õ¦æ¡A´N¨Ï¥Î¡y;AND¡z³o­Ó¦r¨Ó¥N´À¤À¸¹¡C¡y;AND¡z¦b³]©w¤F DOER ¦rªº°õ¦æ¦V¶q¤§«á¡A¡];AND ¦P®É¤]¬O³o­Ó¦V¶qªº°õ¦æ½Xªº²×ÂI¡^¡A¦AÄ~Äò°õ¦æ±µ ¦b¥¦«á­±ªº©w¸q¡A¦p¹Ï7-8©Ò¨£¡C

     ¹Ï7-8  ¨Ï¥Î¡y;AND¡z¨Ó¨ÃÁp¦h­Ó¡yMAKE¡z

³Ì«á¡A§AÁÙ¥i¥H±N³]©w"DOER¦r"ªº°Ê§@"¦êÁp"°_¨Ó¡]¤£¬O¨Ï¥Î ;AND¡^¡C¹Ï7-9 ©Ò°µ ªº¸ÑÄÀ·|¤ñ¥Î¼gªºÁÙ­n²M·¡¨Ç¡C

     ¹Ï7-9  ¦h­Ó MAKE ¦êÁp

¡@

DOER/MAKE ªº¨Ï¥Î

¦³«Ü¦hºØª¬ªp¡A¥i¥H±q DOER/MAKE ªºµ²ºc±o¨ì¯q³B¡C¥¦­Ì¬O¡G

1. ¥Î¨Ó§ïÅܤ@­Ó¥\¯àªºª¬ºA¡]·í¥~³¡¤£»Ý­n´ú¸Õ¨Ã±oª¾¥¦ªºª¬ºA®É¡^¡C¨Ò¦p¦r LEFTWING ©M RIGHTWING §ïÅÜ PLATFORM ªºª¬ºA¡C 2. ±q¬Û¦üªº©w¸q¤¤¤À¸Ñ¥X¤º³¡¤ù»y¡A§Y¨Ï¥¦¬O¦b¡]¨Ò¦p LOOP ªº¡^±±¨îµ²ºc¤§¤º¡C ¦Ò¼{¤@­Ó¦W¬°¡yDUMP¡zªº©w¸q¡A¥¦³Q³]­p¨ÓÅã¥Ü¤@¬q°O¾ÐÅ骺¤º®e¡C

       : DUMP   ( a# --)
           0 DO  I 16 MOD 0= IF  CR  DUP I +  5 U.R  2 SPACES  THEN
           DUP I + @  6 U.R  2 +LOOP DROP ;
                   ^^^^^^^^^^^^^^^^^

·í§A¥t­n¼g¤@­Ó¦W¬°¡yCDUMP¡zªº©w¸q¡A¥¦¥²¶·¨Ì·Ó¦r¤¸¡A¦Ó¤£¬O¤¸¯À¡]cell¡^¡A ¨Ó¦w±Æ¿é¥Xªº¤º®e®É¡A°ÝÃD´N¨Ó¤F¡G

       : CDUMP   ( a# --)
           0 DO  I 16 MOD 0= IF  CR  DUP I +  5 U.R  2 SPACES  THEN
           DUP I + C@  4 U.R  LOOP DROP ;
                   ^^^^^^^^^^^^^^^

°£¤F³Q¼Ð¥Ü¥Xªº¨º¨â¬q¤§¥~¡A³o¨â­Ó©w¸qªºµ{¦¡½X§¹¥þ¬Û¦P¡C¦ý¬O¦¹¬q¥X²{¦b ¡yDO LOOP¡z°j¸ô¤º¡A¦]¦Ó¨Ï±o¤À¸Ñ¦]¤lªº¤u§@Åܱo«Ü§xÃø¡C ¤U­±¬O¨Ï¥Î DOER/MAKE ªº¤@­Ó¸Ñ¨M¿ìªk¡C¤£¦Pªº¨º¬qµ{¦¡½X¤w¸g³Q .UNIT ¨ú¥N¡A ¥¦ªº¦æ¬°·|³Q DUMP ©M CDUMP ©Ò§ïÅÜ¡C¡]ª`·N¡A1 +LOOP ©M LOOP ªº®ÄªG¬Û¦P¡C¡^

       DOER .UNIT  ( a -- increment )   \ display byte or cell
       : <DUMP>  ( a # --)
          0 DO  I 16 MOD 0= IF CR  DUP  I +  5 U.R  2 SPACES  THEN
          DUP I + .UNIT  +LOOP  DROP ;
       : DUMP   ( a # --)  MAKE  .UNIT  @ 6 U.R  2  ;AND <DUMP> ;
       : CDUMP   ( a # --)  MAKE  .UNIT  C@ 4 U.R  1  ;AND <DUMP> ;

ª`·N DUMP ©M CDUMP ¬O¦p¦ó¦a¥ý¥h"³]¸m"¦V¶q¡A¦AÄ~Äò¥h"°õ¦æ"¨ä¥¦¾ã­Ó³¡¥÷ ¡]¦r<DUMP>¡^¡C 3. ¨Ï¥Î³æ¤@­Ó«ü¥O¡A´N¯à§ïÅܤ@¨Ç¬ÛÃö¥\¯àªºª¬ºA¡C¨Ò¦p¡G

       DOER TYPE'
       DOER EMIT'
       DOER SPACES'
       DOER CR'
       : VISIBLE     MAKE TYPE'    TYPE ;AND
                     MAKE EMIT'    EMIT ;AND
                     MAKE SPACES'  SPACES ;AND
                     MAKE CR'      CR ;
       : INVISIBLE   MAKE TYPE'    2DROP ;AND
                     MAKE EMIT'    DROP ;AND
                     MAKE SPACES'  DROP ;AND
                     MAKE CR' ;

¦b³o¸Ì¡A§Ú­Ì©w¸q¤F¤@²Õ¦V¶q¤Æªº¿é¥X¦r¡A¨C­Ó¦W¦rªº§ÀºÝ³£¦³¤@­Ó"³æ¤Þ¸¹"¡C¥¦ ­Ì³Q VISIBLE ³]©w¨ì©Ò´Á±æªº¥\¯à¡CINVISIBLE ¨Ï¥¦­Ì¤£¤u§@¡]³q±`¬O±N¶Ç°eµ¹ ¥¦­Ìªº¤Þ¼Æ¥á±¼¡^¡A¤]´N¬O»¡¡A³o¥|­Ó¦r¦b³Q©I¥s®É¡A³£¤£·|²£¥Í¿é¥X¡C 4. ¥u¬O­n§ïÅܨƱ¡¤U¤@¦¸µo¥Í®Éªºª¬ºA¡AµM«á·|¦A¦¸¦a§ïÅÜ¥¦¡]©ÎªÌ¬O«ì´_¥¦¡^¡C °²³]§Ú­Ì­n¼g¤@­Ó±´ÀI¹CÀ¸¡C·íª±ªº¤H­º¦¸¨ì¹F¤@­Ó¯S®íªº©Ð¶¡®É¡A¹CÀ¸·|Åã¥Ü ¤@­Ó¸Ô²Óªº»¡©ú¡Cµy«á¡A¦pªG¹CÀ¸ªÌ¦A¦^¨ì¦P¤@­Ó©Ð¶¡¡A¹CÀ¸´N¥uÅã¥Ü¤@­Ó¸ûµuªº «H®§¡C§Ú­Ì¼g¥X¡G

       DOER ANNOUNCE
       : LONG  MAKE ANNOUNCE
           CR ." You're in a large hall with a huge throne"
           CR ." covered with a red velvet canopy. "
               MAKE ANNOUNCE
           CR ." You're in the throne room. " ;

¦r ANNOUNCE ¯à°÷Åã¥Ü¨âºØ«H®§¡C²Ä¤@¦¸§Ú­Ì»¡ LONG ®É¡A·|±N ANNOUNCE ³]©w ¬°"ªø«H®§"¡C²{¦b¡A§Ú­Ì¥h´ú¸Õ ANNOUNCE¡A¨Ã¥Bµo²{¥¦¦L¥X¤F"ªø«H®§"¡C¦b°µ§¹ ¦L¥Xªº°Ê§@¤§«á¡A¥¦Ä~Äò¥h"MAKE"¤U¤@¦¸ªº ANNOUNCE¡A¨Ï¥¦·|Åã¥Ü"µu«H®§"¡C¦pªG §Ú­Ì²Ä¤G¦¸°õ¦æ ANNOUNCE ¡A¥¦´N·|¦L¥Xµu«H®§¡C¨Ã¥B¤@ª½¦p¦¹¡Aª½¨ì§Ú­Ì¦A¦¸»¡ LONG ¬°¤î¡C ¹ê»Ú¤W¡A§Ú­Ì¬O¦b±N¤@¨Ç"¦æ¬°"±Æ¶¤¡C§Ú­Ì¥i¥H±N¥ô¦ó¼Æ¥Øªº¦æ¬°¨Ì§Ç±Æ¦C¡AÅý¨C ¤@­Ó³£·|¦Û°Ê¦a³]©w¤U¤@­Ó¡C¤U­±ªº¨Ò¤l¡]ÁöµM¨Ã¤£¬O«Ü¹ê»Ú¡^»¡©ú³oÂI¡C

       DOER WHERE
       VARIABLE SHIRT
       VARIABLE PANTS
       VARIABLE DRESSER
       VARIABLE CAR

       : ORDER   \ specify search order
          MAKE WHERE  SHIRT    MAKE WHERE  PANTS
          MAKE WHERE  DRESSER  MAKE WHERE  CAR
          MAKE WHERE  0 ;

       : HUNT  ( -- a | 0 )   \ find location containing 17
          ORDER  5 0 DO  WHERE  DUP 0=  OVER @  17 = OR IF
          LEAVE  ELSE  DROP  THEN  LOOP ;

¦b³o¬qµ{¦¡½X¤¤¡A§Ú­Ì¥ý²£¥Í¤@²ÕÅܼơAµM«á©w¸q¥X¥¦­Ì³Q·j´Mªº¶¶§Ç¡]¦rORDER¡^ ¡C¦r HUNT ·|¤@­Ó¤@­Óªº¬d¬Ý¥¦­Ì¡A´M§ä¤º®e¬°17ªº²Ä¤@­ÓÅܼơCHUNT ·|¶Ç¦^¥¿ ½TªºÅܼƦa§}¡A©ÎªÌ¡A¦pªG¨S¦³¤@­ÓÅܼƬO³o­Ó¼Æ­È®É¡A¶Ç¦^¤@­Ó¹s¡C HUNT ¥u¬O±N WHERE °õ¦æ¤­¦¸¡A¥H§¹¦¨³o¥ó¤u§@¡C¨C¤@¦¸ªº WHERE ·|¨Ì ORDER ©Ò ¨M©wªº¦¸§Ç¶Ç¦^¤@­Ó¤£¦PªºÅܼƦa§}¡A³Ì«á¬O¤@­Ó¹s¡C §Ú­Ì¬Æ¦Ü¥i¥H©w¸q¤@­Ó"DOER¦r"¡A¥¦·|µL¤îºÉªºÅÜ´«¥¦¦Û¤vªº¦æ¬°¡G

       DOER SPEECH
       : ALTERNATE
          BEGIN  MAKE SPEECH  ." HELLO "
          MAKE SPEECH  ." GOODBYE "
          0 UNTIL ;

5. ¹ê²{¤@­Ó«e¦V°Ñ¦Ò¡C«e¦V°Ñ¦Ò³q±`¥X²{¦b·í§A»Ý­n¤@­Ó"´À¥N©Êªº«e¾É²Å¸¹"®É¡A¤] ´N¬O»¡¡A¤@­Ó¦r¡A¥¦¥ý³Q¤@¨Ç¸û§C¼hªº©w¸q©Ò©I¥s¡A¦ý«o¦b«á­±¸û°ª¼hªº¤¸¥ó¤¤¤~ ¹ê²{¡C­n¹ê²{¤@­Ó«e¦V°Ñ¦Ò¡A»Ý­n¦b¨Ï¥Î¥¦¤§«e¡A¥ý¥Î DOER «Ø¥X¥¦ªºÀY³¡¡G

       DOER STILL-UNDEFINED

¦bµ{¦¡ªºµy«á¡A¨Ï¥Î MAKE

       MAKE STILL-UNDEFINED  ALL THAT JAZZ ;

¡]°O¦í¡AMAKE ¬O¥i¥H³Q¨Ï¥Î¦b«_¸¹©w¸q¤§¥~ªº¡C¡^ 6. ª½±µ©Î¶¡±µªº»¼°j ·í¤@­Ó¦r©I¥s¥¦¦Û¤v®É¡AºÙ¬°ª½±µ»¼°j¡C³Ì¤j¤½¬ù¼Æªº»¼°j©w¸q¬O­Ó«Ü¦nªº¨Ò¤l:

       GCD of a, b = a                  if b = 0
       GCD of b, a mod b                if b > 0
       DOER GCD  ( a b -- gcd )
       MAKE GCD  ?DUP  IF  DUP ROT ROT  MOD  GCD  THEN ;

·í¤@­Ó¦r©I¥s¥t¤@­Ó¦r¡A¦Ó²Ä¤G­Ó¦r¦A©I¥s²Ä¤@­Ó¦r®É¡AºÙ¬°¶¡±µ»¼°j¡C ¥¦¥i¥H¨Ï¥Î¤U­±ªº¤è¦¡¨Ó§¹¦¨¡G

       DOER B
       : A  ... B ... ;
       MAKE B  ... A ... ;

7. °£¿ù¡C§Ú³q±`¥ý©w¸q¡G

       DOER SNAP

¡]SANPSHOT ªºÁY¼g¡^µM«á¡A¦b§ÚªºÀ³¥Î¤¤¡A¨C·í§Ú·Q¬dÅç¬Y³B¶i¦æ¤¤ªºª¬ªp®É¡A ´N±N SNAP ½s¿è¶i¥h¡C¨Ò¦p¡A§Ú¥i¥H¥ý±N¥¦ªº¥\¯à³]©w¬°¡F·í SNAP ¦bÁä½L¸ÑŪ¾¹ ªº¥D°j¸ô¤¤³Q©I¥s®É¡A¥¦·|Åã¥Ü¥X·í®Éªº¸ê®Æµ²ºcªº¤º®e¡C¦Ó¥B¡A¤£¥²¸g¹L­«·s ½sĶªº¨BÆJ¡A§Ú´N¯à§ïÅÜ SNAP ªº°Ê§@¡C

·í§A»Ý­n±±¨î¤@­Ó¦V¶qªº¤º®e¡]¤@­Ó¦a§}¡^®É¡A¨Ï¥Î¡u½ð¥X¨Ã°õ¦æ¡v¡]tick-and-execute ¡^ªº¤èªk¬O¤ñ¸û¦X¾Aªº¡A¹³¬O»Ý­n¸g¥Ñ¤@­Ó§PÂ_ªí¡]decision table¡^¤¤ªº¤¸¯À¨Ó§¹¦¨«ü ¦Vªº°Ê§@®É¡A©Î¬O·Q­n±N¦V¶qªº¤º®e«O¦s¤Î«ì´_®É¡C


µ²»y

¦b¥»³¹¸Ì¡A§Ú­Ì¤ÀªR¤F¨Ï¥Î°ïÅ|©M¨Ï¥ÎÅܼƤΨ䥦¸ê®Æµ²ºcªº§Q¹ú¡C¬°¤F´ú¸Õ¤Î¦A¨Ï¥Î©Ê ¡A°ïÅ|¬O¤ñ¸û¦³§Qªº¡C¦ý¬O¡A·í¤@­Ó©w¸q»Ý­n¾Þ§@¤Ó¦hªº°ïÅ|¤¸¯À®É¡Aµ{¦¡½Xªº¥iŪ©Ê©M ¥i¼g©Ê´N·|¨ü¨ì¶Ë®`¡C §Ú­Ì¤]»¡©ú¤F«O¦s©M«ì´_¸ê®Æµ²ºcªº§Þ³N¡A³Ì«á¨Ã¥H DOER/MAKE ¦b¦V¶q¦¡°õ¦æ¤Wªº ±´°Q°µ¬°µ²§À¡C
°Ñ¦Ò®ÑÄy

1. Michael Ham, "Why Novices Use So Many Variables" ²Å¦¡ Dimen- sions, Vol 5, no.4, November/December 1983. 2. Daniel Slater, "A State Space Approach to Robotics" The Journal of FORTH Application and Research, 1, 1 (September 1983), 17.

¡@