- 締切済み
Hanafuda Shuffle を関数型言語で。
関数型言語を学んだのですが、あまり概念がよくわかっておりません。 以下のような問題があるとき、関数型言語ではどのように解決すれば良いのでしょうか。 Hanafuda Shuffle http://www.deqnotes.net/acmicpc/1978/ja 考え方等だけでも大変参考になるのですが、可能であればHaskellやScalaで解いて頂きたいです。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- 関数型言語の普及について
関数型言語の普及について 趣味でプログラミングを勉強しているものです。今までにJavaやRuby等、オブジェクト指向言語を中心に勉強してきました。 今日、あるきっかけで関数型言語のHaskellを勉強し始めました。 そして、実際にプログラミングをしてみたり、関数型言語について調べてみると、まだ大きなアプリは書けないものの、今までのやり方(手続き指向、オブジェクト指向)が不要なのではないかと危惧する程の斬新さ、強力さが感じられました。 しかし、そんな関数型言語も未だに普及しているとは到底言えません。Haskellは関数型言語の中でも新しいもののようですが、それでもJava、Rubyよりも昔に発表されている言語です。 どうしてHaskell等の関数型言語は主流になっていないのか、関数型言語が従来の言語に劣っている点を中心に、皆さんの意見を聞かせてください。
- ベストアンサー
- その他(プログラミング・開発)
- お勧めの関数型言語はありますか?
関数型言語を習得しようと思います。 お勧めのものを教えてください。 特徴、長所、短所なども教えていただければ幸いです。 私としてはHaskell、Lisp、Schemeがよいのではないかと 思っております。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- 初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?
初めて関数型言語を学ぶとしたら、どの言語がお奨めですか? JavaScriptをやっていて、関数型言語に興味を持ちました。 いままで、勉強した言語はC < Java < Python < JavaScriptです。(右側の方が比重・興味が大きい) 現在、Web系志望の学生なので、その辺を踏まえてアドバイスいただけると助かります。 今のところ興味を持ってるのは、Common Lisp/Haskellあたりです。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- lispとその他関数型言語について
「lispを学べば悟りが開ける」という言葉をよく聞きます。 l他のプログラミング言語哲学とは一線を画すほどの教示をもった言語という印象を持ちます。 僕もlispを少し学んだだけですが「悟り」は開けませんでした。 しかし他の関数型言語(haskellとか)ではそういう話は聞きません。 なぜでしょうか。 やっぱ括弧ですか。
- ベストアンサー
- その他(プログラミング・開発)
- 関数型言語を独学で勉強している学生です
情報系の大学3年生です。 僕は関数型言語に興味がありhaskellやlispを勉強しています。 しかしこれらの言語で何か作るのは結構しんどいと思います。 ぶっちゃけ、javaとかrubyとかpythonの方が作りやすいでしょう。 haskellは出力するにも一苦労だしlispはリストが面倒。 関数型言語は実用的だとは思えません。 しかし、楽しいです。 どう表現すればいいかわかりませんが、とにかく関数型言語は面白いです。 そこで質問です。 昨今のIT企業は新卒採用の際、学生時代に作ったプログラムを評価し採用の是非を決めると思います。 もし関数型言語で何か作っても評価されるのでしょうか。 僕ができることといえば、本やサイトに載ってあるサンプルを少し改良するぐらいです。 そんな作品を企業側が積極的に評価し、採用してくれるでしょうか。 それともこんな浮世離れしたことやるよりrubyとかpythonで奇抜なアイデアのプログラムを組んで、twitterやブログで奇を衒っていかにもギークっぽく振舞ったほうがいいんでしょうか。 文章がめちゃくちゃですみません。 とにかく僕はこのまま今の勉強を続けてもいいのか、それがわからないんです。 自分で考えるべきことでしょうが、調べるばかりで頭が混乱して日常生活に支障がでてきてます。 誰がアドバイスください。 よろしくおねがいします。
- 締切済み
- その他([技術者向] コンピューター)
- 【関数型言語,論理学】推論して関数を自動生成する
こんにちは。 関数型言語(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という、計算機で証明を行うプログラミング言語があるというのは知っていますが勉強したことが無いのでよくわかりません。 よろしくお願いします。
- 締切済み
- 数学・算数
- C言語の関数を分かりやすく説明してください。
C言語を学習しています。 C言語の入門書を読んでいて、どうしても関数のこと(引数とか戻り値とか自作関数についてのこと)が分かりませんでした。ネットで調べてみたりもしたのですが分かりませんでした。 かみ砕いて説明していただけるとありがたいです。
- ベストアンサー
- C・C++・C#
- C言語の関数について困っています
こんにちは。 C言語で、テキストファイルの行数を数える関数があれば教えて頂けないでしょうか。例えば、以下の3行を含んでいるテキストファイルを対象としたとすれば 123465789123456789 1234567981234579 987654321987654321 関数を実行すれば、3という数字が得られ、 123456 789 123546879 123 123 456789123 123456789123 というテキストファイルであれば、4という数字が得られる。そんな関数をご存知な方は私にご教授願えないでしょうか。どうぞよろしくお願いします。
- 締切済み
- C・C++・C#
- 大学でC言語やJava等を習いました.
大学でC言語やJava等を習いました. 次のセメスターからは手続き型言語とは違う SMLという関数型言語を講義を履修しなければならないようなので, 春休み中に勉強しておこうかと思いました. しかしSMLを少しかじってみたのですが関数型言語は代入という概念もなく 数学のような感じであまりおもしろくないと感じ,関数型言語を学ぶ意欲が少し無くなってしまいました. そこで関数型言語を学ぶ意義についてどなたか教えていただけないでしょうか? よろしくおねがいします.
- ベストアンサー
- その他(プログラミング・開発)
- iPod shuffleのトラブルについて。
iBookG4を使っているのですが、iPod shuffleをUSBに差し込んでも認識しなくなりました。 アップルのサポートによると、アンインストールして再度最新のiTunesとiPod UPdaterをインストールすれば解決出来るとのことだったのですが・・・。その他に記載されていたことも試しましたが、やはりダメでした。 shuffleが認識しない以外の問題はありません。 このまま認識しない場合、shuffleに保存された音楽しか聴けませんし、充電がきれてしまったら終わりということになってしまいます。購入してから一年ぐらいしかたっておりませんし、あまり使用していなかったので、なんだか嫌な感じです。 iPod shuffle自体の故障なのでしょうか? 何か解決方法があれば教えて下さい。 宜しくお願い致します。
- ベストアンサー
- Mac
補足
ありがとうございます! ソースコードが簡潔に書かれていて美しいですね! おかげさまで大枠を掴むことができました。 ところで、関数型言語は変数の扱いが特殊と聞くのですが、 インプットした値をあとで使うように変数で保持することはできないのでしょうか。 可能ならば、題意の通り、 input 5 2 3 1 3 1 10 3 1 10 10 1 8 3 0 0 output 4 4 と出力してみたいのですが。 また、HaskellやScalaで解ける方がいらっしゃいましたら、是非参考にしてみたいです。 宜しくお願いします。