簡體   English   中英

是什么讓變量在lambda表達式中“不顯得自由”

[英]What makes a variable 'not appear free' in a lambda expression

Philip Wadler的Monad中第11頁的函數式編程指出:

一個單子的操作滿足三個定律。

...

聯想 計算m ,將結果綁定到a ,計算n ,將結果綁定到b ,計算o 在這樣的計算中,括號的順序無關緊要。

  m★(λa。n★λb。o)=(m★λa。n)★λb。  o。 

變量a的范圍包括o在右邊的左邊,但不包括O,所以只有當一個沒有出現在自由這部法律是有效的。

是什么使變量在這種情況下“顯得自由”?

a沒有出現在自由o如果(且僅當)所有出現ao是結合拉姆達內a

例如,如果o = \\a. a o = \\a. ao = xa根本不出現), ao中不自由出現,但是如果o = ao = \\b. ab o = \\b. aba確實是免費的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM