単行本(ソフトカバー): 384ページ | |
出版社: 技術評論社 | |
発売日: 2007/11/30 | |
定価: 2,919円 (本体 2,780円) | |
ISBN: 978-4-7741-3264-8 | |
技術評論社のこの本に関するページ | |
PDF/EPUB 版を販売しているGIHYO Digital Publishing のページ |
5.0
ないし 1.0
とあるのは 5.
および 1.
となっていた方がより適切です.
(2017.5.11)# print_string "表n示する";; ・ 示する- : unit = ()「表」のコードが 95 5C のため,2バイト目が次の n とくっついて改行文字 に解釈されてしまいました. 回避方法としては,こういった2バイト目が 5C の文字の直後にはバックスラッ シュを挿入して,コンパイラには無理矢理 \\,つまり単一のバックスラッシュ のエスケープシーケンス,だと解釈させる,という方法が考えられます.
# print_string "表\示する";; 表示する- : unit = ()また,Shift JIS では1バイト目は16進数で 80〜FF,2バイト目は 40〜FF の 範囲におさまり,アステリスク (*,ASCIIコード 2A) や閉括弧(ASCII コード 29) などとは衝突しませんので,コメント内での Shift JIS の使用は安全だと 思います. 参考情報: 日本語版 Wikipedia 「Shift_JIS」の項目 (2007.12.07)
# let (first, last, _, _) = author;; val first : string = "Atsushi" val last : string = "Igarashi"となります.真ん中の行が抜けていました.(2017.5.11)
facti
:
この facti
は,p.53 から p.54 にかけて,局所関
数 iterfact
を使って定義し直した fact
を意図
しています.但し,この定義では
fact (-1);;の実行はきちんと終了し
1
が値になります.ここで,
意図していたのは,
let fact n = let rec iterfact (i, res) = if i = n + 1 then res else iterfact (i+1, res * i) in iterfact (1, 1)のように
i > n
を i = n + 1
とした定義です.この定義では
fact (-1)
の評価は終了しません.
本にある定義ですと,どんな int
を入力としてもとりあえず評
価が終わって値が返されます.fact (-1)
の値
が 1
でよいかは別として,どんな入力に対しても計算が止まる,
という意味で,こちらの方が「よい」定義だと思いますが,この部分の説明と
は整合が取れていませんでした. (2008.05.06)
(x 1, x 2.0)
→ average (x, 1.0)
(2008.05.26) student
型は int
型のフィールド name
と string
型のフィールド id
」 → 「student
型は string
型のフィールド name
と int
型のフィールド id
」 (2013.10.30)t.office[2]
」 → 「t.office.[2]
」
(2008.11.18)fact
の定義,「i := !i+1; res := !res * !i
」→
「res := !res * !i; i := !i+1
」 (2010.12.01) fact 5
の実行結果: 「720
」 → 「120
」 (2013.10.30)fact
の定義,「i := !i+1; res := !res * !i
」→
「res := !res * !i; i := !i+1
」(2013.10.30)Open_wonly
」→「Open_wronly
」 (2008.12.03)'a list
→ 'a array
(2008.03.19)[...]
→ [| ... |]
(2008.03.19)let version = "0.1"は
let ver = "0.1"の誤りです.(2008.02.26)
((r < 0) && mem x rest)
」→「((r > 0) && mem elt rest)
」(2008.12.03, 2013.10.30)(true, false, false)
」 → 「(true, true, false)
」 (2013.10.30)elm
→ elt
(2008.03.21) Client
→ MakeTest
(2008.02.26) IntSet
→ IntSet'
(2008.03.19) forall
関数はListモジュールでは
for_all
という名前で定義されています.(2010.4.30)5.0
ないし 1.0
とあるのは 5.
および 1.
となっていた方がより適切です.
(2017.5.11)# let (first, last, _, _) = author;; val first : string = "Atsushi" val last : string = "Igarashi"となります.真ん中の行が抜けていました.(2017.5.11)
i = n
という条件は i = n + 1
が正しいです.また,p.54 の fact 4
の評価の様子も,=
の右辺の 4
は 4+1
が正しいです.(2017.05.11) student
型は int
型のフィールド name
と string
型のフィールド id
」 → 「student
型は string
型のフィールド name
と int
型のフィールド id
」 (2013.10.30)fact 5
の実行結果: 「720
」 → 「120
」 (2013.10.30)fact
の定義,「i := !i+1; res := !res * !i
」→
「res := !res * !i; i := !i+1
」(2013.10.30)mem
の定義: 「r < 0
」 → 「r > 0
」 (2013.10.30)(true, false, false)
」 → 「(true, true, false)
」 (2013.10.30)~x:y:int
→ ~x:(y:int)
(2023.03.26) last update on $Date: 2023-03-26 17:24:22 +0900 (Sun, 26 Mar 2023) $