Next: Rounding Operations, Previous: Numeric Conversions, Up: Numbers [Contents][Index]
Emacs Lisp¤Ë¤Ï¡¢ÅÁÅýŪ¤Ê»Í§±é»»¡¢²Ã»»¡¢¸º»»¡¢¾è»»¡¢½ü»»¤¬¤¢¤ê¤Þ¤¹¡£ ½ü»»´Ø¿ô¤òÊ䤦¡¢Í¾¤ê¤È¾ê;¤Î´Ø¿ô¤â¤¢¤ê¤Þ¤¹¡£ Lisp¤ÎÅÁÅý¤Ç¤â¤¢¤ê¡¢¤Þ¤¿¡¢Â¿ÍѤ¹¤ë¤Î¤Ç¡¢1¤ò²Ã»»¤·¤¿¤ê¸º»»¤¹¤ë´Ø¿ô¤â¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢%¤ò½ü¤¤¤Æ¡¢°ú¿ô¤¬1¤Ä¤Ç¤âÉâÆ°¾®¿ôÅÀ¿ô¤Ç¤¢¤ë¤È¡¢
ÉâÆ°¾®¿ôÅÀ¿ô¤òÊÖ¤·¤Þ¤¹¡£
Emacs Lisp¤Ç¤Ï¡¢»»½Ñ´Ø¿ô¤Ï·å°î¤ì¡Ê¥ª¡¼¥Ð¥Õ¥í¡¼¡Ë¤ò¸¡ºº¤·¤Ê¤¤¤³¤È¤Ë
Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¤Ä¤Þ¤ê¡¢ÆÉ¼Ô¤Î·×»»µ¡¤Ë°Í¸¤·¤Þ¤¹¤¬¡¢
(1+ 134217727)¤òɾ²Á¤¹¤ë¤È-134217728¤Ë¤Ê¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¡¢number-or-marker¤¹1¤òÊÖ¤¹¡£
(setq foo 4)
⇒ 4
(1+ foo)
⇒ 5
¤³¤Î´Ø¿ô¤ÏC¸À¸ì¤Î±é»»»Ò++¤ÎÎà»÷¤Ç¤Ï¤Ê¤¤¡£
¤Ä¤Þ¤ê¡¢ÊÑ¿ô¤òÁý²Ã¤·¤Ê¤¤¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ë¡£
foo
⇒ 4
ÊÑ¿ô¤òÁý²Ã¤¹¤ë¤Ë¤Ï¡¢¤Ä¤®¤Î¤è¤¦¤Ësetq¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
(setq foo (1+ foo))
⇒ 5
¤³¤Î´Ø¿ô¤Ï¡¢number-or-marker°ú¤¯1¤òÊÖ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¡¢°ú¿ô¤ò¤¹¤Ù¤Æ²Ã»»¤¹¤ë¡£
°ú¿ô¤ò»ØÄꤷ¤Ê¤¤¤È+¤Ï0¤òÊÖ¤¹¡£
(+)
⇒ 0
(+ 1)
⇒ 1
(+ 1 2 3 4)
⇒ 10
´Ø¿ô-¤Ï¡¢2¤Ä¤ÎÌò³ä¡¢¤Ä¤Þ¤ê¡¢Éä¹æÈ¿Å¾¤È¸º»»¤ò²Ì¤¿¤¹¡£
-¤Ë1¤Ä¤Î°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢
¤½¤ÎÃͤϡ¢°ú¿ô¤ÎÉ乿¤òȿž¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
Ê£¿ô¸Ä¤Î°ú¿ô¤ò»ØÄꤹ¤ë¤È¡¢-¤Ï¡¢
number-or-marker¤«¤émore-numbers-or-markers¤Î1¤Ä1¤Ä¤ò¸º»»¤¹¤ë¡£
°ú¿ô¤ò»ØÄꤷ¤Ê¤¤¤È·ë²Ì¤Ï0¤Ç¤¢¤ë¡£
(- 10 1 2 3 4)
⇒ 0
(- 10)
⇒ -10
(-)
⇒ 0
¤³¤Î´Ø¿ô¤Ï¡¢°ú¿ô¤ò¤¹¤Ù¤Æ³Ý¤±¹ç¤ï¤»¤¿¾è»»·ë²Ì¤òÊÖ¤¹¡£
°ú¿ô¤ò»ØÄꤷ¤Ê¤¤¤È*¤Ï1¤òÊÖ¤¹¡£
(*)
⇒ 1
(* 1)
⇒ 1
(* 1 2 3 4)
⇒ 24
¤³¤Î´Ø¿ô¤Ï¡¢dividend¤òdivisor¤Ç½ü¤·¾¦¤òÊÖ¤¹¡£ Äɲäΰú¿ôdivisors¤ò»ØÄꤷ¤Æ¤¢¤ë¤È¡¢ dividend¤òdivisors¤Î1¤Ä1¤Ä¤Ç½ü¤¹¡£ ³Æ°ú¿ô¤Ï¿ô¤«¥Þ¡¼¥«¤Ç¤¢¤ë¡£
¤¹¤Ù¤Æ¤Î°ú¿ô¤¬À°¿ô¤Ç¤¢¤ë¾ì¹ç¡¢·ë²Ì¤âÀ°¿ô¤È¤Ê¤ë¡£
¤Ä¤Þ¤ê¡¢·ë²Ì¤ÏÀÚ¤ê¼Î¤Æ¤Ë¤Ê¤ë¡£
¤Û¤È¤ó¤É¤Î·×»»µ¡¤Ç¤Ï³Æ½ü»»¤Î·ë²Ì¤Ï0¤Ë¸þ¤±¤ÆÀÚ¤ê¼Î¤Æ¤Ë¤Ê¤ë¤¬¡¢
Éé¤Î°ú¿ô¤òÊ̤ÎÊýË¡¤Ç´Ý¤á¤ë·×»»µ¡¤â¤¢¤ë¡£
¤³¤ì¤Ï¡¢Lisp´Ø¿ô/¤òC¸À¸ì¤Î½ü»»±é»»»Ò¤Ç¼ÂÁõ¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ê¡¢
C¸À¸ì¤Î½ü»»±é»»»Ò¤Ç¤Ï·×»»µ¡°Í¸¤Ë´Ý¤á¤ë¤³¤È¤òµö¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£
¼ÂÍѾ塢¤¹¤Ù¤Æ¤Î´ûÃΤη׻»µ¡¤Ïɸ½àŪ¤ÊÊýË¡¤Ç´Ý¤á¤ë¡£
À°¿ô¤ò0¤Ç½ü»»¤¹¤ë¤È¡¢¥¨¥é¡¼arith-error¤òÄÌÃΤ¹¤ë¡£
¡Êsee Errors¡£¡Ë
ÉâÆ°¾®¿ôÅÀ¿ô¤ò0¤Ç½ü»»¤¹¤ë¤È¡¢IEEEÉâÆ°¾®¿ôÅÀ¿ô¤ò»È¤¦·×»»µ¡¤Ç¤Ï¡¢
̵¸ÂÂ礫NaN¤òÊÖ¤¹¡£
¤µ¤â¤Ê¤±¤ì¤Ð¥¨¥é¡¼arith-error¤òÄÌÃΤ¹¤ë¡£
(/ 6 2)
⇒ 3
(/ 5 2)
⇒ 2
(/ 5.0 2)
⇒ 2.5
(/ 5 2.0)
⇒ 2.5
(/ 5.0 2.0)
⇒ 2.5
(/ 25 3 2)
⇒ 4
(/ -17 6)
⇒ -2
¸¶ÍýŪ¤Ë¤Ï¡¢(/ -17 6)¤¬-3¤Ë¤Ê¤ë·×»»µ¡¤â¤¢¤ë¡£
¤³¤Î´Ø¿ô¤Ï¡¢dividend¤òdivisor¤Ç½ü¤·¤¿¤¢¤È¤ÎÀ°¿ô¤Î;¤ê¤òÊÖ¤¹¡£ °ú¿ô¤ÏÀ°¿ô¤«¥Þ¡¼¥«¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£
Éé¤Î°ú¿ô¤Ç¤Ï¡¢Í¾¤ê¤Ï¸¶ÍýŪ¤Ë·×»»µ¡°Í¸¤Ç¤¢¤ë¡£ ¼ÂÍѾ塢¤¹¤Ù¤Æ¤Î´ûÃΤη׻»µ¡¤ÏƱ¤¸¤è¤¦¤Ë¤Õ¤ë¤Þ¤¦¡£
divisor¤¬0¤Ç¤¢¤ë¤Èarith-error¤Ë¤Ê¤ë¡£
(% 9 4)
⇒ 1
(% -9 4)
⇒ -1
(% 9 -4)
⇒ 1
(% -9 -4)
⇒ -1
2¤Ä¤ÎǤ°Õ¤ÎÀ°¿ôdividend¤Èdivisor¤Ë¤ª¤¤¤Æ¡¢
(+ (% dividend divisor) (* (/ dividend divisor) divisor))
¤Ï¡¢¤Ä¤Í¤Ëdividend¤ËÅù¤·¤¤¡£
¤³¤Î´Ø¿ô¤Ï¡¢dividend¤Îdivisor¤Ë¤è¤ë¾ê;¤òÊÖ¤¹¡£ ¤¤¤¤¤«¤¨¤ì¤Ð¡¢dividend¤òdivisor¤Ç½ü¤·¤¿Í¾¤ê¤òÊÖ¤¹¡£ ¤¿¤À¤·¡¢¤½¤ÎÉ乿¤Ïdivisor¤ÈƱ¤¸¡£ °ú¿ô¤Ï¿ô¤«¥Þ¡¼¥«¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£
%¤È°ã¤¤¡¢
mod¤ÏÉé¤Î°ú¿ô¤ËÂФ·¤Æ¤â¸·Ì©¤ËÄêµÁ¤µ¤ì¤¿·ë²Ì¤òÊÖ¤¹¡£
ÉâÆ°¾®¿ôÅÀ¤Î°ú¿ô¤âµö¤¹¡£
¾¦¤ò¡ÊÉé¤Î̵¸ÂÂç¤Ë¸þ¤±¤Æ¡ËÀڤ겼¤²¤ÆÀ°¿ô¤Ë¤·¡¢
¤½¤Î¾¦¤òÍѤ¤¤ÆÍ¾¤ê¤ò·×»»¤¹¤ë¡£
divisor¤¬0¤Ç¤¢¤ë¤Èarith-error¤Ë¤Ê¤ë¡£
(mod 9 4)
⇒ 1
(mod -9 4)
⇒ 3
(mod 9 -4)
⇒ -3
(mod -9 -4)
⇒ -1
(mod 5.5 2.5)
⇒ .5
2¤Ä¤ÎǤ°Õ¤ÎÀ°¿ôdividend¤Èdivisor¤Ë¤ª¤¤¤Æ¡¢
(+ (mod dividend divisor) (* (floor dividend divisor) divisor))
¤Ï¡¢¤Ä¤Í¤Ëdividend¤ËÅù¤·¤¤¡£
¤¿¤À¤·¡¢¤É¤Á¤é¤«¤Î°ú¿ô¤¬ÉâÆ°¾®¿ôÅÀ¿ô¤Î¾ì¹ç¤Ë¤Ï¡¢
´Ý¤á¸íº¹¤ÎÈÏ°ÏÆâ¤ÇÅù¤·¤¤¡£
floor¤Ë¤Ä¤¤¤Æ¤Ï¡¢Numeric Conversions¤ò»²¾È¡£
Next: Rounding Operations, Previous: Numeric Conversions, Up: Numbers [Contents][Index]