個人的にはPC光るのは嫌いではない。チープさが好き
YoshikuniJujo
YoshikuniJujo@yoshikunijujo.github.io
npub1a7y7...fdm2
Haskell好き
あと、ライフゲームの盤を定義してるモジュールの例だけど。
盤の一部に特定のパターンがあるかどうかを確認したいみたいな話があったときに、盤の一部を取り出して、それとパターンを比較するみたいな話になるけど、盤、パターン、取り出した部分は、どれもたとえば[[Bool]]で表現できる。
でも、これはあまり筋が良くない。
盤とパターンと取り出した部分はそれぞれモノとしてはちがうので、
newtype Board = Board [[Bool]]
newtype Pattern = Pattern [[Bool]]
newtype Clipped = Clipped [[Bool]]
としたほうが良い。
あと「位置」を表すのに(Int, Int)みたいなタプルを使うのは「本当のところ良くな」くて、
data Pos = Pos {
posX :: Int,
poxY :: Int }
みたいにしたほうが良くて、さらにもっと冗長で安全にするなら、
newtype X = X Int
newtype Y = Y Int
data Pos = Pos {
posX :: X,
posY :: Y }
みたいにすれば「もっとベター」な感じはある。
けど、まあ「安全と簡潔」のトレードオフがある。
りとりんもそう思うよね
名前付けるのに「型でわかる情報はいらない」という考え方もある。
clearBoardArea :: Board -> Area -> Board
ではなくて、
clear :: Board -> Area -> Board
としてもいいのではという話。
もちろん名前がかぶる場合にはclearBoardAreaみたいに「区別のため」に冗長にする場合はある。
「説明のため」に冗長にする必要は「より実態にそくしている『型という情報』がある」からいらないという話。
モジュールFoo.Barに
data Baz = ...
bazToQux :: Baz -> Qux
quxToBaz :: Qux -> Baz
みたいに定義する代わりにモジュールFoo.Bar.Bazに
data B = ...
toQux :: Baz -> Qux
fromQux :: Qux -> Baz
のようにすることをよくやる。
オブジェクト指向には直観的にわかりやすい名前空間という側面もあるけど、それをなぞっている。
本当はFoo.Bar.Bazという名前の型を用意したいのだけど、できないのでFoo.Bar.Baz.Bとしている。
twitter.newって、誰がやってるかとかは知られてるのかな
やっぶみーん
うにゅう、おはよう
のすたろう、のすたろうならレターパックで何を送りますか
「レターパックで送れ」はすべて詐欺です
僕がポイントフリースタイルが好きなのは、「変数名を考えなくてすむ」から。
わが心おどりはねるがごとくなり
わが心躍り跳ねるがごとくなり
DMはまずRSA暗号で相手を認証して、ディッフィーヘルマンで鍵を交換して、で暗号化して送信するってのが理想だと思う。
そうなると、まずリレーに「アリスがボブにDMを送りたがってるよ」という情報が送られて、それをボブ側のクライアントが発見する。でボブ側のクライアントが認証されて、鍵交換が行われる。でアリスが暗号化したメッセージを送る。そんな感じ。
NIPのDMもそうなってるかな。
非同期風にしたいのであれば、クライアント側でアリスのメッセージを保存しておいて、ボブのクライアントからの応答があった時点で送信するようにすれば、「人間のアリス」にとっては非同期に感じられる、かな。
適当に考えただけなので適当。
子供のころは「みたらし」が好きだった。今は「みたらし」「あん」「いそべ」を順に回したくなるくらい平等に好き。
「あぁ^~心がぴょんぴょんするんじゃぁ^~」の漢文を分析してみた | テトリスの海外旅行
「合法入国者」ってあんまり言わないな
