--Multipart_Tue_Sep_22_13:51:20_1998-1
Content-Type: text/plain; charset=ISO-2022-JP

Á°ÅĤǤ¹¡£

In message "[ruby-list:9641] Re: can't clone Fixnum"
Yukihiro Matsumoto <matz / netlab.co.jp> wrote:

||immutable¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢clone¤Ç¼«Ê¬¼«¿È¤òÊÖ¤·¤Æ¤â
||¤¿¤Ö¤óÌäÂê¤Ê¤¤¤Ç¤¹¤è¤Í¡£
||¤È¤¹¤ë¤È¤·¤¿Êý¤¬Îã³°ý¤·¤Ê¤¤¤Ç¤è¤¤Ê¬ÊØÍø¤«¤Ê¡¨Â
üü
üü¤¿¤À¥á¥É̾¤ÈÆâÍÆ¤¬°ìÃפ·¤Ê¤¤¤Î¤¬µ¤»ý¤Á°­¤¤¤Ç¤¹¤¬...¡£
|
|Numeric¤Ïimmutable¤òÊݾڤ¹¤Ù¤­¤À¤È¹Í¤¨¤Æ¤¤¤ë¤Î¤Ç¡¤clone¤Ï¤¨¤Â¤Î¤â¤Î¤òÊÖ¤¹¤è¤¦¤Ë¤·¤è¤¦¤«¤Ê¡¤¤ÈÇùÁ³¤È¹Í¤¨¤Æ¤¤¤¿¤ê¤·¤Þ¤¹¡¥·è
|¤á¤ì¤Ðµ¤Ï¿ôÉäʤó¤Ç¤¹¤¬¡¨Â

°ì±þ¡¢Fixnum¤Ï¼«Ê¬¼«¿È¤òÊÖ¤¹°Æ¤Ë°ìɼ¤Ç¤¹¡£

|¤¬¡¤¤Ï¤È¤·¤Æ¡¤¤â¤È¤â¤È¤Î¥×¥í¥°¥é¥à¤Ç̵°Ç¤Ëclone¤·¤Æ
|¤¤¤ë¤Î¤âǼÆÀ¤Ç¤­¤Ê¤¤¤Î¤Ç¡¤¤³¤ì¤Ï¤³¤ì¤Çµ¤·¤¿Êý¤¬Îɤ¤¤ó¤¸¤¨Â
¤Â¤Ê¤¤¤«¤È¸À¤¦µ¤¤â¤·¤Þ¤¹¡¥

¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ëÊÑ¿ô¤ò°·¤Ã¤Æ¤ëÉôʬ¤Ê¤ó¤Ç¤¹¤¬¡¢¥Ç¥Õ¥©¥ë¥ÈÃÍ
¤ò¤Þ¤Þ¥»¥Ã¥È¤¹¤ë¤È¡¢Ç˲õŪ¤Ê¥á¥É¤Ç¥Ç¥Õ¥©¥ë¥ÈÃͤ¬ÊÑ
¤Ã¤Æ¤·¤Þ¤¦¤Î¤¬·ù¤À¤Ã¤¿¤ó¤Ç¤¹¡£

freeze¤ò»È¤¨¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡£
# freeze¤òÄêµÁ¤·¤Æ¤Ê¤¤mutable¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¤³¤È¤Ïµ¤¤Ë
# ¤³¤È¤Ë¤·¤Æ...¡£


--Multipart_Tue_Sep_22_13:51:20_1998-1
Content-Type: application/octet-stream; type=patch
Content-Disposition: attachment; filename="buffer.rb.diff"
Content-Transfer-Encoding: 7bit

--- buffer.rb~	Mon Sep 21 18:32:54 1998
+++ buffer.rb	Tue Sep 22 13:40:23 1998
@@ -20,17 +20,16 @@
 		    name.type)
       raise TypeError, msg
     end
+    if default.respond_to?(:freeze)
+      default.freeze
+    end
     DEFAULT_VALUES[name]  efault
     eval %{
       def #{name}
 	if defined? @#{name}
 	  @#{name}
 	else
-	  begin
-	    @#{name}  EFAULT_VALUES['#{name}'].clone
-	  rescue
-	    @#{name}  EFAULT_VALUES['#{name}']
-	  end  
+	  @#{name}  EFAULT_VALUES['#{name}']
 	end
       end
       

--Multipart_Tue_Sep_22_13:51:20_1998-1
Content-Type: text/plain; charset=ISO-2022-JP


-- 
Á°ÅÄ ¨Â ¼óèõçïÀáéáîåô®îå®êð¾

­­ÍõìôéðáòôßÔõåßÓåðß²²ß±³ºµ±º²°ß±¹¹¸­±­­