flc
fluorite12コードを実行するUsage: flc [-h|--help] [-q] [--] <code> <arguments...>
Options:
-h, --help Show this help
-q Run script as a runner
flc
はコマンドライン引数に渡されたfluorite12のコードをその場で実行するコマンドです。
flc
コマンドは標準の動作としてコードの戻り値を出力するため、結果の出力のために明示的に OUT
関数などを使う必要はありません。
$ flc '1 + 2'
# 3
戻り値の出力の際には文字列化が行われます。
$ flc '{`&_`: _ -> "Hello, World"}{}'
# Hello, World
コードの値がストリームだった場合、各要素を1行ずつ出力します。
$ flc '1 .. 3'
# 1
# 2
# 3
コードの戻り値が空ストリームである場合、何も出力されません。
$ flc '1 + 2; ,'
-q
オプションを指定すると、全体を文として解釈し、戻り値の出力は行われません。
出力を行うには OUT
関数などを使う必要があります。
$ flc -q '
OUT << "apple"
OUT << "banana"
"orange"
'
# apple
# banana
CLI版fluorite12でのみ利用可能な定数および関数です。
ARGS
コマンドライン引数を取得コマンドライン引数が配列で格納されています。
flc
コマンドやワンライナーのソースコードは含まれません。
$ flc 'ARGS' 1 2 3
# [1;2;3]
ENV
環境変数を取得環境変数がオブジェクトで格納されています。
$ FOO=bar flc 'ENV.FOO'
# bar
存在しない変数にアクセスした場合は NULL
が返ります。
IN
コンソールから入力標準入力を1行ずつストリームとして取得します。
$ { echo 123; echo 456; } | flc 'IN'
# 123
# 456
ストリームは逐次的であるため、非常に大きな反復も少ないメモリ消費で行うことができます。
$ flc '1 .. 10000 | "#" * 10000' | flc 'IN | $#_ >> SUM'
# 100000000
OUT
コンソールに出力標準出力に出力します。
$ flc -q '
OUT(123)
OUT(456)
'
# 123
# 456
ストリームが指定された場合、各要素を1行ずつ出力します。
$ flc -q '
OUT(1 .. 3)
'
# 1
# 2
# 3
OUT
関数自体は NULL
を返します。
この関数はしばしば左実行パイプによって書かれます。
$ flc -q '
OUT << "Hello, world!"
'
# Hello, world!