[英]What is a mapping between natural numbers and valid simply typed lambda calculus terms?
[英]The `repeat` syntax of gradual typed lambda calculus defined by Racket?
我不明白以下代碼片段中repeat (jlh)
的含義來自一篇關於漸進式lambda演算的論文,算法是快速排序,也許知道算法的人可以猜到語法定義:
編輯:根據我目前的理解,算法有錯誤,應該是: [i: (Ref Int) (box (- l 1))]
,即h
應該是l
。
論文鏈接: https://dl.acm.org/doi/10.1145/3314221.3314627#sec-supp
他們的 Grift 編譯器的源代碼是用.rkt
編寫的,所以我希望如果有人知道 Racket 可以提供幫助,這里定義了重復語法: https://github.com/Gradual-Typing/Grift/blob/95c56d94b38e9b33adf7a662c6d7768430d977da/s語言/語法.rkt#L126
我是函數式編程/Racket/GTLC+ 的新手,抱歉,我已盡力描述我的問題...
repeat(jlh)
的含義是for j in a[l]...a[h]
(包括)。[i: Int (box (- h 1))]
的含義是用值operator-(h, 1)
初始化一個名為i
create at heap 的Int
變量。[i: (Ref Int) (box (- h 1))]
,我認為應該是[i: (Ref Int) (box (- l 1))]
,原因:I將h
視為高端,當滿足條件時, repeat
循環將增加i
,這可能導致i > h
,這是荒謬的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.