【.NET】F#について語れ【OCAML】

このエントリーをはてなブックマークに追加
946デフォルトの名無しさん:2011/02/10(木) 07:43:13
配布するのが大変って言ってる人は、ただでもわざわざ道路作んのかよってことだし
大変じゃないって人は、言えば作ってくれるんだからそれを使えばいいじゃんってことで平行線だな。
947デフォルトの名無しさん:2011/02/10(木) 12:21:30
.NET3.5以前は入れたくないが
.NET4なら入れても良いと思う
948デフォルトの名無しさん:2011/03/21(月) 11:54:17.56
歩く歩道はニュータウンには標準で付いてくるので、そろそろみなさんニュータウンに移ってください
949デフォルトの名無しさん:2011/03/21(月) 11:56:20.38
わかりました
すぐに引っ越すので、前の住居の数メートル隣のコンビニをニュータウンの引越し先に設置しておいてください
ユーザーからのお願いです
950デフォルトの名無しさん:2011/04/03(日) 15:17:24.83
>>925
なんだこれすげぇ。
951デフォルトの名無しさん:2011/04/07(木) 15:05:28.98
ume
952デフォルトの名無しさん:2011/04/07(木) 18:12:05.39
950でしばらくしたら落ちるんだっけ?
980だっけ?
953デフォルトの名無しさん:2011/04/08(金) 00:10:32.38
>952
985辺りまで安全。立てるのは995前後でおk。
早く立てすぎると埋めるのがかなり面倒だから。
954デフォルトの名無しさん:2011/04/08(金) 00:51:55.43
自分の周りでは結構F#話題に出るんだが、巷では全くはやってないのかね?
955デフォルトの名無しさん:2011/04/08(金) 01:30:12.76
980で落ちる
956デフォルトの名無しさん:2011/04/08(金) 01:35:20.61
Don SymeのExpert F#や、Dean SmithのProgramming F#もあるけど、
Tomas PetricekのReal World Fanctional Programmingは、良さそうだね。
https://twitter.com/murrayondotnet/status/56012406744289280

Robert PickeringのBeginning F#ってどうなんだろう。
どうでもいいが、発行年が2007と2009に集中してるな。
957デフォルトの名無しさん:2011/04/08(金) 07:57:38.01
>956
Real World Functional Programmingは良書(`・ω・´)シャキーン
他のに比べて関数プログラミングって何ぞやってところに多くを割いている。
958デフォルトの名無しさん:2011/04/12(火) 06:23:48.57
>>954
個人的に趣味の範囲で、まだ興味持ってるけど
趣味ですら、ちょっと本格的なアプリつくろうって気にはなんないね・・・
メーリングリストとかFShubもコミュも死んでんじゃん?
959デフォルトの名無しさん:2011/04/12(火) 08:05:45.41
>958
今度客先に出すアプリF#でつくってんだが・・・(´・ω・`)
海外は熱いよ!作りやすいよ!
960デフォルトの名無しさん:2011/04/12(火) 18:49:02.83
Microsoft F# Developer Center
http://msdn.microsoft.com/fsharp
英米の地域ユーザーグループは活発だけど、
全体のやつはあるのかな
961デフォルトの名無しさん:2011/04/22(金) 23:24:52.90
Mono最強伝説
http://ja.wikipedia.org/wiki/XSP_(Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)
962デフォルトの名無しさん:2011/04/27(水) 20:16:33.78
過疎
963デフォルトの名無しさん:2011/04/27(水) 23:28:27.34
仕事で使ってる人って、あんまりいないよね。
みんな何つくってるの?
964デフォルトの名無しさん:2011/04/27(水) 23:39:25.56
うーん、海外だと金融系で使ってるとか言う話も聞くけど、
それも事実なのか、MSR の(MS経営陣に対する)アピール戦略で言ってることなのかいまいちわからない。

