标签: factor-lang

为什么要使用面向堆栈的语言?

我最近看了一下Factor,并且有一种基于堆栈概念的语言的想法非常有趣.(这是我第一次遇到面向堆栈的语言.)但是,我没有看到这种范式的任何实际优势.对我来说,它似乎比它的价值更麻烦.为什么我会使用像Stack或Forth这样的面向堆栈的语言?


我忽略了因素(借口双关语),例如工具和库的可用性.我只询问语言范式本身.

stack factor-lang

41
推荐指数
4
解决办法
6533
查看次数

良好的学习资源因素

最近遇到了这个关于Factor的介绍,我有点好奇了解更多.除了那里提到的官方常见问题解答之外,你是否有资源学习这门语言(以及基于堆栈的"范例",如果这是正确的话),你发现它有用吗?

作为旁注,会学习Forth帮助,还是将C与Python(或者你有什么)进行比较?

factor-lang

27
推荐指数
3
解决办法
3975
查看次数

18
推荐指数
4
解决办法
2429
查看次数

你打算使用Factor编程语言吗?

你打算使用Factor吗?你看过了吗?检查出来.你了解面向堆栈的编程吗?

http://www.youtube.com/watch?v=f_0QlhYlS8g

factor-lang

10
推荐指数
4
解决办法
4784
查看次数

哪个因子GUI教程/示例应用程序?

是否有一个用因子语言编写的非平凡的示例应用程序,可以用于GUI应用程序,可以作为语言教程服务器?

user-interface factor-lang

9
推荐指数
1
解决办法
1786
查看次数

更快速地编译因子程序

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

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

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

当您尝试仅为每次运行使用解释器而不是将程序"部署"到本机二进制文件(甚至不能在许多程序上工作)时,这会变得荒谬.这意味着每次我想运行计算器时,我都要等待5分钟的冷启动时间.

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

compilation factor-lang

8
推荐指数
1
解决办法
724
查看次数

摆弄无点代码?

我一直在学习Factor和J语言来试验无点编程.这些语言的基本机制似乎很清楚,但是如何理解如何进行算法设计是一项挑战.

对我来说,一个特殊的混淆源是如何构造代码以便很容易地尝试不同的参数.通过这个,我的意思是Mathematica和Matlab如此擅长的事情; 你设置了一个算法然后操纵变量并观察发生了什么.

没有显式变量,你怎么做?也许我在想这一切都错了.我应该如何在无点编程中实现这一点?

functional-programming j pointfree tacit-programming factor-lang

7
推荐指数
1
解决办法
538
查看次数

Lisp对因子编程语言的影响?

我读过(来自Slava Pestov)因为Lisp影响了因子,但我不确定我能理解怎么样?他们的编程语言不是很不一样吗?

lisp concatenative-language factor-lang

7
推荐指数
2
解决办法
968
查看次数

调用堆栈?retainstack?namestack?

因子手册的这一页讨论了存储在continuation中的这些类型的堆栈:

  • datastack
  • retainstack
  • 调用堆栈
  • namestack
  • catchstack

这些堆栈究竟拥有什么?对我来说最令人困惑的三个是callstack,retainstack和namestack.

continuations concatenative-language factor-lang

6
推荐指数
1
解决办法
279
查看次数

如何在因子中调用构造的引用

我有一个单词构造了一个我想要被引用的引文.但是,当我加载代码时,我得到的不能将"call"应用于运行时计算值.如果我使用walker并逐步执行它按预期执行的代码.你怎么称呼建造的报价?

: ba>struct ( array class -- struct array )
[ <struct> swap ] keep struct-slots
[
    [ type>> to-type ] keep  
    name>> setter-word 1quotation curry
    [ over ] dip  curry  call drop
] each
; 
Run Code Online (Sandbox Code Playgroud)

编辑:这确实有效

: ba>struct ( array class -- struct array )
    [ <struct> swap ] keep struct-slots
    [
        [ type>> to-type ] keep  
        name>> setter-word 1quotation curry
        [ over ] dip  curry  call( -- x ) drop
    ] each
    ; 
Run Code Online (Sandbox Code Playgroud)

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

factor-lang

6
推荐指数
0
解决办法
233
查看次数