
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Emacs Lispにnamed-letが追加されてた
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Emacs Lispにnamed-letが追加されてた
つい最近まで知りませんでした… Schemeを使っている方には「letで末尾再帰するときのアレをEmacsでも使... つい最近まで知りませんでした… Schemeを使っている方には「letで末尾再帰するときのアレをEmacsでも使えるようにする」というので通じるとは思うのですが… 総和っぽいのを求める関数を定義してみましょう。 (defun sum-rec (n &optional sum) (if (<= 0 n) (sum-rec (1- n) (+ n (or sum 0))) sum)) (sum-rec 100) ;=> 5050 アルゴリズムも使い方もめちゃ簡単なのですが、この実装には問題があります。 Lispに限らずよくあるプログラミング言語には、関数呼び出しの「深さ」と、その上限という概念があります。関数呼び出しをして、呼び出された関数から関数を呼ぶと深さは1追加され、その関数が実行終了すると深さは1減ります。 なぜこの呼び出しの深さという数が大事なのかというと、一般的なプログラムでは繰り