なんか、最近のMSRのF#の売り込み方だと、
データ解析&可視化の得意なREPL的な使い方してるのよね。
965デフォルトの名無しさん:2011/04/27(水) 23:50:58.86
今金融系向けの仕事で使ってるお。
といっても今はあくまでもナイスな汎用記述言語としてしか使ってないけど。
金融系の本来の用途としてはDSL的に書けたり関数型ならではで並列を書きやすいってところがポイントかと。これはF#だからというよりもOCamlとかですでにされてるとこだと思うけど。
F#はそれ以外に.NETで強力なライブラリがあったり既存と連携がしやすいこと、F#ならではの言語仕様でいろいろと開発がしやすいことなど技術者さえ確保できるならほとんどの分野で有効だと思うんだけどなー
966デフォルトの名無しさん:2011/04/28(木) 10:48:18.71
問題は技術者を確保できればってところで、保守が必要なものだと自分がいなくなっても
保守できるのかってあたりできびしいものが……
967デフォルトの名無しさん:2011/04/28(木) 15:00:53.64
んーそれでもC#の技術者いるなら2,3週間でまぁ普通に使えるようになると思われ。
その時はC#と同じようなコードの書き方してるかもしれないけれどだんだんF#っぽいコードになってけばいいと思う。
そうするだけの価値はあるよ。生産性とか的に。
968デフォルトの名無しさん:2011/04/28(木) 15:01:39.23
あー2,3週間は教える人がいるならのはなしね。
969デフォルトの名無しさん:2011/04/28(木) 23:49:36.39
C#も生産性高いと思うけどF#ってさらに生産性が上がるの
そりゃ使い方次第だろうけど、そういうポテンシャルを持ってんの?
970デフォルトの名無しさん:2011/04/29(金) 00:25:36.43
>>969
両方あまり知らないんだけど、俺みたいなド素人にでもパッと見で分かる
ようなとこは
・型推論がC#より強力。
・1..10 とか 'A'..'z'とか書ける(C# だとEnumerable.Range()とか使うと思う)
・組み込みで並列計算や非同期計算の機能がある。
・強力な型推論とあいまって、タプルがLLなみに使いやすい。
 単に("this", 1)と書けばよくて、string * intの直積型(タプル)と
 推論してくれる。値として返す場合も型宣言とか要らない。
・同様に、リストやシークエンスのリテラル表記やリスト内包が可能で
 LLなみに使いやすい。
 関数的なconsリストがサポートされていて再帰処理との相性もいいんだけど
 これは関数型を知らないと良さが多分分からない。
・その他パターンマッチ等関数型特有の機能が色々便利、ただこれも関数型を
 知らない人は、使ってみないと多分良さが分からない。
971デフォルトの名無しさん:2011/04/29(金) 00:46:04.20
C 言語から派生してる OOP 言語と、関数型言語から派生してる言語は得意な場面が相補的だから、
C# と F# 両方覚えてそれぞれ得意な場面で使えば生産性上がる
くらいのものだと思うんだけど。
972デフォルトの名無しさん:2011/04/29(金) 02:01:34.24
逆にF#はIDEとの相性の良さを捨ててる感じなので
(その点でC#はIDEでうまく補完出来ない言語要素は入れないようにしてる感もある)
単純なコードの字面だけから測ってF#のほうが上とは
生産性が尺度の場合は言えないなあ。
973969:2011/04/29(金) 08:31:08.39
>>970
レスありがとう
ちょっとだけモチベーション上がった
974デフォルトの名無しさん:2011/04/29(金) 17:18:22.21
プログラミングF#買った
975デフォルトの名無しさん:2011/04/29(金) 17:21:54.99
言語の特徴としてはScalaとF#はそっくりだと思う。

*型推論:
 F#,Scala -> ◯
 C#,Java -> △,×
*代数データ型:
 F#,Scala -> ◯
 C#,Java -> ×
*パターンマッチ:
 F#,Scala -> ◯
 C#,Java -> ×
nullの廃止
F#,Scala -> ◯
C#,Java -> ×
モナド:
F#,Scala -> ◯
C#,Java -> ×
高階関数:
F#,Scala -> ◯
C#,Java -> △,×
変数:
F#,Scala -> デフォルトで破壊できない
C#,Java -> デフォルトで破壊できる
対話環境:
F#,Scala -> ◯
C#,Java -> ×

JavaからScalaへの大移動が始まっているのと同様のことがC#からF#に起こるに違いない!と言うのも本当かもしれない。
976デフォルトの名無しさん:2011/04/29(金) 17:46:43.47
JavaからScalaへの大移動なんて始まってるの
ScalaとF#の比較は乙と言いたい
977デフォルトの名無しさん:2011/04/29(金) 18:45:21.30
△と×の差が大きいんだよなあ。
C#→F#は起こらないとおも。
978デフォルトの名無しさん:2011/04/29(金) 18:59:43.54
C#はラムダ式書けるから楽だよな
979デフォルトの名無しさん:2011/04/29(金) 19:02:37.27
IDEとの連携が微妙だからなぁ
一時期はスクリプトとして使う分にはそこそこよかったんだが
今はpowershellがあるし…
うーむ
980デフォルトの名無しさん:2011/04/30(土) 08:36:37.52
>971
でもC#のほうがF#よりとくいにできるってとこあんまなくね?
partial classとかはちょっと便利かと思うけど。


>972
IDEサポートはC#のほうが上だね。
リファクタとか参照してるところ一覧とかクラス名、メソッド名で一覧からジャンプとか。
でもVSのエクステンションで同じような機能を使えるのもあったから実際使っててそれほど困ってもない。コードの書き方の違いにもよってるのかな。
981デフォルトの名無しさん:2011/04/30(土) 19:16:49.60
次スレ建てんとな
982デフォルトの名無しさん:2011/04/30(土) 19:33:54.53
F#はMSの研究所による関数型言語の.NETへの実装で、MSのメインストリームである
C#が年々改良されていっている以上、F#の便利な機能はどんどんC#へ移植されて
いくんじゃないかと思っている。
なので、C# 6.0くらいになれば、もう汎用言語としてのF#のメリットは消えてるのではないかと妄想。
もちろん、関数型言語としての棲み分けはできるだろうけど。
983デフォルトの名無しさん:2011/04/30(土) 20:42:58.86
次のC#で予定されているasyncなんかそうだよな。
984デフォルトの名無しさん:2011/04/30(土) 20:49:28.51
C#とF#、OOPベースか関数型ベースかって差はどんどんなくなってるけど、
MSリサーチ臭の有無はいまだになくなってないし、そこが棲み分けのポイントじゃないかな。
F#の方が先に色々新しい試みしてて、
C#の方が時間かけてより良い形になってから新機能入れてる感じ。
985デフォルトの名無しさん:2011/04/30(土) 23:39:43.06
>>984 F#のコア言語は1980年代からあるからC#よりずっと洗練されているよ。
クラスベースをメインとするC#では完全な型推論が実装できない事は証明されているし
代数データ型、パターンマッチ、モナドなんかを導入するのも不可能か、不自然な
構文になっちゃうんじゃないかな。
C#4.0ではdynamic型が導入されるしC#は今後は動的な言語の利点を取り入れる形に
なるんじゃないかな。
986デフォルトの名無しさん:2011/04/30(土) 23:55:01.90
969あたりからのC#対F#の流れ勉強になるわ
987デフォルトの名無しさん:2011/05/01(日) 00:06:46.98
80年代からあるから洗練されてるってなんかおかしくない?
普通、古いほど悪習が残るだけで。
988デフォルトの名無しさん:2011/05/01(日) 00:13:52.09
だね。
正直、F#はあまりOCamlを引きづらなくても良かったんじゃないかと思う。
あと
> C#は今後は動的な言語の利点を取り入れる形になるんじゃないかな。
これは的外れ。
989デフォルトの名無しさん:2011/05/01(日) 00:39:24.72
その辺りもリサーチ臭強い原因の1つなのよね。
C#がC++とかJavaから結構練り直してる部分あるのに対して、F#はOCaml過ぎ。

研究用言語をあまり練ってもしょうがないし。
F#を製品化するとか、作り始めた当初は思ってもなかったんだろうけど。
990デフォルトの名無しさん:2011/05/01(日) 00:50:08.49
>>988
> > C#は今後は動的な言語の利点を取り入れる形になるんじゃないかな。
> これは的外れ。

かまわん続けろ
991デフォルトの名無しさん:2011/05/01(日) 01:25:36.87
>>989 確かに構文だけみるとF#はOCaml過ぎて気持ち悪いけど機能ベースで見ると
Scalaとよく似てるよね。偉い人はそれがわからんのですけど。

ジェネリクスや型推論、クロージャなど関数型言語の利点は昔から着々と取り入れられて
来たけど、だんだん限界だよね。型推論の制限は取れないままだし、そのせいで匿名関数も
微妙だし、FParsecのようなパーサーライブラリはHaskellやOCamlでは昔からあったけど
C#では永遠に無理だろうね。
992デフォルトの名無しさん:2011/05/01(日) 01:54:31.34
次スレ建てますよ、テンプレの拡充は次回のスレ建てでお願いします。
993デフォルトの名無しさん:2011/05/01(日) 02:47:57.29
次スレ
【.NET】F#について語れ2【OCAML】
http://hibari.2ch.net/test/read.cgi/tech/1304185609/

お待たせしました。やっと建てられた・・・
994デフォルトの名無しさん:2011/05/01(日) 03:28:07.01

このスレが急に盛り上がってちょっと嬉しい
995デフォルトの名無しさん
>>975 の機能まとめは参考になるので次スレにも貼っていただけないでしょうか。