1

与任何基于 C 的语言一样,Factor 似乎有一个主要方法:

#! /usr/bin/env factor -script

USE: io
IN: hello

: hello ( -- ) "Hello World!" print ;

MAIN: hello

但是Factor不会自动执行main函数;如果您./hello.factor在终端中运行,则不会发生任何事情,因为main没有被调用。

有谁知道 Factor 是否有像 Python 这样的语法,所以hello实际上是调用的./hello.py

def hello():
   print "Hello World!"

if __name__=="__main__":
   main()
4

1 回答 1

1

main如果指定了一个函数, Factor 现在将执行一个函数。您仍然需要编辑~/.factor-rc以添加INCLUDING/IN宏,以便 Factor 将在当前目录中搜索代码。

~/.factor-rc:

! Andrew Pennebaker
! INCLUDING macro that imports source code files in the current directory

USING: kernel vocabs.loader parser sequences lexer vocabs.parser ;
IN: syntax

: include-vocab ( vocab -- ) dup ".factor" append parse-file append use-vocab ;

SYNTAX: INCLUDING: ";" [ include-vocab ] each-token ;

脚本main.factor:

#! /usr/bin/env factor

USING: io math.parser ;
IN: scriptedmain

: meaning-of-life ( -- n ) 42 ;

: main ( -- ) meaning-of-life "Main: The meaning of life is " write number>string print ;

MAIN: main

测试因素:

#! /usr/bin/env factor

INCLUDING: scriptedmain ;
USING: io math.parser ;
IN: test

: main ( -- ) meaning-of-life "Test: The meaning of life is " write number>string print ;

MAIN: main

例子:

$ ./scriptedmain.factor main:生命的意义是42 $ ./test.factor test:生命的意义是42

正如在RosettaCode上发布的那样。

于 2011-10-12T19:46:43.940 回答