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]