类型上的恒等函数,主要用于其 Monad 实例。
恒等单子可与单子变换器配合使用,以构造用于特定目的的单子。此外,也可以在本来不使用
单子的代码中通过 do 记法使用局部可变性、for 循环和提前返回等控制结构。
示例:
def containsFive (xs : List Nat) : Bool := Id.run do
for x in xs do
if x == 5 then return true
return false
#eval containsFive [1, 3, 5, 7]
true