Haskell使ってても、わりとFFIでCの関数にアクセスする必要は出てくる
YoshikuniJujo
YoshikuniJujo@yoshikunijujo.github.io
npub1a7y7...fdm2
Haskell好き
今日はノストルでハスケルの話いっぱいした
100回くらい言ってるけど、
left, top, bottom, right
とするか
left, up, down, right
とするか、いつでも迷っている。
あと基準になる場所は
currentかcenterかhereかで迷う。
Haskellだと「観測すると速くなる」問題として、サンクがたまっててメモリを圧迫していた、みたいな話がある。
観測することによってサンクがつぶれる。
前にソート四天王ってのを考えて。
マージソート
クイックソート
バケットソート
ヒープソート
みたいになってて、まずは「ヒープソート」がメモリのキャッシュの手法に合わなくて(ヒープソートはメモリの幅広い場所に短期間でアクセスするので)負けて、で癖のある敵として「特定の領域では四天王最強よりも強い」バケットソートが出てきて、主人公は「何?O(n)だと...」みたいに言うけど、意外に簡単にたおせちゃって、で「クイックソート」は「ソート済みの並び」で倒して、で最強のマージソートにいどむ、みたいな話。
自作言語
自作OS
自作CPU
自作PC
「自作PCは自作四天王のなかで最弱」
「自作四天王の面汚しよ」
久々に自作PCやりたいな
「圧縮」の前に「値をかたよらせる」ってのは、よく行われる手法のひとつ。PNGの場合「となり合う値は似ていることが多いので差を求めるとWord8で言うところの小さい方と大きい方にかたよりがち」という話。
組み立てPC
分割統治っていうとアルゴリズムのほうを思っちゃうけど、本来の意味は被支配者同士を争わせることで統治しやすくすることで、まあいわゆるポピュリズムのやることってのが、これ。
自分で書いたコードなのに「?」ってなったやつ
calc :: [Word8] -> Int
calc = sum . (^ (2 :: Int)) . fromIntegral . fromIntegral @_ @Int8 <$>)
「なんでfromIntegral2回もやってんの?」って思って思い出した。
このコードはWord8の複数の値ができるだけ小さい方と大きい方にかたまるものを選ぶために、Word8をInt8に変換することで、その条件を「0に近いもの」にしたうえで、それを二乗して総和を取っている。
何かっていうとPNGのフィルタの結果で一番良いと思われるものを選ぶもので、できるだけ値をかたよらせたほうが以降の圧縮に有利という話。
「色」ってのは具体的な物と抽象的な概念のちょうど真ん中あたりにある気がする
goroutineおもしろい。HaskellだとSTMのTChanを使って同様のことができる。
wとかhってわりとよく使うので、widthとかheightを意味するときはwdtとhgtにするようにしようかな。
おもち
cons :: a -> [a] -> [a]
snoc :: [a] -> a -> [a]
uncons :: [a] -> Maybe (a, [a])
unsnoc :: [a] -> Maybe ([a], a)
このあたりの命名、好き。
三大奇書とされるなかで
「ドグラ・マグラ」はおもしろかった。「虚無への供物」はよくわからなくて途中で読むのやめた。もうひとつは読んでない。
アンパンマンの世界で一番おいしいのはクレープという仮説。
明らかに他のものを食べたときとリアクションがちがう。
僕の性格としてコードが
***************
************
*******
***
みたいな形になりがち。
横80文字まで、インデントは深く、そしてできるだけ1行につめこみたい。
1回で見えるコードの量がある程度多いほうが効率がいい。
preとpostが両方ともpではじまるの良くない。
前の版と現在の版を変数p, cで置いて、「じゃあ後の版はpostか、じゃあp」ってなった。