More Related Content
PPTX
GraphQLのsubscriptionで出来ること PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011) PDF
PDF
PPTX
PDF
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) PDF
What's hot
PDF
PDF
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC PDF
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜 PDF
PDF
PDF
Dockerfile を書くためのベストプラクティス解説編 PDF
PDF
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか PDF
ドメイン駆動設計のための Spring の上手な使い方 PDF
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy PDF
PDF
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き PPT
PDF
さいきんの InnoDB Adaptive Flushing (仮) PDF
PDF
PPTX
Recently uploaded
PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ... PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研 PDF
krsk_aws_re-growth_aws_devops_agent_20251211 PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境 PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】 PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx goで末尾再帰最適化は使えるか?
- 1.
- 2.
階乗
6! = 6* 5 * 4 * 3 * 2 * 1 = 720
5! = 5 * 4 * 3 * 2 * 1 = 120
4! = 4 * 3 * 2 * 1 = 24
3! = 3 * 2 * 1 = 6
2! = 2 * 1 = 2
1! = 1 = 1
末尾再帰最適化
- 3.
- 4.
- 5.
末尾再帰の場合
fact (4, 5)
コールスタック
fact(3,20)
fact(2, 60)
fact(1, 120)
fact(0, 120)
return 120
return 120
return 120
return 120
func fact (5, 1)
return 120
n = 5 - 1 = 4
result = 5 * 1 = 5
n = 4 - 1 = 3
result = 5 * 4 = 20
n = 3 - 1 = 2
result = 20 *3 = 60
n = 2 - 1 = 1
result = 60 * 2 = 120
n = 1 - 1 = 0
result = 120
- 6.
- 7.
末尾再帰最適化の対応状況
言語 対応状況 備考
java× 非対応
scala ◯ 対応 デフォルトで有効。
@tailrecアノテーションで、非末尾
再帰関数をコンパイルエラーにでき
る
ruby △ 対応 デフォルトでは無効。
tailcall_optimizationオプションを有効にすると利用
可能
javascript △ 対応 ES6からは、実装仕様として要求
Babelではトランスパイル時に最適化するようになっ
ている
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.