Skip to the content.

データ構造とアルゴリズム

Hackage

純粋関数型データ構造

セルオートマトン

ソート

Queue

代数構造

バイナリ

数値

実数

文字列

集合

リスト

array/vector

Map

Graph

ハッシュ

Time

オブジェクト

オブジェクト指向は、ステートマシンを組み合わせてシステムを構築するものです。
関数型は普通のやつです。
– ゆかたゆ (@yukata_yu) July 28, 2019
https://twitter.com/yukata_yu/status/1155406739233103873

動的型付けのエミュレート

import Data.Dynamic

typeSwitch :: Dynamic -> IO ()
typeSwitch d = do
    case (fromDynamic d :: Maybe Int) of
        Nothing -> return ()
        Just i  -> putStrLn $ "This is Int! : " ++ show i
    case (fromDynamic d :: Maybe Bool) of
        Nothing -> return ()
        Just b  -> putStrLn $ "This is Bool!: " ++ show b

main = do
    let d1 = toDyn (8 :: Int)
    let d2 = toDyn (True :: Bool)

    typeSwitch d1
    -- This is Int! : 8
    typeSwitch d2
    -- This is Bool!: True

Higher-Kinded Data

等式論証

FFT

HKD