Closed murasesyuka closed 9 years ago
レポートありがとうございます。
グローバル変数だからなのかとも思ったのですが、違いますね。。。 本家に問い合わせてみます。
#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"
fun swap_boxed{a,b:type} (xy: (a, b)): (b, a) = (xy.1, xy.0)
implement main0 () = {
val AB = ( "A", "B" )
val BA1 = swap_boxed{string,string} (AB)
}
String is not boxed type? · Issue #143 · githwxi/ATS-Postiats https://github.com/githwxi/ATS-Postiats/issues/143
問い合わせ中です。。。
以下のようなコードを使ってください、ということになりました。 stringはボックス化されたデータ型なのですが、デフォルトではボックス化されて扱われないそうです。
#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"
fun swap_boxed{a,b:type} (xy: (a, b)): (b, a) = (xy.1, xy.0)
implement
main0 () = {
val A = box("A")
val B = box("B")
val BA = swap_boxed((A, B))
val () = print_string (unbox(BA.0))
val () = print_string (unbox(BA.1))
}
この対応に関する議論は以下を参照してください。
ATSプログラミング入門の該当章を修正すること。 > @master-q
確認しました。参照します
以下リンクのサンプルのコピペで、下記エラー。
ドキュメントには下記説明があるので、stringがboxedであることを期待しているようですが、現状のstringはunboxed?
https://github.com/jats-ug/ATS-Postiats/blob/translate_ja/doc/BOOK/INT2PROGINATS/CHAP_POLYMORPH/main.atxt#L369...L380
以下versionで、
下のサンプルコードをコンパイルすると
下記コンパイルエラーとなりました。