良好的学习资源
最近看到Factor 简介,我有点好奇了解更多。 除了那里提到的官方常见问题解答之外,您是否有学习该语言(以及基于堆栈的“范式”,如果这是正确的词)的有用资源?
顺便说一句,学习 Forth 有帮助吗?或者这就像将 C 与 Python 进行比较(或者你有什么)?
Having recently come across this introduction to Factor, I've been a bit curious to learn more. Aside from the official FAQ mentioned there, do you have resources for learning the language (as well as the stack-based "paradigm," if that's the right word) that you've found helpful?
As a side note, would learning Forth help, or is that like comparing C to Python (or what have you)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
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
分解因子的第一步:http://concatenative.org/wiki/view/Factor/Learning
这些视频更详细地介绍了编写 Factor 代码:
一些消遣:
以下是一些可以帮助提供方向的博客文章:
Factor绝对是最好玩的语言。 与其他语言相比,它的惊喜较少。 我发现它比 Ruby 或 Lisp 更容易学习。 只是为了好玩,这里有一场 Lisp 和 Factor 之间的语言大战:
对于任何对基于堆栈的语言感兴趣的人,本文可能会有所帮助:串联语言的乐趣(第 1、2、3 部分) (它更通用,并使用 Cat 语言作为示例。它帮助我学习了 Factor 基础知识。)
Factor is heavily inspired by Forth and other stack languages. It also grabs ideas from Lisp, and Smalltalk. From what I've read online, it's not necessary to learn any of those language before learning Factor. It won't hurt if you do, however :)
The biggest problems I've run into is the youthfulness of the language. In other words, code samples on various blogs/sites will be outdated because they used older versions of Factor (0.6, 0.7, 0.8, etc). Factor 0.9 and above are most likely to remain the same.
Once you get past the basics, the docs (online + in the listener) are pretty clear. The docs occasionally suffer from the same problem as blog posts: some outdated code examples. You still have the mailing lists/IRC to help out if you really get stuck.
I've only used the docs so far, instead of the mailing lists/IRC. I then experiment with the listener to further learn/explore a new concept I find in the docs.
This is the first language where most of my questions are answered just by digging into the docs of a function. Most of Factor is written in Factor, so things become clearer as you spend more time with the docs.
(The 2nd biggest problem I've had is trying to understand the web framework (Furnace). The web framework is more feature-rich that what I am used to. It's nothing impossible, just requires some practice and exploring the docs.)
The quickest intro. to concatenative languages I've found: http://github.com/raganwald/homoiconic/blob/master/2008-11-16/joy.md#readme
Your first steps to Factor: http://concatenative.org/wiki/view/Factor/Learning
These videos go into more detail regarding writing Factor code:
Some diversions:
Here are some blog posts that can help provide direction:
Factor is definitely the most fun language. It has fewer surprises than other languages. I find it easier to learn than Ruby or Lisp. Just for fun, here is a language shootout between Lisp and Factor:
For anyone who is interested in stack-based languages, this article might help: The Joy of Catenative Languages (Parts 1, 2, 3) (It's more general and uses the Cat language for examples. It helped me with learning Factor basics.)
您可以从这里开始:http://concatenative.org/wiki/view/Factor
运行时/GUI 中包含很好的文档。 只需安装然后“浏览器”,您就会看到包含“您的第一个程序”等主题的文档。
该文档也可以在线获取:http://docs.factorcode.org/
(它与安装 Factor 时得到的相同。)
不要忘记订阅 planet-factor。
You can start here: http://concatenative.org/wiki/view/Factor
And there's a nice documentation included in the runtime/GUI. Just install and then "Browser" and you see the documentation with topics like "Your first program".
The documentation is available online, too: http://docs.factorcode.org/
(It's the same as the one you get when you install Factor.)
Don't forget to subscribe to planet-factor.
我认为 Slava Pestov 的精彩演讲“因素:
可扩展的交互语言”在 Google (Google Tech
Talk)算作学习因素的良好资源。 那里
有很多关于 Factor 不同方面的演示
您应该能够在您的系统上尝试。 例如
使用 Factor 实现 Internet 时间的演示
服务器,大约。 1 小时 07 分 20 秒和词汇闭包,46
分钟 35 秒 事实上,大部分演示都是演示。
Flash 视频大小 141 MB,演示时间 1 小时 36 分 38 秒
2008 年秋季。Slava Pestov 是 Factor 的创建者
编程语言和 jEdit(一种流行的文本编辑器)。
I think Slava Pestov's excellent presentation "Factor: an
extensible interactive language" at Google (Google Tech
Talk) counts as a good resource for learning Factor. There
are lots of demos of the different aspects of Factor that
you should be able to try on your system. For instance the
demo of using Factor for implementing an Internet time
server, approx. 1 h 07 min 20 secs and lexical closures, 46
min 35 secs. In fact most of the presentation is a demo.
The Flash video is 141 MB, 1 h 36 min 38 secs, presentation time
autumn 2008. Slava Pestov is the creator of the Factor
programming language and jEdit, a popular text editor.
我最近一直在自学 Factor - 事实上,我发现 Forth 是一个关于基于堆栈的语言概念的下午好介绍(作为一名软件考古学家,回顾几年的历史课很有趣)。
为此,我认为花几个小时安装 gforth 或类似的 Forth 实现,并开始完成 开始 或 使用 ANS forth - 我发现它很有趣,因为我只是浅尝辄止,但它并没有'当我开始学习因素时,它教会了我必须忘记的任何东西。
一旦我在学习因素方面取得了进一步的进展,我会让你知道我发现什么有用(或不太有用!)。
I've been teaching myself Factor recently - I actually found Forth as a good afternoon's introduction to the concept of stack based languages (and as a bit of a software archaeologist, it's fun to step back a few years for a history lesson).
To that end I don't think it does any harm to take a few hours to install gforth or similar Forth implementation and start working through the first few chapters of starting forth or using ANS forth - I found it quite interesting, and because I only dipped my toe it hasn't taught me anything I've had to unlearn as I'm starting to learn factor.
Once I've progressed a little further in learning Factor I'll let you know what I've found useful (or not so useful!).
您也可以从 Forth 开始,因为它也是基于堆栈的语言:
(编辑:更新了 Jonesforth 链接到新的 git 存储库 - 4/18/14)
You could also start with Forth since it's a stack based language too:
(Edit: updated Jonesforth Link to new git repository - 4/18/14)