| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
原始链接: https://news.ycombinator.com/item?id=44041515
Hacker News 正在讨论一篇论文《地窖里的Lisp:楼上住着的依赖类型》(The Lisp in the Cellar: Dependent types that live upstairs),这篇论文关注的是使用“Deputy”在 Clojure 中实现依赖类型。依赖类型允许类型依赖于值,这对像 Lisp 这样的语言来说是一个挑战,因为在 Lisp 中重新定义顶层值是很常见的。 讨论围绕着重新定义如何影响类型检查展开,尤其是在随后的定义依赖于较早的值时。可能的解决方案包括变量遮蔽或在重新定义时重新检查所有相关的项。一位评论者建议采用一种基于事务的方法,类似于 Smalltalk,其中更改被捆绑在一起并在应用之前进行类型检查。 讨论还涉及到 Lisp 与 AI 的历史渊源,强调了它在 DSL 开发、模式匹配和数学符号方面的优势。文中提到了欧洲 Lisp 研讨会以及过去使用 Lisp 的 AI 编程范式。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
The only hint is this repo[0] referenced in the paper.
[0]: https://gitlab.com/fredokun/deputy
reply