lean-ja / lean-by-example

コード例で学ぶ Lean 言語
https://lean-ja.github.io/lean-by-example/
MIT License
15 stars 5 forks source link

scoped の例を,コマンドの不在を確認するように修正 #392

Closed Seasawher closed 4 days ago

Seasawher commented 5 days ago
-- #target をコマンドとして認識させる
-- 実装は与えない
syntax "#greet" : command

namespace Scoped
  -- scoped 付きで #greet コマンドにマクロとして実装を与える
  scoped macro "#greet" : command => `(#eval "hello, world!")

  -- その名前空間の中では使える
  #greet

end Scoped

-- 名前空間を抜けると使えなくなる
/-- error: elaboration function for '«command#greet»' has not been implemented -/
#guard_msgs in #greet

namespace Scoped
  -- 再び同じ名前空間を開くと使えるようになる
  #greet
end Scoped