swiftをちょこっと触って見ました。NDAには触れないと思います。
試すのに便利な事に、 web から実行できるplayground が用意されていますので、下のURLを開き、
右の「Try Swift online」をクリックします。
tracef("こんにちは。これは %s のコードです\n","Swift");
そして execute を押します。
Swift run starting at 08:15:49
08:15:52 ??????????????????????????? Swift ??????????????????
Final status: 08:15:52
うーん、残念。日本語は化けてしまうようですね。
- Mapperとforeach
上のリストボックスからforeachを選ぶと、以下の用に出てきます。
type file;
app (file o) simulate_app ()
{
simulate stdout=filename(o);
}
foreach i in [1:10] {
string fname=strcat("output/sim_", i, ".out");
file f <single_file_mapper; file=fname>;
f = simulate_app();
}
ここで、
app (file o) simulate_app ()
は関数を示します。また、
foreach i in [1:10] {
は繰り返しを示します。ここで重要なのは、foreachの中は 並列実行 される、
ということです。
また、以下の部分を見てください。
file f <single_file_mapper; file=fname>;
swiftの特徴の一つとして mapper というのがあります。
これはメモリ上にあるデータセットをファイルとしてマップする、というものです。
上記例では、 single_file_mapper というデフォルトで用意されているmapperを使い、
simulateで生成した乱数を書き出しています。(simulateがまだよく分かってないので違うかもしれません)
実行すると、下のリストボックスに 「output/sim_1.out」 などがでてきますので、それを見るとファイルが吐き出されていることが分かります。
1から10までのファイルに並列に書き出しています。
このように、 swift を使うと、並列実行やメモリとファイルの透過的処理ができますので、シミュレーションなどに便利だと思います。