社内用
というわけで
// TypeScriptのファイルと考えてほしい
const abc = 13; // number
const strFunc = (a) => {
return a + "hoge" // string
}; // strFuncは引数stringを取り、戻り値stringを取る関数
https://ts-ast-viewer.com/ 使ってASTのサンプル見せること
引数、戻り値の型は省略できる
再帰は大丈夫
let多相性は作れた?
引数、戻り値の型は省略できる
再帰は大丈夫
let多相性は作れた?
パラメータ多相(genericsとか)
アドホック多相(オーバーロードとか)
let abc = fn(a) { return a; } in (
abc(22); // ここで「引数intをとり、intを返す関数と保存してしまうと
abc("aa"); // ここで引数stringが渡されるのでエラーになる(本来ならばOKのはず)
)
このやり方だと
// 相互再帰
let abc = fn(a) {
if (a <10) {
def(a+1);
}
}
def = fn(b) {
if (b<10) {
abc(b+1);
}
}
in (
abc(0); // stack over flow!
)
呼び出すパターンを保存する?
// 相互再帰
let abc = fn(a) {
if (a <10) {
def(a+1);
}
}
def = fn(b) {
if (b<10) {
abc(b+1);
}
}
in (
abc(0); // stack over flow!
)
呼び出すパターンを保存する?
型システム入門には以上のように書かれているが難しい…
くらいの認識で良いと思う(合ってるかは怪しい)
型システム入門に定義らしい定義が見つからなかった
完全性を保つのは難しいので、健全性だけ保つケースが多い
ex. モンキーテスト=> バグ発見 => テスト追加