私は第 2 オイラーの問題に取り組んでいますが、今のところ、フィボナッチ数列を定義しようとしています。現在、Fib関数を次のように定義しています
Fib 0 = 0
Fib 1 = 1
Fib x = Fib (x - 1) + Fib (x - 2)
プログラムをキーボード入力に依存させたいので、
main = do
putStrLn "Enter desired Fibonacci index: "
"index" <- getLine
putStrLn Fib x
そして、xを次のように定義しましたx = read "index"
インデントと構文の両方を台無しにしていると確信しています。コードの変更方法によっては、「ghc /dir/file.hs を実行すると、「スコープ外: データ コンストラクター `Fib'」や「解析エラー (インデントが正しくない可能性があります)」などのメッセージが表示されます。特に .hs をコンパイラに適したものに設定する方法に関して、私が何をしているのかわかりません.GHCでのコンパイルに関する約7つのチュートリアルを読みましたが、それらはすべて説明する部分をスキップしているようです.コンパイルの基本的な要件。
それが役立つ場合は、より具体的にする方法を教えてください。私が理解しようとしている2つのことは、「メイン」全体がコンパイルにどのように関連しているか、およびFibを関数として定義したことを認識させる方法であると思います。
PS: ここのインデントがわかりません。Stack はすべてを 1 行にまとめたいようです。そのため、すべてを分離する必要があります。ごめん。