jsonで代数型データ型
data List a = Nil | Cons a (List a)
List = {"Nil":{},"Cons":{value:a,Leaf:a}}
jsonは正規化するべきかというか代数型で表現したらいいのではと言う
日本語の変数を定義できない代わりに文字列としてキーにするとか
jsonはキーのみは定義できない
そもそもjsonと代数型データって全く関係ないものなのかもしれない
https://stackoverflow.com/questions/22154017/how-do-i-represent-variants-sum-types-in-json
code:type.js
{
"head": 1,
"tail": {
"head": 2,
"tail": {
"head": 3,
"tail": null
}
}
}
code:fsa.js
{"head": int,
"tail": self,
}
null
code:tree.js
{
"node": [
{
"node": [
2,
3
]
},
2
]
}
という構造を持って一つの型を作る
型の名前をつける仕組みはない
名なし型とも言うべきか
名無しなので,selfで再帰を表現させてもらった
和の表現もできない
https://ericnormand.me/article/json-and-adt
https://www.schoolofhaskell.com/user/Geraldus/algebraic-data-types-adts-with-aeson
javascriptのいいところ
https://www.json.org/json-en.html
jsonのフォーマッた