27

最近看到这个对 Factor 的介绍,我有点好奇想了解更多。除了那里提到的官方常见问题解答之外,您是否有学习语言的资源(以及基于堆栈的“范式”,如果这是正确的词),您发现有帮助吗?

作为旁注,学习 Forth 会有所帮助吗,或者就像比较 C 和 Python(或者你有什么)?

4

5 回答 5

27

Factor 深受 Forth 和其他堆栈语言的启发。它还从 Lisp 和 Smalltalk 中汲取灵感。根据我在网上阅读的内容,在学习 Factor 之前没有必要学习任何这些语言。但是,如果您这样做,它不会受到伤害:)

我遇到的最大问题是语言的年轻化。换句话说,各种博客/网站上的代码示例将会过时,因为它们使用了较旧版本的 Factor(0.6、0.7、0.8 等)。系数 0.9 及以上最有可能保持不变。

一旦您掌握了基础知识,文档(在线 + 在侦听器中)就非常清楚了。文档偶尔会遇到与博客文章相同的问题:一些过时的代码示例。如果您真的遇到困难,您仍然可以使用邮件列表/IRC 来帮助您。

到目前为止,我只使用了文档,而不是邮件列表/IRC。然后我与听众进行实验,以进一步学习/探索我在文档中找到的新概念。

这是第一种仅通过深入研究函数文档就可以回答我的大多数问题的语言。Factor 的大部分内容都是用 Factor 编写的,因此随着您花更多时间在文档上,事情会变得更加清晰。

(我遇到的第二大问题是试图理解 Web 框架(Furnace)。Web 框架比我习惯的功能更丰富。这不是不可能的,只需要一些练习和探索文档。)

最快的介绍。到我发现的连接语言:http: //github.com/raganwald/homoiconic/blob/master/2008-11-16/joy.md#readme

您进入 Factor 的第一步: http: //concatenative.org/wiki/view/Factor/Learning

这些视频更详细地介绍了编写因子代码:

  • 90 分钟的视频可能有助于学习 Factor 基础知识:YouTube:Factor:一种可扩展的交互式语言- 基本上,Slava(Factor 创建者)提供了一个视频介绍。因素。它是 Google Talk 系列的一部分。(有一个高质量和低质量的版本,以防你看不到幻灯片。)因子概念也与其他语言进行了比较。
  • 13 分钟视频:Forth @ RubyConf 2008。Forth 的简短演示。它还提到了一些在整个软件世界中普遍存在的想法。
  • 100 分钟视频:向 Lisp 程序员展示的因素。音频不是最好的,但视频质量仍然非常好。如果您观看其他视频,则可以跳过其中的一些开头部分。

一些转移:

以下是一些可以帮助提供方向的博客文章:

了解可用的各种抽象和库是掌握 Factor 的关键:集合、通用词、fry、locals、宏、memoization、PEG、prettyprinter 等等。有效利用这些工具可以将解决问题所需的工作量减少一个数量级。

Factor 绝对是最有趣的语言。与其他语言相比,它的惊喜更少。我发现它比 Ruby 或 Lisp 更容易学习。只是为了好玩,这里是 Lisp 和 Factor 之间的语言大战:

对于任何对基于堆栈的语言感兴趣的人,这篇文章可能会有所帮助:串联语言的乐趣(第 1、2、3 部分)(它更通用,并使用 Cat 语言作为示例。它帮助我学习了 Factor 基础知识。)

于 2009-01-19T11:12:09.183 回答
6

你可以从这里开始:http ://concatenative.org/wiki/view/Factor

运行时/GUI 中包含一个很好的文档。只需安装然后“浏览器”,您就会看到包含“您的第一个程序”等主题的文档。

该文档也可以在线获得:http: //docs.factorcode.org/
(与安装 Factor 时获得的文档相同。)

不要忘记订阅planet-factor

于 2008-12-03T18:29:37.130 回答
4

我最近一直在自学 Factor —— 实际上,我发现 Forth 是对基于堆栈的语言概念的一个很好的下午介绍(作为一个软件考古学家,退后几年来上一堂历史课很有趣)。

为此,我认为花几个小时来安装gforth或类似的 Forth 实现并开始阅读开始或使用 ANS 的前几章没有任何害处——我觉得这很有趣,因为我只当我开始学习因素时,它没有教给我任何我必须忘掉的东西。

一旦我在学习 Factor 方面取得了进一步的进展,我会让你知道我发现什么有用(或没那么有用!)。

于 2009-01-13T11:00:30.533 回答
4

我认为 Slava Pestov 在 Google(Google Tech Talk)上的出色演讲“ Factor:一种可扩展的交互语言”算是学习 Factor 的一个很好的资源。有很多关于 Factor 不同方面的演示,您应该能够在您的系统上进行尝试。例如使用 Factor 实现 Internet 时间服务器的演示,大约。1 小时 7 分 20 秒和词汇关闭,46 分 35 秒。事实上,大部分演示文稿都是演示。

Flash 视频为 141 MB,1 小时 36 分 38 秒,演示时间为 2008 年秋季。Slava Pestov是 Factor 编程语言和流行的文本编辑器 jEdit 的创建者。

于 2009-09-01T18:43:26.030 回答
3

你也可以从 Forth 开始,因为它也是一种基于堆栈的语言:

  • 从头开始
  • 思考
  • 第四入门
  • 第四语言
  • 第四教程
  • Pforth 教程
  • Gforth 手册
  • 开始
  • 第四链接
  • 维基福斯
  • OLPC 第四版
  • 让我们构建一个编译器
  • 琼斯福斯
  • (编辑:更新 Jonesforth 链接到新的 git 存储库 - 2014 年 4 月 18 日)

    于 2011-09-16T17:50:40.790 回答