質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

Q&A

解決済

1回答

3979閲覧

Haskellの使いどころ

4ete4tfwegtr43

総合スコア13

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

0グッド

0クリップ

投稿2017/06/01 19:32

Haskellについて調べていましたが、曖昧でよくわからず
Haskellのつかいどころってなんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問