1

Factorには、Cベースの言語と同じように主な方法があるようです。

#! /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

関数が指定されている場合、Factorはmain関数を実行するようになりました。Factorが現在のディレクトリでコードを検索するように、 /マクロ~/.factor-rcを追加するために編集する必要があります。INCLUDINGIN

〜/ .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 ;

scriptedmain.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

test.factor:

#! /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メイン:人生の意味は42です$ ./test.factorテスト:人生の意味は42です

RosettaCodeに投稿されたとおり。

于 2011-10-12T19:46:43.940 に答える