Hatena::Groupsubtech

冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

 | 

Jul 08, 2008 (Tue)

ゆの in Io-language 02:18 はてなブックマーク - ゆの in Io-language - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

X := Object clone do (
	/ := method(
		if (self ?called, "スケッチ", "ひだまり") print
		self called := true
		self
	)

	< := method(o,
		"365" print
		o println
	)
)


X / _ / X < "来週も見てくださいね!"

このコードにおいて、 _ は評価されない ( / の引数なのだけど、/ 内では _ を評価していない) ので定義してなくてもいいところがポイントです。?called は、初回呼び出し時の called スロットがないために起こるエラーを回避します (正確な?の効果は「対象オブジェクトが指定メッセージに応答しないならば、メッセージセンドを行わない」かな? つまり ? でわっしょい!)。

文字列リテラルを使わずに call argAt(0) とかもできるはずなんですが、どうもマルチバイトだとダメみたいで諦めてます。

ゆの in Ruby 02:02 はてなブックマーク - ゆの in Ruby - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

#!ruby -Ku

class X
	attr_reader :a, :b

	def self./(a)
		new(a)
	end

	def self.to_s
		"×365"
	end

	def initialize(a)
		@a = a
	end

	def /(b)
		@b = b
		print self
		self
	end

	def <(o)
		puts " #{o}"
	end

	def to_s
		@a.a + "スケッチ" + b.to_s
	end

	class ::Object
		def _
			X.new("ひだまり")
		end
	end
end



X / _ / X < :来週も見てくださいね!

正式名称になるように一文字足しました

 | 

スポンサード リンク

書いてる人

cho45 (佐藤広央) (www.lowreal.net)

Perl, JavaScript, Ruby, HTML, CSS, Web etc


スポンサード リンク