• 締切済み

関数型言語を独学で勉強している学生です

UKYの回答

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

どなたかのブログで言及されているようなので、 URL 貼っておきます http://d.hatena.ne.jp/camlspotter/20130117/1358406799 http://d.hatena.ne.jp/pocketberserker/20130117/1358422560 さて、社会人歴約二年の私の意見ですが、学生のうちはとにかく自分の好きなことをしてみてはどうかと思います。 関数型言語が好きならそれを突き詰めるもよし、やっぱり関数型言語なんていやだというなら他の言語でもよし。 ただ、「サンプルを少し改良するぐらい」よりは、何か「自分でこういうものが作りたかったので作ってみました」といえるようなものがあるといいですね。「就職するためにとにかくプログラミングを勉強しました」というだけでは、面接での印象はあまり良くないかもしれません。 プログラミングに対する関心・意欲があれば、学生時代に取り組んだ言語の種類や分野によって有利不利になるということはあまりないと思いますよ。

関連するQ&A

  • 初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?

    初めて関数型言語を学ぶとしたら、どの言語がお奨めですか? JavaScriptをやっていて、関数型言語に興味を持ちました。 いままで、勉強した言語はC < Java < Python < JavaScriptです。(右側の方が比重・興味が大きい) 現在、Web系志望の学生なので、その辺を踏まえてアドバイスいただけると助かります。 今のところ興味を持ってるのは、Common Lisp/Haskellあたりです。 よろしくお願いします。

  • 関数型言語の普及について

    関数型言語の普及について 趣味でプログラミングを勉強しているものです。今までにJavaやRuby等、オブジェクト指向言語を中心に勉強してきました。 今日、あるきっかけで関数型言語のHaskellを勉強し始めました。 そして、実際にプログラミングをしてみたり、関数型言語について調べてみると、まだ大きなアプリは書けないものの、今までのやり方(手続き指向、オブジェクト指向)が不要なのではないかと危惧する程の斬新さ、強力さが感じられました。 しかし、そんな関数型言語も未だに普及しているとは到底言えません。Haskellは関数型言語の中でも新しいもののようですが、それでもJava、Rubyよりも昔に発表されている言語です。 どうしてHaskell等の関数型言語は主流になっていないのか、関数型言語が従来の言語に劣っている点を中心に、皆さんの意見を聞かせてください。

  • お勧めの関数型言語はありますか?

    関数型言語を習得しようと思います。 お勧めのものを教えてください。 特徴、長所、短所なども教えていただければ幸いです。 私としてはHaskell、Lisp、Schemeがよいのではないかと 思っております。 よろしくお願いいたします。

  • lispとその他関数型言語について

    「lispを学べば悟りが開ける」という言葉をよく聞きます。 l他のプログラミング言語哲学とは一線を画すほどの教示をもった言語という印象を持ちます。 僕もlispを少し学んだだけですが「悟り」は開けませんでした。 しかし他の関数型言語(haskellとか)ではそういう話は聞きません。 なぜでしょうか。 やっぱ括弧ですか。

  • スクリプト言語でおすすめなのを教えてください。

    現在スクリプト言語を勉強しようとしているのですが どの言語がおすすめなのでしょうか? 調べてみるとどうやらRubyやPythonなどがあるのですが どのような特徴をもっているのかいまいちわかっておりません。 スクリプト言語を覚えるのは初めてなので初心者がとっつきやすいのは どういったものがありますか? よろしくお願いいたします。

  • 【関数型言語,論理学】推論して関数を自動生成する

    こんにちは。 関数型言語(haskell)や論理学を独学している者です。 勉強中ふと思ったことがあるので質問します。(以降、表記はhaskell文法に倣います) 例えば今、我々に与えられた関数は (x -> Int)型の関数fと、(Int -> y) 型の関数gと((b -> c) -> (a -> b) -> a -> c)型の関数(.)だけだとします(a,b,c,x,yは全て型変数)。それ以外の関数は存在しません。 この時、(x -> y) 型の関数hは例えば(g . f)と表せると思います。 Int=b, x=a, y=cとみなせば、hは簡単に作れます。 しかし、それはあくまで人間にとって簡単だということです。 これを「計算機が作る」ことは可能でしょうか。 つまり、与えられた関数(と型の情報)だけで特定の型の関数を自動生成できるプログラムは存在し得るか、ということです。 カリー=ハワード同型対応という性質がありますね。これは簡単に言うと「ある型を持つプログラム(関数)が一つでも書ければその型に対応した命題は真」ということだと思いますが、僕が聞きたいのは「その命題(型)が真かどうか分からないけど、前提は用意するので証明(プログラム)は計算機に任せてもいいのか」ということです。 CoqやPrologという、計算機で証明を行うプログラミング言語があるというのは知っていますが勉強したことが無いのでよくわかりません。 よろしくお願いします。

  • pythonでコーディングされてる有名なサイトって

    pythonでコーディングされている有名なサイトってありますか? 来週からエンジニアとして働く者です。未経験ですが、会社でpythonをすすめられ、現在勉強しております。Rubyでありましたらcookpadなどがぱっと浮かぶのですが、pythonといったら何か有名サイトがあるのかぱっと浮かびません。 あまりマイナーな言語でありましたら、今後pythonを勉強していく意欲がでず、Rubyをやっていきたいと伝えようか悩んでます。(pythonよりRubyの方がベンチャー企業で使用しているイメージがあります) 未経験のため、わがままを言える立場ではありませんが、 需要の低い言語を勉強していくのもどうかと思います。 会社からはJAVAやPHPではなく、今後需要のあるRUBYもしくはPythonのエンジニアになってほしいと言われてます。 但し、RUBYはすぐに席がないため、Pythonでお願いしたいという経緯が御座います。 ご意見頂けますと幸いです。 よろしくお願いします。

  • OSSプログラム言語のライセンスの対象について

    とんちんかんな質問をしていたら申し訳ありません。 たとえば、Ruby Perl Python などのプログラム言語は OSSのプログラム言語で、それぞれ ・Rubyライセンス、 ・Artisticライセンス or GPL、 ・Python Software Foundation License のライセンスで公開されています。 ところで、ライセンスとは、直訳すれば「使用許可」ですが、 上記のプログラム言語のラインセスが許可しているのは それらプログラム言語のコンパイラ(スクリプト言語なので正確な表現でないのはわかっていますが、適切な表現を知らないため、当質問においては当単語で表現させてください)の使用であると考えて差し支えないでしょうか? 以上、宜しくお願い致します。

  • 言語の勉強についてアドバイスをお願いいたします

    コンピューターのことを深く知りたくて、1年ほど前に一番興味のあったネットワークの勉強から始めました。 その結果、関心はネットワーク → セキュリティ → Webプログラミングに移りました。 言語の入門書としてC、Java、C++、Perl、JavaScriptを10冊ほど、HPではアセンブラも読んでみました。 プログラムの思想らしきものは解ったつもりですが、コードを読んでもそれが関数なのか、 作者の造語の変数なのか判断に迷う程度から抜け出せません。 これではいけないと思って、Pealに焦点を絞ろうと本屋(地方です)に行きましたが、 ラマやラクダどころかPealの本は1冊も置いてありませんでした。 PHPの本はたくさんありました。 ここのBBSを見ても、PerlよりもPHPの方がにぎわっています。 『日経ソフト』もPHPの連載が始まり、来月はRubyの特集です。 そこでPerlをやめて言語の勉強の順序を次のようにしようと思っています。 Ruby(併行してHTMLとJavaScript)   ↓  Java → C → PHP → Perl まず『プログラミングRuby 第2版 言語編』とkeisukeさんのサイトで勉強するつもりです。 ネットワークの勉強をまったくの我流でやったので、ずいぶん遠回りをしてしまいました。 そこで言語の勉強について諸先輩方にアドバイスをいただけたらと思います。 方針、本、サイトなど何でも結構です。よろしくお願いいたします。 毎月読んでいる月刊誌は『日経ソフトウエア』『日経リナックス』『ネットワークマガジン』です。

  • もし仮に5つの言語(Python, Java, C/C++, Perl

    もし仮に5つの言語(Python, Java, C/C++, Perl, LISP、アセンブラ)を学ぶとした場合の学習順序 こんばんは。 もしこの5つを何年かかけて学ぶとした場合、この学習順序をどうおもいますか? ちなみにこの5つの言語は、linuxなどのOSやオープンソースソフトウェアの開発に携わっている方たち(ハッカーの方たち) が、OSや言語開発をするなら学ぶべき言語として主張していました。(クラッカーではなくハッカーです) この方たちがいうには pythonをはじめに学習し、次にjava それからC/C++, Perl, LISP、アセンブラの順番が良いと言っていました。 特にpythonを一番に学び、javaを2番に学ぶべき理由としては↓ まず Python から始めることをおすすめします。設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん対応しています Java もプログラミングを学ぶにはよい言語です。 Python よりはむずかしいですが、できるコードは Python より高速です。二番目の言語としてはとてもすぐれていると思います。 本気でプログラミングをするなら、C を勉強するしかありません。これは Unix の中核となる言語です。C++ は C と密接な関係にあります。片方を知っていれば、もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に勉強しようとするのには向いた代物ではありません。 それ以外に Perl と LISP があります。Perl は実際的な意味からも勉強しておく価値があります。アクティブ Web ページやシステム管理にとても広く使われているからです。自分では Perl を使わなくても、読めるようにはなっておきましょう。LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。 さらに、visualbasicやC#などはやめた方が良い。と主張しています。↓ ウィンドウズの下でハッキングを学ぶのを、拘束衣を着て踊りを学ぶのに例えたのは、あれは冗談じゃないんですよ。 Visual Basic や C# にはそれぞれ個別に問題があります。その大きなものは、移植性がないことです。マイクロソフトの独占言語だというだけで、もうすでに失格ですし、ほかの Basic と同じく言語としての設計もまずく、悪いプログラミングの習慣が身についてしまいます。 足りなかったのでこちらに。 みなさんはこの順序や考えについてどうおもいますか? 本当にpythonは最初に適した言語なのでしょうか? 長文になってしまい申し訳ありません。 できればひとりでも多くの技術者の意見が聞きたいです。なんでもかまいません。 もし良ければ回答お願いします。