问题标签 [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 投票
0 回答
138 浏览

windows - 如何在具有因子的 Windows 上启动最小化进程

我有一个可执行文件,我在一秒钟内从我的因子程序(使用 )调用了几次。即使侦听器在后台,它也总是会弹出并成为活动窗口。我怎样才能将它最小化或不作为活动窗口启动?是否有可以这样设置的“过程”参数?

0 投票
4 回答
1296 浏览

programming-languages - 连接语言可以使用前缀表示法吗?

级联语言有一些非常有趣的特性,例如能够组合不同数量的函数,并且能够分解出函数的任何部分。然而,许多人不屑一顾,因为它们使用了后缀表示法,而且很难阅读。另外,波兰人可能不喜欢人们倒着使用他们精心制作的符号。

那么,是否可以有前缀符号?如果是,那么权衡是什么?

我知道它是如何工作的,但我对连接语言没有经验,所以我可能遗漏了一些东西。基本上,一个函数将以相反的顺序被评估,而值将从堆栈中以相反的顺序被拉出。为了证明这一点,我将比较后缀和前缀的样子。以下是一些使用传统后缀表示法的连接表达式。

表达式从左到右计算:在第一个示例中,5被压入堆栈,然后dup复制堆栈顶部的值,然后将堆栈*顶部的两个值相乘。函数首先从堆栈中提取最后一个参数:在第二个示例中,-调用时2位于堆栈顶部,但它是最后一个参数。

这是我认为前缀表示法的样子:

表达式从右到左求值,函数首先从堆栈中提取它们的第一个参数。请注意前缀过滤器示例如何与其描述更接近,并且看起来与应用样式相似。我注意到的一个问题是考虑因素可能没有那么有用。例如,在后缀表示法中,您可以2 -从中分解3 2 -以创建减法函数。在前缀表示法中,您可以从中分解- 3- 3 2创建一个subtractFromThree 函数,这似乎没有那么有用。

除非有任何明显的问题,否则使用前缀表示法的连接语言可能会赢得不喜欢后缀表示法的人的青睐。任何见解都值得赞赏。

0 投票
1 回答
563 浏览

concurrency - 连接语言和并发 - 原则上有困难吗?

连接语言中的并发性是否存在原则问题,还是只是缺少?

还是我只是错过了什么?

据我所知,目前最先进的连接语言是Factor,它仍然只有一个不使用多核的协作线程系统

也许 Factor 的发明者 Slava Pestiv 已经被 Google 消耗得如此之多,以至于他根本没有时间创建一个多核版本。

据我了解,演员模型应该非常适合连接语言。然而,这是一个相当困难的领域。知道什么样的模型会很好用吗?

0 投票
1 回答
213 浏览

repeat - 是否可以在因子代码中创建重复功能?

我正在尝试在因子代码中创建一个名为 repeat 的函数,该函数需要一个非负整数 n 并在其后加上引号 q。它导致 q 和 n 从堆栈中弹出,然后 q 的内容执行 n 次。

所以如果代码

被执行它会应用 drop 到栈顶 5 次。

我想知道是否可以在因子代码中编写它,或者我是否必须编辑解释器并以这种方式添加重复作为新函数?

0 投票
3 回答
980 浏览

stack - 如何在 Forth(或 Factor)中编写应用程序?

我可能对探索像 Forth(或 Factor)这样的基于堆栈的语言感兴趣。我希望看到的是如何一步一步地从头开始构建应用程序。我发现的教程很简陋,并不能帮助我理解更大的图景。想一想在处理大量部件时如何管理堆栈是令人困惑的。

我一直认为(也许是错误的)学习语言的好方法是用它来编写Roguelike游戏。我很难弄清楚如何将一堆东西放在一起:迷宫、数十种生物、宝藏、角色统计数据等。

0 投票
0 回答
273 浏览

factor-lang - 如何在因子中调用构造的报价

我有一个词构成了我想要被调用的引用。但是,当我加载代码时,我得到Cannot apply “call” to a run-time computed value。如果我使用 walker 并逐步执行它按预期执行的代码。你应该如何调用构造的报价?

编辑:这确实有效

问题源于运行时不知道构造引用的堆栈效应是什么。在这些情况下,您必须在调用的引用中声明堆栈的样子。

0 投票
0 回答
403 浏览

forth - Obtaining a Factor binary... still possible with the Factorcode.org website down?

UPDATE (12-Mar-2014):

All sites are back: factorcode, planet-factor, builds.factorcode, and concatenative. Downloads are back. Looks like the sites were moved to a different host (Rackspace?) and quite significantly revamped.

(This can question can be considered closed.)


I've been trying to get a recent Windows binary of the Factor programming language, but it has been confounded by the fact that the factorcode.org website appears to be down.

Unfortunately, all download links seem to point back to it, specifically to builds.factorcode.org.

I don't know how long it's been this way, but it seems not to be the first time... It looks like it's been down since the start of March, and there's noise about this in October, and again in December.

As Factor is open-source, I was hoping that binaries might be mirrored somewhere else. But what used to be on SourceForge appears to have been removed to factorcode.org, and the main GitHub repository for Factor also seems to be hosted on factorcode.org.

How do I obtain binaries? It there perhaps another way?

(P.S.: these related sites are also down: Concatenative.org and Planet Factor.)


I have used Forth a fair amount and recently have been hearing more about Factor. Given that Google seems to have hired Slava Pestov (creator of Factor) and Daniel Ehrenberg (collaborator with Slava on developing Factor), thought I'd see what the buzz is about -- 'kick the tyres' so to speak.

0 投票
1 回答
61 浏览

stack - 因子中的字签名

我尝试遍历包含天气数据的数组。这已经很好了,我也可以从数组中加载对我很重要的数据。因此,我写了一个帮助词,如下所示:

: get-value ( hsh str -- str ) swap at* drop ;

[ "main" get-value "temp" get-value ] each 9 [ + ] times

此代码将温度值从堆栈中的数组推送并构建总和。“main”和“temp”是数组的键值。

我用这个命令执行它:get-weather-list 生成数组

"Vienna" get-weather-list [ "main" get-value "temp" get-value ] each 9 [ + ] times

结果是堆栈上的一个数字。现在我想把这个电话分成一两个词。例如:

: get-weather-information ( city -- str ) get-weather-list [ "main" get-value "temp" get-value ] each 9 [ + ] times ;

问题是我并不真正理解这个词的签名。我总是得到““每个”的输入引号不符合其预期效果”。我尝试了很多,但找不到解决此问题的解决方案。任何人都可以有一个想法吗?我很感激任何帮助:)

干杯斯特凡

0 投票
1 回答
65 浏览

stack - 如何获取数据堆栈上的元素数量?

是否有可能获取堆栈中元素的数量?

例如,如果堆栈如下所示:

结果应该是3

0 投票
1 回答
57 浏览

factor-lang - 没有最后一个元素的总和堆栈

是否有可能在没有最后一个元素的情况下总结堆栈?例如,如果堆栈具有以下元素:

操作后堆栈应如下所示: