Racket定义的渐进式lambda微积分的 "重复 "语法?

我不明白什么叫 repeat (j l h) 在下面的代码片段中,来自一篇关于渐进式类型化lambda微积分的论文,算法是quicksort,也许懂算法的人可以猜到语法定义。

enter image description here


编辑: 根据我目前的理解,算法有错误,应该是。[i: (Ref Int) (box (- l 1))],也就是 h 应该是 l.


论文链接。https:/dl.acm.orgdoi10.11453314221.3314627#sec-supp。

他们的Grift编译器的源代码是用以下语言编写的 .rkt 所以希望懂Racket的人可以帮忙,重复语法在这里有定义。https:/github.comGradual-TypingGriftblob95c56d94b38e9b33adf7a662c6d7768430d977dasrclanguagesyntax.rkt#L126。enter image description here

我是函数式编程RacketGTLC+的新手,对不起,我已经尽力描述我的问题了……

解决方案:

  1. 重复的含义 repeat(j l h)for j in a[l]...a[h](含)。
  2. 的含义。[i: Int (box (- h 1))] 初始化 Int 名为 i 堆积如山 operator-(h, 1).
  3. 算法有错误的行。[i: (Ref Int) (box (- h 1))],我认为应该是 [i: (Ref Int) (box (- l 1))],理由:我认为 h 作为高端和 repeat 循环将递增 i 当条件满足时,这可能导致 i > h 这是荒谬的。

给TA打赏
共{{data.count}}人
人已打赏
未分类

为什么我可以在textPersonName中输入数字?[重复]

2022-9-8 21:05:19

未分类

为什么改变我的变量值不影响我的列表?

2022-9-8 21:05:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索