Concurrent Clean : CleanJ : List Comprehension -> select命令

の動作がおかしくなっていることに気づいた。

Start = (fc "abc", fi {1,2,3}, gc ['abc'], gi [1,2,3])

fc :: {#Char} -> [Char]
fc t = [x\\x<-:t]

fi :: {#Int} -> [Int]
fi t = [x\\x<-:t]

gc :: [Char] -> {#Char}
gc t = {x\\x<-t}

gi :: [Int] -> {#Int}
gi t = {x\\x<-t}

の結果が、

(['a'],[1],"abc",{1,2,3})

になってしまっている。

      • -

select命令がおかしかったらしい。
select命令は、取り出す配列の要素のインデックスがB-Stackのトップに置かれているが、これを、getしていたのをpopに変更したところ、上手く動作するようになった。