Imaginantia

思ったことを書きます

Entries from 2017-11-01 to 1 month

文法という大問題

www.egison.org やりたいことは非常に正しい。が、その実現方法はきっと最高のものではない。 この言語は未来永劫使われるためのものではないことを本人たちもわかっているとおもうのだけど。 結局すべての問題の根底にあるのは文法なのである。 記述力を補…

条件分岐と関数合成 / 例

条件分岐と関数合成 - Imaginantia f = do b ← do a = g() if a.valid then B(a, true) else do a = h() B(a, false) return C(b) 近いが遠ざかった・・・ これは結局無名関数の即時実行ができるみたいな気持ち C f(){ B b = [(g,true), (h,false)].firstJus…

perspective / paradigm-shift

スタックに決まったデータを積むには時間がかかるが、スタックポインタをデータの先頭に持っていけば一瞬である

fast-returnの違和感

条件に応じて消えていく感じ、手続き型でありながら関数型に近い 歪みつつ混ざり合っている感じ これも正しい文法を与えることができそう

条件分岐と関数合成

次のプログラムを考える。 C f(){ A a = g(); bool flag = true; if(!a.valid){ a = h(); flag = false; } B b(a, flag); return C(b); } 結構ありうるシチュエーションだとおもう。 このプログラムの中で、 flag は本質的ではない。というのは b の構築自体…

情報という概念

情報理論などにおける「具体的な情報」ももちろん大事なのだけど、「抽象的な情報」も大事だとおもうわけで。でもそんな理論みたいなのは聞いたことがあまりない。 離散フーリエ変換は情報を失わないとか ポインタにするとデータの大きさ情報が失われるとか …

具体的すぎてわかりにくい

例えば2次元図形で。 左上 右下 で定義される矩形がある。 これを左上 右下 にするような平行移動と拡大縮小のパラメータを計算したいとする。 前提から の4つのパラメータを計算すればいいことはすぐわかる。 でもそれを具体的に計算するには方程式を解くし…

実行順でしかプログラムを読めない人たち

今までの手続き型言語に慣れた人たちが関数型とかに行くとプログラムがわからないのはきっとそういうことなのだとおもう。 きっとその人達は「実際にやる内容」とか、特に「時間」を気持ちの前提に置いている。そしてそれは関数型やストリーム処理などとは相…