プログラムはこれだけなのだけど半日はまりました。
課題はCodinGame PRACTCE CLASSIC PAZZLE-EASY ASCII Art
おかげでプログラムができない理由がいくつかわかったので参考までにご紹介します
プログラムができない理由
1) 情報が雑多で正しい情報が得られにくい
2) 何でググったらいいかわからない
3) エラーメッセージが読めていない
4) 一気にプログラムを作って、バグの嵐にまきこまれ手のつけどころがわからなくなる
5) ググっても情報がない
6) 謎のキーワードに惑わされる
OCamlではまった所
1) どこでカッコが必要かわからない
12、15行目の(p*l)と(26*l)が特にはまりました
2) if thenで処理が複数の時の対処 (begin end)
13行目 begin endをみつけるまでとend後の; これはトライエラーで力ずく
3) ;がどこにいくつ必要かわからない
4) 構文の区切りを間違えるとエラーが最後の行になってどこかわからない
5) 文字列の小文字化
OCamlの特徴(自信なし)
letはinでしめる
変数にしたければref 再代入は :=
文字列の結合は ^
配列の指定位置(n)のアクセスは arr.[n] ドットが曲者
カンマが不要な分カッコが余分に必要
for文はbasicとpascalの混合
最終的な解決法
最低限に実装していって1つずつ原因を丁寧に探る
<参考文献>
https://ocaml.jp/refman/libref/String.html
https://ocaml.org/learn/tutorials/structure_of_ocaml_programs.ja.html
https://ocaml.org/learn/tutorials/if_statements_loops_and_recursion.ja.html