問題 17.3.1 の解答

76 views
Skip to first unread message

KSK Nac

unread,
Jul 20, 2016, 10:05:22 PM7/20/16
to taplkatasystem
原著の pp.527-528 (日本語版では p.417) の meet の定義内にある局所変数 allFields の定義がおかしいようです.
動作確認まではしておりませんが,正しくは,
let allFields = 
  List.map (fun li ->
              if not(List.mem li labelsS) then
                (li, List.assoc li fT)
              else if not(List.mem li labelsT) then
                (li, List.assoc li fS)
              else
                let tySi = List.assoc li fT in
                let tyTi = List.assoc li fS in
                (li, meet tySi tyTi))
           allLabels in
とすべきではないでしょうか.少なくとも現状の
   List.map (fun li -> if List.mem li allLabels then ...) allLabels
のようなコードは意味がないと思います.



Yusuke遠藤侑介/ENDOH

unread,
Aug 28, 2016, 11:00:43 AM8/28/16
to taplkatasystem
訳者の遠藤です。
遅い反応で申し訳ありません。

ご指摘の通りだと思います。

(予想ですが、List.mem li allLabels のところの allLabels が和集合ではなく積集合だという気分だったのではないかと思います)

ご報告ありがとうございました。
Reply all
Reply to author
Forward
0 new messages