gpt4 book ai didi

ceylon - ceylon 中是否有与 scala 的 monadic-for/yield 语法等效的语法?

转载 作者:行者123 更新时间:2023-12-02 00:54:06 26 4
gpt4 key购买 nike

如何在 ceylon 中实现“monadic for/yield”语法,例如对于蹦床,因为 Ceylon 不执行尾部调用优化。 for/yield-syntax 需要引入新的变量名称,而使用类似树的语法是不可能的。

在 ceylon 模拟 Scala 的 for/yield 的最佳方法是什么?

一种解决方案是使用(键入的) map 。这感觉有点像基于 Python 等映射创建内部(类型化)脚本语言。

有更好的解决方案吗?

最佳答案

你的问题有点令人困惑,因为:

  1. Ceylon 与 Java 一样,根本不进行尾递归优化。这不是做“对”或“错”的问题;而是做事“对”或“错”的问题。这是编译器根本不做的事情。
  2. Ceylon 中根本没有内置的 Monad 抽象。人们可以使用对类型函数的实验性支持来编写自己的 Monad 类型,但它不是 Ceylon 语言模块或 SDK 的一部分。
  3. ceylon comprehensions (与 Scala 的 for/yield 非常相似)被定义为范围在流上,而不是在 monad 上。

所以我想你的问题的直接答案是“不”。没有同等的。

为了对您的问题提供更有帮助的答案,我必须知道您实际上想在这里实现什么目标。真的很难想象在使用 Ceylon 的内置流、序列、集合或元组时如何会出现尾部调用优化的需求。这些构造都没有被设计为通过递归进行迭代,因为递归在 JVM 上效率不高。所以你一定在尝试做一些不同的事情,但我不确定那可能是什么。

关于ceylon - ceylon 中是否有与 scala 的 monadic-for/yield 语法等效的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34416697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com