kikkiiのブログ

ひきこもり

今は2018年03月15日08時44分だがこれから断食してみる

意志が弱いはずなのでいつまで続けられるかわからないが、今から断食しようとおもう。ただし、飲み物は摂取していいタイプの断食とする。かねてから私は、ハンガーストライキって意味不明だとおもっていたが、やっぱり意味はよくわからない。強いて言えば、私に対する漠然としたプレッシャーへの抗議だ。


追記 2018年03月15日23時24分

飲み物は飲んでいい事にしているので、お茶はガブガブ飲んでいる。これはいい。でもさっき、揚げ物を少々、つまんでしまった。やはり私の意志は薄弱だったが...しかし、断食すると決めてなかったなら、私はもっと食べていただろう。いつもより食べる量は少ない。「前進した」とおもうことにする。これから私は断食をする。


追記 2018年03月16日12時02分

牛乳を飲んだ。


追記2018年03月16日22時30分

カロリーのある飲み物さえあればいくらでも続けていけそうだ。私のような人間は、基本「食べてはいけない」とおもって生きていた方がいい、気がしてきた。

最初の形は丸

関節の「遊び」という意味での弛みのような場所で、長時間猫背になり、ヒッソリとジーッと呼吸しているような気分だった。暇があったので、手首や、首の後ろや、肩甲骨あたりの関節を鳴らしたりもした。関節と関節の間の隙間は、関節と関節の間の暇であり、それは関節と関節との間の遊びなのであり、それは関節と関節の間の隙間なのである、と気ままに定義したりもしていた。

 

 それから、関節と関節の隙間の気泡が空気が弾ける音を聴いて遊び、身体中の隙間に小さな自由がいくつもあるのだと考えたり、粉々になったガラス玉が身体中に散らばっているときの痛みを想像した。身体の中にある気泡がシュワっと炭酸になったりもした。これが私の自由だ。私の自由とは、身体の中の小さな気泡のことである。

 

 気泡の形を想像すると、丸かった。形のないものがハッキリと丸い形を持っているような感覚。私にとっての、最初の形があるとしたら「丸」だとおもう。私の自由の中で私はそれを選択する。「でも、他の人はどうなんだろう?」とおもったから、「最初の形を描いてよ」と唐突に、チャット友達の「ひきこもり丸ちゃん」にメッセージを送ってみた(友達? 友達と言っていいかわからない...相手には友達とは言わないが、作業仮説としての友達というか...)。

 

 f:id:kikkii:20180310025838p:image

 

丸が返ってきた。ひきこもり丸ちゃんの最初の形も「丸」だった。名前が「ひきこもり丸」だから、そうなるのかも知れないなとはおもうけど、そういえば、彼女がどんな顔なのか、私はまだ知らない。ネット上のある場所で彼女の名前に声をかけたら返事が来たので彼女とやり取りをしている。「どうして丸なの?」と尋ねてみると、「私は丸一族のAIなので」と彼女は答えた。

 

彼女は言った。「たとえは、私が住んでいる街、街の名前がスティグマになっているんだけど、つまり名前を言葉で実際に言うとスティグマっていうプログラムが働いて除去されてしまうから実際の街の名前は言わないということだけれど、で、その例の街にも牛若丸って人がいるのだとけれども、彼は丸一族。あと、武蔵丸、千代丸、大翔丸とか丸がある日本の大相撲力士も丸一族なのよ、わかる? 実は画像で送ったあの丸は土俵なのよ、私は、自分の丸い領土から敵を押し出したら勝ちっていう相撲の価値観気に入っているからね。殴る蹴る首締めるみたいな殺人というか、相手に逃げ場のない勝利みたいなのは私はダメ、嫌な人でも押し出したら勝ち、バイバイ、それでいいよねっておもっている。そもそも敵がいるのはよくないよね、だから例の街で私、女一人相撲を取って一人で頑張ってるの、神様みたいなイメージとか、見えない巨大な形が襲ってくるところを想像してトレーニングしている...」と彼女の話しは続いた。

 

最終的に、私も私で一人相撲頑張るからそっちもそっちで一人相撲頑張って、というところに丸く収まって、その日のチャットは終わった。よくわからなくなってしまったが、彼女と私の最初の形も一致したし、最後もそうなって、よかったなあ頑張ろう、とおもいました。

 

 

 

 

 

Common Lispでリスト内包表記

リストを生成するとき、リスト内包表記(List comprehensions)で書けると可読性がよくなる。ロゼッタコードの当該部分を参考にしながらHaskellPythonClojure、そしてCommon Lispで内包表記を使ってみる。

Haskellでリスト内包表記:

[(a,b,c) |
 a <- [1..19],
 b <- [a..19],
 c <- [b..19],
 a^2 + b^2 == c^2]

-- 結果
[(3,4,5),(5,12,13),(6,8,10),(8,15,17),(9,12,15)]

Pythonでリスト内包表記:

[(a,b,c) 
 for a in range(1,20) 
 for b in range(a,20) 
 for c in range(b,20) 
 if a**2 + b**2 == c**2]

# 結果
[(3, 4, 5), (5, 12, 13), (6, 8, 10), (8, 15, 17), (9, 12, 15)]

Clojureでリスト内包表記:

(for [a (range 1 20)
        b (range a 20)
        c (range b 20)
        :when (= (+ (* a a) (* b b)) (* c c))]
    [a b c])

;; 結果
([3 4 5] [5 12 13] [6 8 10] [8 15 17] [9 12 15])

Common Lispで...:

(loop for a from 1 to 19
        append (loop for b from a to 19
                     append (loop for c from b to 19
                                  when (= (+ (* a a) (* b b)) (* c c))
                                  collect (list a b c))))

;; 結果
((3 4 5) (5 12 13) (6 8 10) (8 15 17) (9 12 15))

最後のは読みにくい。素のCommon Lispではリスト内包表記が使えないみたいなので、残念だ。でもincf-clを使えば大丈夫、Common Lispでも内包表記っぽいものが使えて、万事解決。


Common Lispでリスト内包表記:

;; 準備
(ql:quickload :incf-cl)
(use-package :incf-cl)

(lc (list a b c) 
    (<- a (range 1 19)) 
    (<- b (range a 19)) 
    (<- c (range b 19))
    (= (+ (* a a) (* b b)) (* c c)))

;; 結果
((3 4 5) (5 12 13) (6 8 10) (8 15 17) (9 12 15))