问题标签 [factor-lang]

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.

0 投票
2 回答
182 浏览

factor-lang - MAIN 未在命令行上由 Factor 执行

我没有看到我的 Hello World 程序的任何输出。

(无输出)

(无输出)

0 投票
1 回答
281 浏览

shebang - 因素shebangs

根据Hyperpolyglot的说法,Factor 应该接受 shebangs。但在我的系统上,Factor 无法处理 shebangs。

规格:因素 v0.94,Mac OS X 10.7

0 投票
1 回答
174 浏览

main - 如果 __name__=="__main__": main(),Factor 是否与 Python 习语等效?

与任何基于 C 的语言一样,Factor 似乎有一个主要方法:

但是Factor不会自动执行main函数;如果您./hello.factor在终端中运行,则不会发生任何事情,因为main没有被调用。

有谁知道 Factor 是否有像 Python 这样的语法,所以hello实际上是调用的./hello.py

0 投票
1 回答
77 浏览

module - 以编程方式访问因子中的模块/文件名?

命令行用法中指定的程序名称,例如"Usage: rot13.factor [OPTIONS]".

Erlang 有一个宏调用?FILE来访问源代码自己的文件名。Factor有类似的东西吗?

罗塞塔密码

0 投票
1 回答
177 浏览

import - 导入因子代码而不将其放入工作目录?

我喜欢版本控制我的代码。将每个 Factor 文件从我的 git 复制到 Factor 的工作目录并返回会很痛苦。

Factor 是否有一个类似于 Ruby 的导入命令,require它在当前目录中查找源代码?

0 投票
1 回答
144 浏览

multiline - Factor有多线shebangs吗?

Common Lisp 有多行 shebangs:

这允许在 shebang 中进行更复杂的操作。CLISP 是少数从 ARGV 中省略脚本名称的语言之一。在这里,脚本名称被强制发送两次给 CLISP,以便 Lisp 脚本可以通过 ARGV 访问其脚本名称。

有没有办法在 Factor 中做到这一点,以便以下工作?

上面的行应该 print t,但 Factor 忽略了-help,因为它出现在脚本名称之后。

这是有效的,因为-help在脚本名称之前发送。./ios7crypt.factor -help无声地下降-help,因为 shebang 扩展为factor ios7crypt.factor -help。不幸的是,Factor 似乎需要脚本名称之前的所有命令行选项。

是否有覆盖此行为的多线 shebang?

0 投票
1 回答
809 浏览

compilation - 编译因子程序的更快方法

我真的很喜欢Factor语言。但是我发现编译用它编写的程序非常慢,因此用 Factor 创建真正的项目是不可行的。

例如,在我的笔记本电脑(i3 处理器,2GB RAM,运行 Fedora 15)上编译示例Calculator WebApp大约需要 5 分钟。

我四处搜索,但找不到比使用解释器(主要因素二进制可执行文件)更快的编译因子程序的方法。

当您尝试仅在每次运行时使用解释器而不是将程序“部署”到本机二进制文件(甚至在许多程序上都不起作用)时,这变得很荒谬。这意味着每次我想运行计算器,例如,我必须等待 5 分钟的冷启动持续时间。

我想知道这是否是一个常见问题,以及是否有解决它的好方法。

0 投票
1 回答
316 浏览

path - 使用 Factor 源代码树之外的代码

我正在尝试开始使用因素。

到目前为止,我已经:

  • 下载 OSX 磁盘映像
  • 将因子目录复制到$INSTALL/factor
  • 通过运行启动调试器$INSTALL/factor/factor

这似乎运行得很好。

按照编写第一个因素程序的说明,我注意到在我的目录中scaffold-vocab生成了文件。$INSTALL/factor/work我现在可以使用它,但总的来说,我喜欢保留一个单独$INSTALL的目录树和$CODE目录树。

因此,我尝试按照“使用因子目录树之外的代码”文档中的说明将其他目录添加到用于将代码加载到factor可执行文件的路径中,但我运气不佳。

首先,我尝试设置一个FACTOR_ROOTS环境变量:

然后,我尝试创建一个~/.factor-roots文件

然后我检查了是否应该./.factor-roots改为:

最后,我尝试手动添加它:

看来我在这里遗漏了一些基本的东西。

如何在$INSTALL/factor目录树之外编写代码并在其中使用它?我怎么知道scaffold-vocab在我的$CODE/Factor目录中构建脚手架?

0 投票
2 回答
179 浏览

cartesian-product - 在 Factor 中计算两个序列的笛卡尔积

我刚刚开始涉足Factor。我想计算两个序列的笛卡尔积:

我想看到的是一系列序列:

当我使用这个cartesian-product词时,我得到一个序列序列:

我也试过[ 2array ] cartesian-map了,但我得到了同样的东西。最后,我尝试[ 2array ] cartesian-each了,但我将每一对单独推入堆栈。至少它是平的,但我希望它们都在一个阵列中。

我该怎么做呢?

0 投票
1 回答
312 浏览

continuations - 调用堆栈?保留堆栈?名称堆栈?

Factor 手册的这一页讨论了存储在延续中的这些类型的堆栈:

  • 数据栈
  • 保留堆栈
  • 调用栈
  • 名称堆栈
  • 捕捉堆栈

这些堆栈到底有什么?对我来说最令人困惑的三个是调用堆栈、保留堆栈和名称堆栈。