トップページtech
994コメント330KB

関数型プログラミング言語Haskell Part8

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2007/10/30(火) 20:28:13
haskell.org
http://www.haskell.org/

日本語サイト
http://www.sampou.org/cgi-bin/haskell.cgi
http://www.shido.info/hs/

過去ログ
関数型プログラミング言語Haskell
Part1 http://pc.2ch.net/tech/kako/996/996131288.html
Part2 http://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 http://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 http://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 http://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 http://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 http://pc11.2ch.net/test/read.cgi/tech/1174211797/

・2chの仕様により、行頭の半角スペースは表示されません。
 コードをインデントしたいときは、代わりに または全角スペースを使うことができます。
0944デフォルトの名無しさん2008/05/12(月) 19:49:49
test.hsをコンパイルしようとしたら次のようなエラーが出たのですが原因がわかりません

compilation IS NOT required
test.o(.test.o(.text+0x46):fake: undefined reference to
`cgizm3001zi1zi5zi2_NetworkziCGI_runCGI_closure'
0945デフォルトの名無しさん2008/05/12(月) 19:50:52
すみません途中で送信してしまいました

>>944のようなエラーが出てきた場合はどのような対処をすればいいですか?
0946デフォルトの名無しさん2008/05/12(月) 20:24:00
--makeオプション付けてる?
0947デフォルトの名無しさん2008/05/12(月) 20:45:09
Haskell が形式的手法に向いてて、テスト等のコストダウンにつながるみたいな話が出ていたが、
F#はその点どうなんだ?
・一応関数型言語
・でもHaskellほど純粋じゃない
・M$開発なのもあって、使い始めてる企業もぽつぽつ
・.NET
0948デフォルトの名無しさん2008/05/12(月) 23:13:20
質問です。
例えば、ttp://ujihisa.nowa.jp/entry/83b42ba2e2
のプログラムはrunghcで動かす時はリストの一部が出力されますが、ghcでコンパイルして
動かすと何も出ないですよね?
無限リストなんかを処理が終わった部分から逐次出力する、というのはどうすればいいんでしょうか?
runghcの場合は大丈夫なのですがコンパイルして実行すると駄目です。
0949デフォルトの名無しさん2008/05/13(火) 00:06:02
>>948
こんなふうに書き換えると最初の値だけは出力されるね。
GHCの実装の詳細までは知らないですが……

main = mapM_ (print . love) [0..10]
love :: Int -> Bool
love 0 = True
love k = love (k-1) && love 1
0950デフォルトの名無しさん2008/05/13(火) 06:08:25
>>948
標準出力のバッファリングを無効にすればいい

import IO

main = hSetBuffering stdout NoBuffering >> ...
0951デフォルトの名無しさん2008/05/13(火) 07:55:25
>>947
F#でも同じだろ。
静的型付け言語だし、再帰でプログラミングするし。

ただ、現状ではHaskellやOCamlの方が、証明支援ツールが充実している。
0952デフォルトの名無しさん2008/05/13(火) 09:52:53
いくつか関数型言語を使う企業を見たり、経験しているが証明はまずしない。
定理証明支援系で証明できることはどうせたかが知れており、
これは業種にもよるので断言できないが、実際に保証したいことはまず
証明できない。できたとしても時間かかりすぎ。仕様が変更されれば
証明に要した労力も無駄。費用対効果の面から魅力を感じられない。

自動、半自動的な検証は当然大いに利用したいが、モデル検査はちょっと
おおげさ。やはり言語に付属している型検査、型推論が妥当な手段になる。

企業側が関数型言語を選ぶのにはいくつか理由があるが、結構重要視されて
いるのが、関数型言語を書ける人間を集める方が、Javaで集めるより、
当たりが多いという事実。もちろんそういう意味では機械証明ができる人材は
歓迎される。まあ、面接や2chのスレを見てる限り、これももうすぐ成り立た
なくなるだろうけど。
0953デフォルトの名無しさん2008/05/13(火) 16:05:23
>>952
> これは業種にもよるので断言できないが、
> 実際に保証したいことはまず証明できない。

まあ断言していいと思うよ。
0954デフォルトの名無しさん2008/05/13(火) 21:20:59
NASAの中の奴らも
これで衛星軌道に乗せる
プログラムの証明やろうとして
職失ったしなw

今は曰く有りだから関わらん方が
いいよ。趣味でどうしてもとかいう
好奇心旺盛な変態はいいと思うが
0955デフォルトの名無しさん2008/05/13(火) 22:10:41
>>952
>いくつか関数型言語を使う企業を見たり、経験しているが

可能ならば、具体例きぼんぬ。
0956デフォルトの名無しさん2008/05/13(火) 22:16:39
>>952
それは、計算機で数学の証明ができない、ということと等価なんでしょうか?
0957デフォルトの名無しさん2008/05/13(火) 22:17:51
>>952
実際にHaskellやOCamlを使っているところは、単純に静的型チェックによる安全性を重要視してるんじゃない?

Javaなんかも静的型チェックがあるけど、HaskellやOCamlはもっと安全で、でも、Javaほど冗長じゃない
っていうのが普通に便利だと思うけど。
0958デフォルトの名無しさん2008/05/13(火) 22:24:01
>>956
答えはNo.
できるけれども、現状では、難しすぎて実用的でないということ。
定理証明支援器は使うためにラムダ式の厳密な扱いができないとダメだし、ツールの使いやすさも
まだまだ発展途上。
0959デフォルトの名無しさん2008/05/13(火) 22:28:21
最近Haskell始めたんだけど、 a b c d って式があったらそれだけ見てもb c dは関数なのかそうでないのかわからないよね?
定義してる部分を見るしかないの?
0960デフォルトの名無しさん2008/05/13(火) 22:42:53
>>955
働いたり内部に首を突っ込んで詳しく聞いたのは外資金融系数社、大手、小規模含む。ocaml 2社、Haskell 2社。
全社をあげて取り組んでいたり、一部プロジェクトチームだけだったり。これ以上は勘弁。
他にも外資金融数社でF#などの採用を考えているという話。金融ではこれからの十年は関数型じゃないか?という噂。
金融じゃないが東大でもHaskellを使ってspin-outした若者達がいたよね。
>>956
あまり関係ありません。
証明を書けたとしても通常は時間が掛かりすぎて、問題自体が変化するなど、労力=給料に見合わない、ということです。
証明スクリプトを自在に書けるほどの人材なら、基本デザインに参加させることで安全性を向上させるほうがよいです。
>>957
まあ、そのとうり。
偏見かもですが、以上の会社/プロジェクトではオブジェクトは人間による静的解析を
難しくするのでどこでも人気ありませんでした。
0961デフォルトの名無しさん2008/05/13(火) 22:45:19
式を値として扱う方法
がいまいちわかってない
練習問題5個ちょうだい
0962デフォルトの名無しさん2008/05/13(火) 22:49:12
>>960
955ではないですが、もう少しお聞きしたいのですが、金融系で関数型というのは、
どういう部分で使ってるんでしょうか?リスク管理とかのシステムは割と金融工学
とかの人たちが多い印象があるんですが、そういう部分でしょうか。
0963デフォルトの名無しさん2008/05/13(火) 22:52:05
>>960
関数型言語を使う企業情報サンクス。
知らないだけで、けっこう使われているのね。
0964デフォルトの名無しさん2008/05/13(火) 22:52:17
>>959
基本的にはそう。aの型だけ見れば分かることもあるけど
別にこれはHaskell特有の事情じゃなくて、例えばCでも、
a(b, c, d)
という式を見ただけではbやcやdが関数かどうかは分からない
0965デフォルトの名無しさん2008/05/13(火) 22:53:27
>>960
> 働いたり内部に首を突っ込んで詳しく聞いたのは外資金融系数社、大手、小規模含む。ocaml 2社、Haskell 2社
日本の会社ですか?
0966デフォルトの名無しさん2008/05/13(火) 22:53:30
>>961
式を値として使うってどういうこと?
0967デフォルトの名無しさん2008/05/13(火) 22:54:37
なんかネタ臭いな
ひょっとしてビジネスロジックの計算部分だけとかそういうオチ?
0968デフォルトの名無しさん2008/05/13(火) 23:01:27
Functions as Values
って奴です日本語の意味は知りません
0969デフォルトの名無しさん2008/05/14(水) 00:02:11
>>913
投資額2500億円、開発工数11万人月
三菱東京UFJ銀行は2007年8月までにサブシステムの開発と単体テストを終え,
9月から今日に至る8カ月間,接続テスト,総合テスト,最終確認テストと,
ひたすらテストを重ねてきた。

UFJ システム統合 テスト不十分
http://www.nhk.or.jp/news/t10014535911000.html#
0970デフォルトの名無しさん2008/05/14(水) 00:14:17
>>969
素朴な感覚として、数千人が従事したシステム開発で間違いが
あってはならない、というのは無理な相談だと思うが…。

関数型言語はそういう点でも期待されてるのかね。
0971デフォルトの名無しさん2008/05/14(水) 00:18:04
>>970
海外の堅いシステム系の人に
質問したことあるけど結局金の問題

偉い人はたかがパソコンずらーっと並べて
金勘定させるのになぜこんなに金かかるんだ
安くしろ他社を出し抜けと思っているだけなんだよ

0972デフォルトの名無しさん2008/05/14(水) 02:25:38
x8664版でりようしてるけど、初めて4G以上使ってしまった。
フィボでどこまでけいさんできるのか?して300000でシステムが不安定になったよ。^^;
でも落ちなかったところが偉い。
0973デフォルトの名無しさん2008/05/14(水) 07:27:12
>>962
全社をあげて取り組んでいるところは基本インフラは全部関数型。
といってもトレーダーに関数型言語を習わせるわけにもいかないし、
シミュレーションコアはC/C++な所もある。
大手だと既存インフラがあるので一部を強化、置き換える形で導入。
Quantsは基本的に言語理論知らないので、Quantsが関数型使おう
ということはまずない。よほど意識の進んだ頭のおかしいQuantsとか、
ITの人がプロジェクトとして始める。うまくいったり、理解を得られず
失敗したり。そういう意味ではリスキー。

Quantsの悪口を言うと言語理論どころか計算量も知らない奴とか、
C++早い、マンセーとか言いながら構造体をコピー渡ししたりとか
大手にもいるの。なので、気をつけて関数型で書けば、もとの
プログラムより早くなっちゃたりする。実はそういう業界。

>>965
日本にある会社はごく一部。全部外資。日本企業は知らね。

>>967
Haskellを採用している所は遅いからそうかもわからんね。
09749622008/05/14(水) 11:10:58
>>973
ありがとうございます。基本インフラに関数型ってのは驚きですね。
それを売りにしようとしている企業なんでしょうか。

てっきり金融商品の価格設定計算だったり、リスク管理部門の計算
システムかと思ってました。デリバのリスク管理とかHaskellなんかが
向いてそうだなぁと。
0975デフォルトの名無しさん2008/05/14(水) 11:14:08
インフラまで関数型か・・・
具体的なコードがみたいな
0976デフォルトの名無しさん2008/05/14(水) 12:27:22
米の一部金融系ではErlangを実戦投入してたことがあったとか聞いたような
0977デフォルトの名無しさん2008/05/14(水) 13:11:50
>>976
アーランの会社だろ
0978デフォルトの名無しさん2008/05/14(水) 17:35:53
>>972
不安定になるなら落ちたほうがまだマシだろw
0979デフォルトの名無しさん2008/05/14(水) 17:45:01
単純な掲示板を作成するとしたらどんなライブラリを参照すればいいですか?
0980デフォルトの名無しさん2008/05/14(水) 19:15:44
>>975
どっかに就職してね
0981デフォルトの名無しさん2008/05/14(水) 19:17:01
>>980
どこに?
0982デフォルトの名無しさん2008/05/14(水) 19:18:51
ML スレでちょっと話題になってたけど、
千葉にオフィスがあるみたいだね。

http://ocaml.janestcapital.com/
http://rikunabi2009.yahoo.co.jp/bin/KDBG00200.cgi?KOKYAKU_ID=2715900001&MAGIC=
0983デフォルトの名無しさん2008/05/14(水) 19:23:05
インフラなんかまともなプロファイラやデバッガがないと務まらんだろうに。
Haskellでローレベルな解析するツールがどれだけ充実してるんだか。
0984デフォルトの名無しさん2008/05/14(水) 19:24:33
>>979
Network.CGI と Text.Html あたりじゃない?
どっちも使ったことはないけど。
0985デフォルトの名無しさん2008/05/14(水) 19:57:55
関数を値として扱う方法が
よくわかりません
例題を4題くだされ
0986デフォルトの名無しさん2008/05/14(水) 20:20:56
ぼちぼち次スレ頼む。しかし最近は流れが早いね。いいことだ。
0987デフォルトの名無しさん2008/05/14(水) 21:22:31
>>961
>>966
>>968
>>985
何がよくわからないのかよくわかりません。
0988デフォルトの名無しさん2008/05/14(水) 21:49:39
>>985
http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4/mltext/ocaml005.html
0989デフォルトの名無しさん2008/05/15(木) 09:55:18
テンプレの改訂とか要望ある?
0990デフォルトの名無しさん2008/05/15(木) 19:44:33
>>989
関連スレ
・関数型言語Part IV
 http://pc8.2ch.net/test/read.cgi/tech/1083649982/
・【数学者】Haskellはクソ言語【オナニー】
 http://pc8.2ch.net/test/read.cgi/tech/1128011645/
・純粋関数型言語Concurent Clean
 http://pc8.2ch.net/test/read.cgi/tech/1075629340/
・関数型言語ML(SML, OCaml, etc.), Part 5
 http://pc11.2ch.net/test/read.cgi/tech/1186292994/
・Lisp Scheme Part21
 http://pc11.2ch.net/test/read.cgi/tech/1207300697/
【入門】Common Lisp その4【質問よろず】
http://pc11.2ch.net/test/read.cgi/tech/1201402366/
・Emacs Lisp 3
http://pc11.2ch.net/test/read.cgi/tech/1191875993/
0991デフォルトの名無しさん2008/05/15(木) 19:46:48
あと
>>18 のリンク先も欲しいな
0992デフォルトの名無しさん2008/05/15(木) 21:18:28
>>989

・栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン6.8.2
http://www.kotha.net/ghc_users_guide_ja/

も欲しいかも。
0993デフォルトの名無しさん2008/05/15(木) 21:33:19
これを先頭に入れときな
http://www.haskell.org/bio.html
09949482008/05/15(木) 23:59:16
>>949-950
できました。
ありがとうございました。
レス数が950を超えています。1000を超えると書き込みができなくなります。