Io って頭おかしいなぁ (いい意味で)
curlyBrackets を知った。
Object curlyBrackets := Object getSlot("method")
foo := {
"aaa" println
}
bar := {a,
"bbb" println
a
}
foo
bar(getSlot("foo")) # method は普通に書くと実行されてしまうので getSlot する必要がある。aaa bbb aaa
ちょっと他の言語に近づいた感じ。
もう少し変態的にしてみる
def foo (mes) {
mes println
}こういうふうに書けるようにするために def メソッドを定義する
def := {
name := call message next name
args := call message next arguments map(i, i name)
meth := call message next next
next := meth next
# cut message chain
meth setNext(nil)
# set the method to caller context
call sender setSlot(name, call sender doMessage(meth))
# set arguments list
call sender getSlot(name) setArgumentNames(args)
# pass to next message
call message setNext(next)
# return the method
call sender getSlot(name)
}# 引数なしなら仮引数省略可
def hogehoge {
"hogehoge" println
}
def piyopiyo (mes) {
mes println
}
# 引数なしなら括弧いらない
hogehoge
hogehoge()
# 引数ありなら括弧必須
piyopiyo("foobar")
Foo := Object clone do (
def foo (mes) {
mes println
}
)
Foo foo("alert")書いた式がどうコンパイルされたかは (前にも書いたけど) 以下のようすればわかる。
Message fromString("def foo (mes) { mes println }") code println
#=> def foo(mes) curlyBrackets(mes println)call message は呼びだしもとのメッセージチェイン (def foo(mes) curlyBrackets(mes println)) をさしてる。call message next は今のチェインの次、すなわち foo(mes) curlyBrackets(mes println) で、call message next name で先頭のメッセージの名前がとれる。メッセージを自分でとって doMessage することでメソッドを作って、呼びだしもとのコンテキストにセットする。setNext でメッセージをチェインを切ったり、スキップしたりする。
実際もっと簡単に
def := method(
ret := Object clone do (
foo := method(
self args := call message arguments map(i, i name)
self
)
curlyBrackets := method(
meth := method() setMessage( call message argAt(0) ) setArgumentNames(args)
context setSlot("foo", meth)
)
)
ret context := call sender
ret
)
def foo () {
"faaa" println
}
fooとかだと、method_missing 相当がないのでうまくいかない。(これは動くけど、foo 決めうちだからうごいてる)
method_missing に相当するのは forward だった
フィルタリング
フィルタリングは対象を自分で決めないと意味ない。
気が付いたら
ひだまりスケッチみてるっていう 5 話ばっかみるのアレだなーって思いはじめると 9 話ばっかり見るようになる
✖
オリジナリティがどうとか言ってるのをみると、なんかもやもやする。お前の DNA のどんだけがオリジナルなんだよ的な
環境
だいたいの人は、幼稚園とか、小学校とか、物心がついたときから、環境を読みとって、立ち位置を判断して喋っている。空気読んでる。集団の中だと、普通はそうせざるを得ない。それをしなくて許されるなり、それをしなくて言われることを耐えられる強さなりっていうのも結局、ところどころで、環境が許している一定数で、それは運なのだと思う。「できる」ということの裏には常に、環境がそれをすることを許している、っていうことがある。
おれは極めて普通に育ってきて、思ったことをそのまま言うのは正しいことではない、環境・空気を読まないといけないと擦りこまれているから、本心では正しくないと思っていることを、行動してしまうことは多々ある。そのときの行動は、自動的で、自分っていうものがどうにかできるものではなくなってる。「どうにもできない」って考えることをやめればいい、という人がいるわけだけど、その「どうにもできない」と考えてしまうことが既に、どうにもできないことなのだ。そのときの無力な感じ、自動的な感じ、そして、その無力感さえもが、自動的なプロセスに組込まれている感じ、ループする。決定権なんて全くないように感じる。
それはとても希望がないけれど、いつも頭を過ることだ。意識というものさえ、化学反応の延長にあるから、反応を継続させていくだけの、自動的なことで、どうにもならない。「なるようにしかならない」はこれだと思う。
日記の文章さえ自動的に勝手に綴られるものだし、人工無脳がなんか喋っているのと何が違うのかわからない。
関連エントリー
- 本心では正しくないと思っていることを、行動してしまうこと それがとても嫌だから、できるだけ関係性を断って、自分の自然なことをできるようにならなければと思ったのだったけど途中でそれた……
- ✖ ほんとにイライラすることばかりが起きる。なんでこんなめにあうのか。本当の意味がわからない。 いくら自分から面白いことを探そうとしても、ひたす...
- 悲しいということ やっぱ結局のところ、おれはなんもできないんだな。とかいってないで、やれよ、って話だよ。でもできない。そういう心の中というのは、自分にさえ理解...
- ✖ 自分が加害者にならないという自信がある発言をよくあって、それが不思議。その発言自体が加害的なのに、法律的には罪にはないから、マウントが成立す...
- 『新装版 不安でたまらない人たちへ やっかいで病的な癖を治す』を読んだ 新装版 不安でたまらない人たちへ やっかいで病的な癖を治す cho45 ジェフリー・M・シュウォーツ ★ 4.0 / 5.0 cho45 こ...
あぶないあぶない
超絶やる気を失なって発狂しそうになったけど、inject っていうか reduce のおかげでまのがれた。不思議なタイミングだ
本心では正しくないと思っていることを、行動してしまうこと
それがとても嫌だから、できるだけ関係性を断って、自分の自然なことをできるようにならなければと思ったのだったけど途中でそれた……
日記
- ハルヒをみくる伝説抜きにして全部見た。
- サムデイ イン ザ レインは2回見た。
- ハルヒってツンデレとはなんか違う気がするんだけど、やっぱ一言でいうとツンデレなのかなぁ
- 別にツンデレに限らないけど、必要なのはそういう表面的なことじゃなくて信頼感なんだなぁと、古泉のセリフとか Puppy Love とか聴きながら思った。
- 紅の5話と6話を見た。
- 監督が千年女優の演出やってた人なんだなー
- 見てて疲れる
- ハナマル☆センセイションの原曲を初めて聴いた。
- ひだまりスケッチ3巻を再読
関連エントリー
その中途半端さえ
継続さえしていれば継続する中途半端さとして極端になる
✖
青春を無駄にしてやってもなんの意味もないですよ。
