osiire’s blog

ふしぎなそふとやさん

ATSのお勉強メモ

秘密結社Metasepiに関連してATSを勉強しているのでメモ。特にマニュアルには書いてないのではないかと思われる文法が散見されてつらぽよ。分からない時はぐぐって過去に作者がメーリングリストに回答している説明を探すべし。

  • バージョン
    • ATS2(ATS/Postiats) 0.04
  • コンパイルコマンド。ATS2からatsccじゃなくてpatscc.
  • メモリアロケーションが必要な場合は -DATS_MEMALLOC_LIBCオプションが必須。
  • メイン関数は次のように実装。mainではないので注意。

implement main0 () = {
val () = println! ("Hello World\n");
}

#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"

  • 数値の表現
  • 四則演算は+ - * /
    • doubleからintへの変換など、型変換の関数は沢山定義されている。
    • g0float2int, g0string2intとか。
  • 文字列はダブルクォートで囲む。val msg = "abc"
  • 文字列はメモリリソースなので動的に扱う場合単純なstring型だけでは済まない。
  • メモリアロケーションの事を考えなくていい場合は次の二つをロードする。

staload "libats/ML/SATS/string.sats"
staload _ = "libats/ML/DATS/string.dats"

  • リストプログラミングをMLっぽくやるなら次の二つをロードする。

staload "libats/ML/SATS/list0.sats"
staload _ = "libats/ML/DATS/list0.dats"