Haskellについて調べていましたが、曖昧でよくわからず
Haskellのつかいどころってなんでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
Haskellには大きく二つの使いどころがあります。
- Haskellを学ぶ
- Haskellでアプリを作る
###Haskellを学ぶことは関数型プログラミングを学ぶことである。
Haskellが他言語にはない一番の特徴は純粋関数型プログラミング言語ということです。関数型プログラミング言語自体は自称・他称を含めて数多く存在しますが、純粋である言語となると極端に少なく、実用的な物はHaskellぐらいです。この純粋さが、「関数型プログラミングを学ぶ」ということに対して、大きな利点となります。
関数型プログラミングを学ぶことがなぜ重要なのかは、それだけで一つの長い回答になるのでおいとくとして、関数型プログラミングは重要な概念であり、学んでおかずにはいられないとしましょう。では、どうやって学べば良いでしょうか?実際に関数型プログラミング自体は多くの言語、それこそ命令型プログラミング言語と言われるような言語でも可能です。そこで学ぼうとしても不可能ではありません。しかし、プログラマーは怠惰(三大美徳と一つ)です。命令型の書き方で書けてしまうのだから、わざわざ関数型の書き方でやろうとはいつまで経ってもしません。こうして、いつまでたっても、関数型プログラミングを学ぶことができなくなってしまいます。
Haskellは命令型プログラミングと同じような考え方で作ることはできません※。純粋であるが故に、関数型プログラミングを強制するのです。人は切羽詰まって初めてやろうとします。関数型プログラミングでしか書けないのだから、仕方なく、関数型プログラミングで書こうとします。そして、命令型とは全く違う、関数型としての考え方というのを学び、身につけるようになるのです。
※ 実際は、モナドを使えば、命令型プログラミングとほぼ同じ考え方で作ることはできます。そもそもIO処理は命令型プログラミングの考え方であり、モナドがなければ、HaskellはIO処理すらできません。
###Haskellでアプリを作るという選択肢を持つこと。
Haskellで作られたアプリなんて見たこと無い!と思っているでしょうか?私もPandoc(Markdown変換ツール)ぐらいしか、有名なアプリは知りません。ただ、開発言語としてHaskellを採用している企業もないことはないです。Haskellはプログラマー自体がJavaやPHPよりは少なく求人的に集めにくいというのはあるかも知れません。しかし、HaskellにはHaskellとしての言語的なメリットがあり、開発言語として選択している人達がいると言うことです。
私自身は、作る物を選ぶ言語だと思っています。PandocはHaskellで作るのに相応しいアプリです。Markdownを変換して他の形式に帰るという物ですが、テキストをパースし、分解し、変換し、結合するという流れ作業を行うだけです。Haskellは既にある物を変質するのは苦手ですが、既にある物を新しい物にすることは得意です。関数型プログラミングとはオブジェクト(データとか、値のこと)を変更していくのではなく、オブジェクトをもとに別のオブジェクトを次々と作って行くようになっているからです。
そういった、パイプライン的な処理こそHaskellで作ると、とても良い感じでできると思っています。ただ、如何せん、私自身Haskellで本格的なアプリを作ったことが無いので、本当のところはどうなのかは、ちょっとわからないところもあります。
下記記事も参考にしてみてください。
なぜHaskellを学ぶと良いか - Qiita
投稿2017/06/01 22:30
総合スコア21735
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。