パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

プログラム言語ができない理由を考える(OCaml)

2021-01-02 | プログラムをマスター計画2020

プログラムはこれだけなのだけど半日はまりました。

課題は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

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。