勉強ブログ

わからんこととか覚え書きとか

Tail Calls

■ lecture 28

CS61Aのlecture25-27は特にメモなしで引き続きSchemeでの解説。

わかりやすいScheme入門があったので全体的にそれを参照。

https://www.google.co.jp/url?sa=t&source=web&rct=j&url=http://hagi.is.s.u-tokyo.ac.jp/~kakutani/files/scheme.pdf&ved=0ahUKEwj8_eOtm8PYAhXJVLwKHcpvAM4QFggkMAA&usg=AOvVaw0GrSzDqHyPQH6sk5AzNVe1

 

  • p.5

ダイナミックスコープとレキシカルスコープの比較。

http://please-sleep.cou929.nu/lexical-scope-and-dynamic-scope.html

 

  • p.7

関数型プログラミングのメリット。

3つ挙げられてるけど、最後の参照透明性が一番重要そう。なんとなくぐらいしか理解できてないけど。

オブジェクト指向型と関数型の比較をしてあるサイトがあったので参照。

https://qiita.com/stkdev/items/5c021d4e5d54d56b927c

 

  • p.8-15

末尾再帰について。

再帰と末尾再帰のちがいに注意。

末尾再帰とは、「自分 自身の呼び出しが関数の最後に評価される」ような再帰呼び出しをいい ます。(中略)

返り値を覚えておくためにスタックを消費しなくてもよいのです。

以下のリンクの前半を参照。

www.unixuser.org/~euske/doc/scm-sd7/

 

  • p.17

map関数とreduce関数の解説。

https://matome.naver.jp/m/odai/2146227379629605501

 

  • p.20

図の見方がわからん…