🌊
lean4のプロジェクト作成、既存leanファイルの配置,build,実行を一括でやるスクリプト
コード
でもまだ完全ではなく、Project名の大文字小文字、lakeの実行スクリプトの配置場所などで混乱し、ChatGPTですら一発で動かせなかったのでまとめスクリプトを作りました。オプションでmathlib仕様不使用を選択可能、外部leanファイル配置のオプションで選択可能です。
Makefileを使えばビルドのみ、実行のみもできるようになります。
使い方
Usage: ./all_in_one_generator.sh [-m|--mathlib] [--src FILE] [--as ModuleName] <project_name>
-m, --mathlib : mathlib を依存に追加(cache get も実行)
--src FILE : 外部 Lean ファイルをプロジェクトへ取り込み
--as ModuleName : 取り込み先モジュール名(既定: Math → Math.lean)
<project_name> : プロジェクト名(実行ターゲット名は正規化されます)
使用例
- without mathlib
./all_in_one_generator.sh proj
- with mathlib fibonacci.leanを読み込み
./all_in_one_generator.sh proj1_math -m --SRC fibonacci.lean
Peoject名/Basic.leanは必要ないらしいです。
上記のプロジェクトを実行してもプロジェクト名/Basic.leanというファイルは生成されないのですが問題ないのでしょうか
ChatGPT:思考時間: 46s
結論:問題ありません。
project名/Basic.lean は Lake が自動生成する標準ファイルではありません。多くの教材や雛形で “自分のライブラリ用の最初の1枚” として <Lib名>/Basic.lean を置く慣習があるだけで、作らなくてもプロジェクトは正常に動きます(Main.lean だけで実行できます
試行錯誤
Reference
ChatGPTの書いたコードはちゃんとの動くか
月$2000プランではimportから関数の名前空間までlean3とごっちゃになっていて指摘しても直してくれません。
ためになる本
Discussion
プロジェクト作成用に標準で用意されている lake new コマンドとの使い勝手の違いを書いてほしいです。