问题标签 [ceylon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ceylon - 如何使用 ceylon js(也可以使用 google 闭包编译器)
- 调用由以下三个文件的连接 (bash: cat ... >> app.js) 产生的文件:
/usr/share/ceylon/1.2.0/repo/ceylon/language/1.2.0/ceylon.language-1.2.0.js
modules/com/example/helloworld/1.0.0/com.example.helloworld-1.0.0-model.js
modules/com/example/helloworld/1.0.0/com.example.helloworld-1.0.0.js
用命令nodejs app.js
什么都不做。在网页中使用时相同。我如何调用该 javascript 程序以便它在不使用 require.js 的情况下运行?
请给出 ceylon 模块和包含在其中的 run 函数和其他函数如何转换为 javascript 并被调用的规则。
如何在不手动或使用 require.js 连接多个 ceylon 模块的情况下从编译中获取一个 javascript 文件?
以上是没有使用谷歌闭包编译器。
鉴于语言模块的大小为 1.6 MB,不使用 google 闭包编译器运行 ceylon-js 是没有意义的。
- 单独使用 google 闭包编译器编译“ceylon.language-1.2.0.js”会导致很多警告。
java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js /usr/share/ceylon/1.2.0/repo/ceylon/language/1.2.0/ceylon.language-1.2.0.js --js_output_file lib-compiled.js
我怎样才能摆脱这些警告?
- 我必须以什么顺序将 ceylon-js 产生的文件与模型文件和语言文件链接在一起,以便使用谷歌闭包编译器以高级模式编译它们以消除死代码。
ceylon - 如何将 Ceylon Sequential 或数组转换为具有适当类型的通用元组?
我有一个通用函数,它需要创建一个元组来调用一个我不知道其参数类型的函数。
像这样的东西(除了array
这个例子是由一些外部代码创建的,所以我不能直接应用这个函数):
是否有一种类型安全的方法来实现此方法并使用给定的参数调用要调用的函数?
ceylon - 编译为 javascript 时缩小 ceylon-sdk 和 ceylon-language
对于用 ceylon-js 编写的浏览器内应用程序,最好将 ceylon.language-1.2.0.js 文件的大小减小到仅实际需要的大小。
这个问题已经回答了。
如何使用 ceylon js(也可以使用 google 闭包编译器)
但是给定的解决方案涉及手动编辑编译产生的 javascript 代码。这是不可取的,因为编译器应该生成在编译后不需要手动编辑的代码(抽象)。我不清楚谷歌闭包编译器是否能以可靠的方式处理它的锡兰风味。
是否将锡兰中的 ceylon.language 源代码复制到项目中并仅将 ceylon.language 的那些部分导入到项目中所需的项目中?然后编译成javascript。然后完全从客户端/浏览器内应用程序中删除 ceylon.language-1.2.0.js。
现在我的问题:
最简单的浏览器应用程序需要哪些部分?我想到了 Array(String) 之类的东西。
该解决方案是否有机会绝对可靠地工作?
锡兰的作者会不会有更好的解决方案使这种尝试过时?
ceylon - 将类似 DSL 的 contrustor 调用与匿名类声明相结合
可能吗?
我试过这样的事情:
ceylon - 锡兰中是否有等效于 scala 的 monadic-for/yield 语法?
如何在 Ceylon 中实现“monadic for/yield”语法,例如蹦床,因为 Ceylon 不执行尾调用优化。for/yield-syntax 需要引入新的变量名,而使用 Tree-like 语法是不可能的。
在锡兰模拟 Scala 的 for/yield 的最佳方法是什么?
一种解决方案是使用(键入的)地图。这感觉有点像基于 Python 之类的映射创建内部(类型化)脚本语言。
有更好的解决方案吗?
enums - 迭代枚举值
假设我在锡兰有这个枚举:
我想迭代这些值。在 Java 中,我会这样做Suit.values()
。锡兰有类似的东西吗?
我试图自己定义它,但这没有用,因为锡兰没有静态成员?我应该只在顶层定义:
ceylon - 更新不可变序列
我在锡兰有一个序列,我想制作一个新序列,其中一个元素根据索引替换为其他元素:
在 Scala 中,这称为update
.
ceylon - 在锡兰打破多个 for 循环
假设我for
在锡兰有几个嵌套循环。如何打破所有循环:
java - 如何使用 ceylon 命令行工具构建 ceylon?
如何仅使用 ceylon 命令行工具而不是 ant 将 ceylon 分发设置和构建为混合的 java 和 ceylon 项目?
我假设已经按照https://github.com/ceylon/ceylon、ceylon/dist/README.md中的说明克隆了 git 存储库、清理和分发了 ant 项目,因此 - 在所有其他部分中 - 具有使用 antlr 从语法中准备一个解析器。
您不能概述必要的步骤,或者显示一个脚本,该脚本从 git / ant 项目中收集所需的 .java 和 .ceylon 文件以及资源和 .xml 文件等。你不能在 git hub 上设置一个吗?
具体来说,我应该将哪些依赖项放在哪里(repo),以及在锡兰项目中使用 java 依赖项(jars,而不是汽车)时,我必须如何处理像 ¨1.2.1¨ 这样的版本字符串?
为了简单起见,我可以只构建 compiler-java 和相关的子项目,特别是类型检查器,而忽略 compiler-js 及其相关的 .js 文件。
最后,为什么 ceylon 发行版是用 ant 而不是 ceylon 工具构建的?
collections - Ceylon 中 List、Tuple、Sequence、Sequential、Iterable、Array 等的区别
Ceylon 对可能都被视为某种数组的事物有几个不同的概念:List
, Tuple
, Sequence
, Sequential
, Iterable
, Array
, Collection
,Category
等。这些类型有什么不同,我应该什么时候使用它们?