最近遇到this introduction to Factor,我有点好奇了解更多信息。除了那里提到的官方常见问题解答之外,你是否有资源学习这门语言(以及基于堆栈的“范例”,如果这是正确的词),你发现它有用吗?
作为旁注,会学习Forth帮助,还是将C与Python(或者你有什么)进行比较?
答案 0 :(得分:27)
因素受到Forth和其他堆栈语言的启发。它还抓住了Lisp和Smalltalk的想法。从我在网上看到的,在学习因子之前没有必要学习任何这些语言。如果你这样做,它不会受到伤害,但是:)
我遇到的最大问题是语言的年轻。换句话说,各种博客/网站上的代码示例将过时,因为它们使用旧版本的因子(0.6,0.7,0.8等)。因子0.9及以上最有可能保持不变。
一旦你完成了基础知识,那么文档(在线+在听众中)就非常清楚了。这些文档偶尔会遇到与博客文章相同的问题:一些过时的代码示例。如果你真的遇到困难,你仍然有邮件列表/ IRC来帮助你。
到目前为止,我只使用过文档,而不是邮件列表/ IRC。然后我试验听众进一步学习/探索我在文档中找到的新概念。
这是第一种通过深入研究函数文档来回答大部分问题的语言。大部分因子都是用因子编写的,所以当你花更多时间在文档上时,事情会变得更加清晰。
(我遇到的第二大问题是试图理解网络框架(熔炉)。网络框架比我习惯的功能更丰富。这不是什么不可能,只需要一些练习和探索文档。)
最快的介绍。我找到的连接语言:http://github.com/raganwald/homoiconic/blob/master/2008-11-16/joy.md#readme
您迈出的第一步:http://concatenative.org/wiki/view/Factor/Learning
这些视频详细介绍了编写因子代码:
一些转移:
以下是一些可以帮助提供方向的博客文章:
了解可用的各种抽象和库是掌握因子的关键:集合,通用词,鱼苗,本地,宏,memoization,PEG,prettyprinter等等。有效利用这些工具可以将解决问题所需的工作量减少一个数量级。
因素绝对是最有趣的语言。它比其他语言更少惊喜。我发现它比Ruby或Lisp更容易学习。只是为了好玩,这是Lisp和Factor之间的语言枪战:
对于任何对基于堆栈的语言感兴趣的人,本文可能会有所帮助:The Joy of Catenative Languages (Parts 1, 2, 3)(它更通用,并使用Cat语言作为示例。它帮助我学习了因子基础知识。)
答案 1 :(得分:6)
您可以从这里开始:http://concatenative.org/wiki/view/Factor
运行时/ GUI中包含了很好的文档。只需安装然后“浏览器”,您就可以看到包含“您的第一个程序”等主题的文档。
该文档也可在线获取:http://docs.factorcode.org/
(它与安装Factor时获得的相同。)
不要忘记订阅planet-factor。
答案 2 :(得分:4)
我最近一直在教自己的因素 - 我实际上发现Forth是一个很好的下午对基于堆栈的语言概念的介绍(作为一个软件考古学家的一点,回顾历史课几年是很有趣的)。
为此,我认为花几个小时安装gforth或类似的Forth实施并开始处理starting forth或{{3}的前几章是不会有任何损害的} - 我发现它非常有趣,因为我只是舔了舔脚趾,因为我开始学习因素,所以我没有教会任何东西。
一旦我在学习因素方面取得了一些进步,我会告诉你我发现有用的东西(或者没那么有用!)。
答案 3 :(得分:4)
我认为Slava Pestov在Google(谷歌技术专家)的精彩演讲“Factor: an extensible interactive language” Talk)是学习因素的良好资源。那里 有许多因素的不同方面的演示 你应该能够尝试你的系统。比如说 使用Factor实现Internet时间的演示 服务器,约。 1小时07分20秒和词汇封闭,46 最少35秒。事实上,大多数演示都是演示。
Flash视频为141 MB,1小时36分38秒,演示时间 2008年秋季。Slava Pestov是因素的创造者 编程语言和jEdit,一种流行的文本编辑器。
答案 4 :(得分:3)
你也可以从Forth开始,因为它也是基于堆栈的语言:
(编辑:更新的Jonesforth链接到新的git存储库 - 2014年4月18日)
答案 5 :(得分:1)
我希望我的互动工具有助于http://factor.openeducationtools.com