展开讨论

创业与收入经验摘录 · 机器翻译

当我看到一个新(对我来说)的来自(显然)范畴论的想法时,我会想它真的会……

当我看到一个新(对我来说)的来自(显然)范畴论的想法时,我会想它真的会出现在任何主流语言中吗。根据我的经验,语言在哲学层面的统一性是为什么与擅长编程和业务背景的程序员团队一起工作时会觉得很舒服的原因。解决一个问题的一组编程模式通常可以被一组可能不相交的模式替换,这两种解决方案在代码中都有相同的所有属性,并解决业务问题。我的问题是——主流语言能否采用代数效应(handlers?)而不造成深层次的混乱,或者是否应该从头开始构建一种新语言,在某种形式上建立在这些抽象之上。

源讨论为什么是代数效应?原帖 199 条评论 · 导入时统计
2

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 2

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

WW

> 一种主流语言能否在不造成混乱的情况下采用代数效应(处理程序?),或者是否应该从头开始构建一种新语言,以某种形式基于这些抽象。 代数效应是依赖注入的一种变体/增强,已被形式化为一种语言。依赖注入在现实中已经长期广泛使用,仅通过库实现。

完整原文
IA

一种较弱形式的代数效应已经非常常见:React 的 hooks。 React 的 hooks 与完整的代数效应有几个不同之处: - hooks 的处理程序已经为你实现好了,你不能将其替换为其他处理程序。例如,useState 的实现是固定的,你不能替换成其他实现。 - 它们不是多发恢复(multishot resumption)。当一个 hook 被触发时,处理程序只能处理并恢复一次。而在完整的代数效应中,处理程序可以多次恢复同一个触发的效应。 - 代数效应通常是一起出现的。这些效应之间有特定的组合规则。这就是它们被称为代数的原因。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。