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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
MSResearchから出てきた.NETで使える関数型言語のひとつF#
OCAMLの流れを汲むこの言語、いろいろと面白そうなことができそう。
そろそろ日本語の情報が充実してきそうなこの言語について、幅広く語れ。

http://www.fsharp.net/

前スレ
【.NET】F#について語れ【OCAML】
http://hibari.2ch.net/test/read.cgi/tech/1186030985/

関連スレなどは >>2-
2デフォルトの名無しさん:2011/05/01(日) 02:52:55.61
3デフォルトの名無しさん:2011/05/01(日) 02:58:27.71
>>980ぐらいで新スレを建ててね。
注意事項 http://info.2ch.net/wiki/index.php?%C7%A6%CB%A1%C4%A1%B4%AC%CA%AA
4デフォルトの名無しさん:2011/05/01(日) 03:34:36.83
Windowsでのインストールは、>>1から

Mac/LinuxでF#を使うにはmonoが必要です。
http://mono-project.com/
IDEにMonoDevelopを利用するなら、現時点ではmono-2.6系が必要です。
mono-2.10.1以降でF#が統合されていますので、IDEが必要ないならそのままCLI環境が使えます。

なんにせよ茨の道ですので、まずはブラウザ環境で実行できるTry F#のTutorialsを試しましょう。
Windowsでも(C#やCと組み合わせるなら、VS2010 C#/C++ Expressと) VS2010 Shell、F#2.0を組み合わせた
無償のIDE環境が使えます。
5デフォルトの名無しさん:2011/05/01(日) 03:42:19.97
現在の最新版について
http://blogs.msdn.com/b/fsharpteam/archive/2011/04/22/update-to-the-f-2-0-free-tools-release-corresponding-to-visual-studio-2010-sp1-april-2011-ctp.aspx
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b598327-9748-4052-884a-6ee737380dcd

・必要用件
サポートするOS:
Windows 7;Windows Server 2003;Windows Server 2008;Windows Server 2008 R2;Windows Vista;Windows XP
必要な環境:
.NET Framework 2.0 or an equivalent CLI implementation(Xbox 360, and Mono on Mac, Linux and other platform).
対応するソフトウエア(オプション):
Visual Studio 2010 Shell
6デフォルトの名無しさん:2011/05/01(日) 04:49:34.58
>>1
7デフォルトの名無しさん:2011/05/01(日) 10:03:33.09
言語の特徴としては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#に起こるに違いない!と言うのも本当かもしれない。
---------
要望があったやつ追加
8デフォルトの名無しさん:2011/05/01(日) 11:06:11.34
>>7
名古屋ではF#が結構使われているという話を聞いたんだけど、やっぱり
自動車関係の仕事が多いからなのか?
9デフォルトの名無しさん:2011/05/01(日) 11:45:09.38
http://www.itpl.co.jp/ocaml-nagoya/
これが関係してないか?
10デフォルトの名無しさん:2011/05/01(日) 13:04:53.26
名古屋怖い(´・ω・`)
11デフォルトの名無しさん:2011/05/01(日) 13:39:03.13
>>2, >>4 TryF# もよいけど、Silverlight入れたくない人やsmart phoneな人は
IdeOneも使える事を知っとくと良いよ。

hello worldを書いてみた。
http://ideone.com/ze0wq (こうやってソースと実行結果を貼ることもできる)
12デフォルトの名無しさん:2011/05/01(日) 18:56:09.06
コード共有するのには、IdeOneみたいなサービスがいいけど、
F# InteractiveのWebコンソールとしては、これが便利かも。

Try F# in your web browser
http://tryfs.net/

13デフォルトの名無しさん:2011/05/02(月) 23:26:40.62
そもそもなんでF#はF#という名前になったの?
FはFunctionのF?
あとC#がC++++から#になっているのは理解できるけど、
F++はもちろんF言語なんて聞いたことがないんだけど。
14デフォルトの名無しさん:2011/05/03(火) 00:03:14.45
C#の名前を結構気に入ってたから、.NET言語になんでも#つけてた時期がある。
15デフォルトの名無しさん:2011/05/03(火) 00:08:59.63
>>13
j#の後釜だからじゃね?
fは探せば有りそうだし
16デフォルトの名無しさん:2011/05/03(火) 00:12:28.32
J#がでた段階か分からないけど、[A-Z]#なら.net用言語に見える
MSに関係する範囲では、C#,F#,J#のみっぽいけど。
http://en.wikipedia.org/wiki/List_of_CLI_languages
17デフォルトの名無しさん:2011/05/03(火) 00:20:06.88
>>16
schemeが#Sなのにcommon LispがL#な所は狡猾さを感じるなw
宗教論争とか起きなかったんかね
18デフォルトの名無しさん:2011/05/03(火) 00:57:40.67
結構粘ったやつも2009年ぐらいにメンテナンス止まってるみたい。
lisp系でメンテナンスが続いてるのは、結局Clojure(CLR)らしい。
https://github.com/richhickey/clojure-clr/downloads
19デフォルトの名無しさん:2011/05/03(火) 03:25:35.02
F#で標準入力を遅延リストみたいに扱う方法ってあるのでしょうか?
20デフォルトの名無しさん:2011/05/04(水) 06:22:20.80
ファイルの例だけど。
http://books.google.com/books?id=NcrMkjVxahMC&lpg=PA270&ots=pln0IBigeG&pg=PA99#v=onepage&q&f=false
Expert F#2.0 p.99 seq下のほう
21デフォルトの名無しさん:2011/05/04(水) 06:26:13.36
F# 1.0の書籍だった。

F#2.0 は、こっち。
http://books.google.com/books?id=y3kaQxIns0oC&lpg=PP1&pg=PA96#v=onepage&q&f=false
22デフォルトの名無しさん:2011/05/04(水) 08:20:27.45
>>20 >>21 ありがとうございます。
23デフォルトの名無しさん:2011/05/06(金) 09:50:41.49
RT @igeta: 翻訳ありがたい。/「あなたの開発チームに F# を持ち込むリスクについての神話」 http://bit.ly/k8ZDo1 (by @finalfusion) #fsharp
24デフォルトの名無しさん:2011/05/09(月) 19:18:09.17
scalaとF#使うならどっち?
25デフォルトの名無しさん:2011/05/09(月) 20:41:26.84
>>24
MSならF#、それ以外ならScala。
構文は全然違うけど言語パラダイムはそっくりだから俺は両方勉強してるぜ。なかなかためになる。
26デフォルトの名無しさん:2011/05/09(月) 22:19:12.87
誰かC#とF#の比較してくれねーかなー
27デフォルトの名無しさん:2011/05/09(月) 23:43:25.51
違いすぎる→そんなに違わないな→やっぱ違うわ→まあ、同じとも言えるな。こんな感じが延々と続く。C#とF#の比較。
28デフォルトの名無しさん:2011/05/10(火) 08:47:38.70
>>26
>>7 に書いてある。
29デフォルトの名無しさん:2011/05/10(火) 14:09:41.30
>>7の「高階関数」でC#が△になってるのはなんか理由あんのかな
っていうか、「ファーストクラスの関数」でよくね

tail call elimination
nested functions
automatic currying
cons, tuple
list comprehension
あたりも比較項目につけくわえていい気がする
30デフォルトの名無しさん:2011/05/10(火) 20:47:06.71
bingでF#検索すると残念なことに・・・
31デフォルトの名無しさん:2011/05/10(火) 22:09:08.41
>>7
そっくりなところを比べればそりゃそっくりだろうさ
32デフォルトの名無しさん:2011/05/10(火) 23:07:45.67
>>29
*tail call elimination
Java,C# -> ×
Scala,F# -> ○
*nested functions
Java,C# -> ×,△
Scala,F# -> ○
*automatic currying
Java,C#,Scala -> ×
F# -> ○
*cons, tuple
Java,C# -> ×
Scala,F# -> ○
*list comprehension
Java,C# -> ×
Scala,F# -> ○
33デフォルトの名無しさん:2011/05/10(火) 23:23:15.17
Actorモデル
Scala->○
F#->○に近い△
C#,Jave->×

って感じ?ちょっと不勉強なので正確かわからん。
34デフォルトの名無しさん:2011/05/10(火) 23:50:49.02
>>32
Scala は JVM の制限とかで tail call elimination ができないときがあるような
@tailrec アノテーションをつけておけば、できかなったときは教えてくれるけど

Scala は list comprehension あるんだっけ
for 式だったら、あれはどちらかというと Haskell の do に近いような
35デフォルトの名無しさん:2011/05/11(水) 05:38:03.25
>>32
tail callは64ビット版.NET Framework は、ILがTailとマークしてなくても最適化してくれる(制限あり)。
あと、LINQはある意味list comprehensionsの一種なので、C#が×は納得いかない。
36デフォルトの名無しさん:2011/05/11(水) 09:09:48.47
>>35 LINQでlist comprehension できるのか。知らなかった。
Haskellでの[x+y | x <- [0..9], y <- [0..9], x<y] みたいなのもLINQを使えば書けるのか?
37デフォルトの名無しさん:2011/05/11(水) 09:21:52.16
LINQだと
from x in Enumerable.Range(0, 10)
from y in Enumerable.Range(0, 10)
where x < y
select x + y
とかそんな感じだろう
38デフォルトの名無しさん:2011/05/17(火) 09:29:46.65
だれかF#でMonotouch開発しようとしてる人とかおらん?(´・ω・`)
F#にMonotouchが対応するのって、そもそも技術的に難しいんだっけ? Dictionary<int,Hoge>とかを使えないとかの制限にからんで。
それともF#なんかマイナー言語相手にしてる暇ねーぜヒャッハーってだけ?
FSharp.CoreとかのライブラリーをILAssembly使ってターゲット変えてゴニョゴニョすれば動くようになるとか言ってる人もいたんだけど。
Silverlightで同じようなことしてる人のBlogあったんだけどリンク切れちゃってた。
暇な人は"Reusing-NET-Assemblies-in-Silverlight"でぐぐって最初のエントリーのキャッシュ見てくんなまし。
39デフォルトの名無しさん:2011/05/18(水) 00:17:22.59
monoは今レイオフされたり会社設立したりと本体がゴタゴタしててそれどころじゃないんだろ
40デフォルトの名無しさん:2011/05/18(水) 08:05:24.37
>それともF#なんかマイナー言語相手にしてる暇ねーぜヒャッハーってだけ?
被害妄想?
41デフォルトの名無しさん:2011/05/18(水) 08:28:33.12
Mono for AndroidよりMonoTouchのが制約きついみたいだね。
http://d.hatena.ne.jp/atsushieno/touch/20110407/p1 の最後の段落
42デフォルトの名無しさん:2011/05/26(木) 01:34:35.70
しかしまあF#ってScalaほど必要とされている感がないんだよなー
なまじC#がよくできてるから
43デフォルトの名無しさん:2011/05/26(木) 01:37:10.04
企業の後ろだてのある言語じゃなく、1研究社が作った言語が注目集めるとかおかしいだろ。
どんだけJavaはアレなんだよ。
44デフォルトの名無しさん:2011/05/26(木) 08:00:06.97
>>42 確かにScalaは多くのJava技術者に注目を浴びているけど、Scalaいいって
言う人の言うことはそのままF#にも当てはまるんだよね。
ScalaがF#に比べて人気ある理由はC#がJavaより良くできているという以外に
構文がJavaから大きく離れてはいないという点があると思う。Javaコードを

コピペして微修正すればScalaコードとして動くし、Scalaコードを見てもある程度
読めそうな気になるから移行しやすいんだよね。
45デフォルトの名無しさん:2011/05/26(木) 08:01:26.91

一方F#は構文が違いすぎるし、初見だと全然読めない。このとっつきにくさが
結構効いているんじゃないかな。

でもF#は関数型言語としてScalaよりずっといい線行っている(構文はキモいけど)
ので、Scalaへの大移動が現実になったときC#erはF#への移動を準備すべき。
C#erがレガシーな理由のみで残りつづけて老害とならないようになってほしい。
46デフォルトの名無しさん:2011/05/26(木) 22:48:33.47
ScalaはGood Java。Javaに取って代わることを目標としているマルチパラダイム言語。
F#はあくまでもC#の補完。.NETファミリーの関数型言語の位置づけ。

scalaは関数型的な使い方をしなくてもいろいろ遊べる。
最初の関数型言語にScalaを選んでしまった場合、
Good Javaの部分だけで腹いっぱいになって関数型までたどり着けないことが多い。
47デフォルトの名無しさん:2011/05/26(木) 23:11:20.22
Scalaは、未来のJavaを先取りした言語と表現してるが、
Scalaと同じ機能がある未来のJavaは構文がもっと複雑なんだろうな。
48デフォルトの名無しさん:2011/05/27(金) 00:43:20.31
Scalaは関数型ってだけじゃなくてオブジェクト指向言語としてもJavaより進んでるのがウケてる理由の一つの気がするな
49デフォルトの名無しさん:2011/05/30(月) 19:59:14.67
C#もまだ未熟なんだけどF#に手を出してみたよ!!
で、F#難し過ぎて、はやくも挫折しそうなんだけど・・・
ちょっと質問。

クラスのスコープ内に関数を定義したかったらC#の場合、こうできる。
class 振り分け{
double[] ratio;
public 振り分け(){
initRatio();
}
private initRatio(){うんたらかんたら}
}

同じことをF#でやる場合staticなメンバにしないといけないのかな?
type 振り分け=
class
val mutable ratio: float[]
static member initRatio=うんたらかんたら
new(){ratio=initRatio}

うーん、ようわからんwww
50デフォルトの名無しさん:2011/05/30(月) 20:03:43.87
F#の嫌なところを1個見つけたよ。
インデント?空白?によって
ブロック的なものが決まることかなぁ。
だから、必然的に自動整形ってできないんだよね?
複数行選択後のtab/shift+tabができなかったら、
発狂するレベルだねw

あとは、クラスを定義する時の修飾子の多さも、ちょっとうんざりだよね;;
どういう書き方が一番エレガントなんだろう・・・

関数を定義する順番に依存しちゃうってのも、なんというか・・・
そこら辺はやっぱりscalaの方が上っぽい?
51デフォルトの名無しさん:2011/05/30(月) 22:37:13.86
>>50
・オフサイドルールはうつくしい。まだまだシロートのようだな
・クラスあんまし書かないのがF#流だから木にスンナ
・偽関数型言語でよければScalaでおk
52デフォルトの名無しさん:2011/05/30(月) 22:48:20.11
>>51
カッコよりはインデントの方が良いとは思うが・・・
自動整形欲しいよorz

クラス使わないって厳しくない?

Scalaのどの辺が偽なの?F#も偽だと思うけど。
53デフォルトの名無しさん:2011/05/31(火) 00:54:09.98
>>49
type Foo() =
    let initRatio() : float array = Array.map ( (*) 2.0 ) [|1.1;2.2;3.3|] 
    let mutable ratio = initRatio()
    member x.Say() = printfn "%A" ratio

let _ =
   let foo = new Foo()
   foo.Say()
54添削お願いします:2011/05/31(火) 18:17:18.40
namespace Algebra

type Vector(elements: float[])=

member this.size=elements.Length
member this.elements=elements
member this.Item
with get i = elements.[i]
member this.squaredNorm=Vector.dot(this,this)

static member (~-) (v: Vector)=
new Vector([| for i in 0 .. v.size-1 -> -v.[i] |])

static member OP2 (v1:Vector) (v2:Vector) op=
new Vector([| for i in 0 .. v1.size-1 -> op v1.[i] v2.[i] |])

static member (+) (v1: Vector, v2: Vector)=
Vector.OP2 v1 v2 (fun x y -> x+y)
//new Vector([| for i in 0 .. v1.size-1 -> v1.[i]+v2.[i] |])
static member (-) (v1: Vector, v2: Vector)=
Vector.OP2 v1 v2 (fun x y -> x-y)
static member (.*) (v1: Vector, v2: Vector)=
Vector.OP2 v1 v2 (fun x y -> x*y)
static member (./) (v1: Vector, v2: Vector)=
Vector.OP2 v1 v2 (fun x y -> x/y)
55添削お願いします:2011/05/31(火) 18:19:35.69

static member (*) (a: float, v: Vector)=
new Vector([| for i in 0 .. v.size-1 -> a*v.[i] |])
static member (*) (v: Vector, a: float)=a*v
static member (/) (v: Vector, a)=(1./a)*v

static member dot (v1: Vector, v2: Vector)=
Array.reduce (fun x y -> x+y) (v1.*v2).elements

override this.ToString() =
"("+(Array.fold (fun (x:string) (y:float) -> x+","+string(y))
(string(elements.[0])) elements.[1..])+")"
56添削お願いします:2011/05/31(火) 18:22:50.97
インデントが全部消えてごめんなさい。

疑問点
・OP2をletで定義できないのはなぜだろうか?
・intからfloatへの変換は自動でできないのだろうか?
57デフォルトの名無しさん:2011/05/31(火) 21:12:59.18
関数型の本質は型推論によって、関数が気軽に定義できることだろうか?

例えばList.reduceはJavaでもC#でも、簡単に実装できる。
だけど、気軽に使うためには、
foldに与える関数を気軽に定義できなきゃいけない。
T arg_reduce(T t, S s)
こういう関数を簡単に定義できる枠組みを与えるのが関数型言語なんだろうか?
58デフォルトの名無しさん:2011/05/31(火) 22:05:41.56
>>56
>・OP2をletで定義できないのはなぜだろうか?

以下のページの「let バインディングと do バインディング」が参考になるかも。
ttp://msdn.microsoft.com/ja-jp/library/dd233205.aspx

>・intからfloatへの変換は自動でできないのだろうか?

「プログラミングF#」の「2.1.3 変換処理」に、
「F#言語は暗黙的な型変換を行わないことを1つの方針としています。」
とか書いてあるんで無理なんじゃないかな。
59デフォルトの名無しさん:2011/05/31(火) 22:51:27.68
>>58
>静的メソッドからはこのフィールドにアクセスできません。
って書いてありました。ありがとう。

それはそうとdoバインディングってなんだろw
60デフォルトの名無しさん:2011/05/31(火) 23:12:52.10
関数型の本質()とかどうでもいいわ。
問題は単にF#が便利なのかどうかだわ。
61デフォルトの名無しさん:2011/06/01(水) 00:00:04.86
>>60
クラスブラウザがVSに実装されるまでは大規模開発が難しいのと
GUIエディタが無い現状はC#の代替にはならないかな、と思った。

F#は関数をさくさく作れる。
C#のクラス定義は単純明快だけど、
F#のクラス定義の方法は難解で、冗長で、読みにくいが、改行は少ない。
F#のyieldは便利。F#の()は読みにくい。F#のSeqは美しい。
F#は基本的に読みにくい。
62デフォルトの名無しさん:2011/06/01(水) 00:26:26.68
>>61
F#のクラス定義の方法は
難解で読みにくいってのはまあ慣れと好みだが
冗長でってのはどうかね?

C#のクラス定義は単純明快ってのは
私はC#のクラス定義に慣れているんです
って以外に意味を持たない主張に思えるが。
63デフォルトの名無しさん:2011/06/01(水) 01:15:18.81
>>62
memberは明らかにいらない子
64デフォルトの名無しさん:2011/06/01(水) 07:35:25.35
memberがいらないとか・・・
全然明らかじゃないからkwsk
65デフォルトの名無しさん:2011/06/01(水) 09:04:05.36
F#ではfun x y ->x+yをx y->x+yに出来なかった言語仕様上の問題とかあったん?
66デフォルトの名無しさん:2011/06/01(水) 09:32:09.49
>>64
クラスを定義してるのが明らかなのだから、
memberという修飾子はいらない。
あと、そもそもletが冗長なのと
副作用がないならnewを省略したい。

下記のようなシンプルさが欲しい。
class A(a:float)
add b = A(a + b)
minus b = A(a - b)
inc = add 1
dinc = this.inc.inc

この場合、IDE側でクラス名と関数名に色をつけてくれないと
クソ読みにくい。オフサイドルールの欠点。

あとandもクソ仕様。
67デフォルトの名無しさん:2011/06/01(水) 18:11:51.65
funは正直鬱陶しいなあ。
68デフォルトの名無しさん:2011/06/01(水) 18:40:51.63
F#やってて、便利と思うのは
関数の中に関数をかけることだな。
しかも、F#における関数はOOPでいう関数ではなく、
OOPのクラスに相当する。

逆に不便だなって思うことは、共通して使う関数を作った時に
どこへ置けばいいかわからないこと。F#はスコープの制御がダメだね。
69デフォルトの名無しさん:2011/06/01(水) 20:34:34.08
>>65
OCaml互換。C#の人かな。\x ->ならまだしもx ->はさすがに無理くねーか。
>>67
気持ちはわかります。

>>66
クラス内にはletとdoもかけるぞ。あとコンストラクタはメンバじゃねえ。

>>68
どこ置けばいいかわからない?F#でだけ?どの言語でも同じじゃまいか。
70デフォルトの名無しさん:2011/06/01(水) 20:37:59.90
あと自動整形できないからっての、よくわからん。
整形されたコードしかコンパイル通らんのだから
そもそも整形する必要ないじゃんか。



まあ俺もオフサイドルール嫌いだけど。
71デフォルトの名無しさん:2011/06/02(木) 12:42:05.73
オフサイドルールをやめるとすると、
他の選択肢ってなんだろ?
一つは{}だよね。
72デフォルトの名無しさん:2011/06/02(木) 15:49:55.04
あれーC#から使う時に、F#のunionの各サブクラスへの変換とかなんかメソッドなかったっけ
FSharpUnion<Employee>.get_Manager的な。
isManagerでしてから普通にキャストすればよかったんだっけ?
73デフォルトの名無しさん:2011/06/02(木) 16:13:53.96
>>71
つ Verbose syntax
74デフォルトの名無しさん:2011/06/02(木) 20:42:24.42
FSIにnamespaceとかopenて流し込めないんだね・・・

デバッグの途中で
add 1 2
とか打てたらいいんだけど・・・
F#ってデバッグが難しいね;;

75デフォルトの名無しさん:2011/06/02(木) 21:59:27.33
>>72
サブクラスとか、キャストとか、なんか根本的に間違ってないか。

>>74
openは流せる。まさかopen Listがエラーだからとか言わないよね?
76デフォルトの名無しさん:2011/06/02(木) 22:05:03.83
>>75
あぁ、ごめん。書き方が悪かった。

自分で定義したnamespaceを
openすることができないってことでした。すいません。
77デフォルトの名無しさん:2011/06/02(木) 22:44:29.66
>75
いやC#からだとUnionそういう風にしか扱えなくなかったっけ?
そのUnionのインスタンスでIsManagerとかよべるけど。ManagerであるUnion値をManagerとして扱いたいときにどうしたらいいかって話。
もっとまともな方法あったっけ?
78デフォルトの名無しさん:2011/06/03(金) 00:30:20.24
>>77
type Employee = ... | Manager of Hoge の場合↓

var emp = Employee.NewManager(hoge);

if (emp.IsManager) {
    var mngr = ((Employee.Manager)emp).Item;
    // dosomething
}

だからDesign Guidelinesにはまんま使うなと書いてある。
79デフォルトの名無しさん:2011/06/03(金) 09:26:19.89
誰かF#のいいデバッグ方法教えてー
80デフォルトの名無しさん:2011/06/03(金) 09:28:24.98
F#のC#に対して優れているところを教えてください
81デフォルトの名無しさん:2011/06/03(金) 09:50:11.17
>>80
協力な型推論、nullがない、パターンマッチ、関数内関数ができる、対話環境、並列計算に強い
とかじゃね。
82デフォルトの名無しさん:2011/06/03(金) 09:55:29.01
nullって悪者なんですか・・・
パターンマッチ、並列計算に強い はおもしろそう
83デフォルトの名無しさん:2011/06/03(金) 10:13:46.63
>78
あーやっぱりそんな感じかー
>79
自分も最初は悩んでたけど、最近はなんも困ってないな。なんでだろ。途中でうまく止めて値見るのとWriteLineで出しとくのとヘルパーとか使ってFSharpFunc楽に実行できるようにしたところか?
そもそもDebugが必要になる羽目になることが少なくなったというのもある気がするが。
>80
Debugしながらでもソースがいじれるところ。
84デフォルトの名無しさん:2011/06/03(金) 10:16:25.55
>>83
Debugしながらでもソースがいじれる・・・イイ!
85デフォルトの名無しさん:2011/06/03(金) 11:02:45.96
>>82
実行時エラーがない方が運用上大いなるなメリットがあるのは当然だろJK
quick sortの発明者アントニーホーアはnullは10億ドルの過ちであると言っている。
ttp://news.livedoor.com/article/detail/4047613/
86デフォルトの名無しさん:2011/06/03(金) 15:53:21.29
まあ、どんなの場面でもnull不要とはいわないけども、
Anders Hejlsbergも「nullableの概念は参照型/値型の概念とは独立させておくべきだった」っていってるしね。
非nullable参照型は欲しい。
87デフォルトの名無しさん:2011/06/03(金) 18:18:05.09
>>86
関数型言語にはnullは必要ないよ。関数型プログラマはnull参照エラーみたいなアホみたいな実行時エラーとは
無縁の世界でプログラムしているよ。
88デフォルトの名無しさん:2011/06/05(日) 00:00:41.87
>>83
FSharpFuncってなんですか?

数値計算のプログラムを作ってる時は、
デバッグは絶対必要なんですよね・・・

関数の形で定義してると、途中で止めても
中の数値が見れないんですよねorz

let x=f a
とかしちゃってる時に、
f 1
の値を見る方法がないと、数値計算のプログラムのデバッグは
無理かなーと。

現状のF#を数値計算に使うと死ぬかも・・・・
89デフォルトの名無しさん:2011/06/05(日) 06:40:44.23
伝統のprintfデバッグじゃダメ?
let dbg x = printfn "*debug:%A" x; x;;

こんな感じで使う。
[1..10] |> List.map ((+) 1) |> dbg |> List.map(fun x -> dbg(float x / 2.0));;

90デフォルトの名無しさん:2011/06/05(日) 12:12:50.78
>>89
%Aでリスト(行列)を全表示できるのかな?
そうなら、そういう関数作っておけば、確かに楽そうだね。
DOS窓かよって不満はあるけどw
それやってみるよ。ありがと。

また、ただ、いろいろ細かい状態が知りたかったりするから
デバッグ中に値が知りたいというニーズは多いし、
あとはけっこう量が多いんだよね・・・うーん。
91デフォルトの名無しさん:2011/06/05(日) 12:13:56.07
そういえばVSのデバッガは何だかんだでC#前提なままだったね。
92デフォルトの名無しさん:2011/06/05(日) 12:25:05.75
> FSharpFuncってなんですか?
関数の型。クロージャ作るとそゆ型が付く。
まーF#の中にいる限りは特に意識する必要ないが。
C#と連携したいなら覚えておくといいかも。
93デフォルトの名無しさん:2011/06/07(火) 12:29:28.85
F#のイディオム的なテクニックを教えてほしいな。
例えば、クロージャーとか簡単なもの。

使い始めたんだけど、上手く使えてるか自信がない。
F#ならではの書き方あったら教えてください。
94デフォルトの名無しさん:2011/06/07(火) 18:32:10.90
>>93
LINQは使ったことありますか?
95デフォルトの名無しさん:2011/06/07(火) 20:10:49.92
>>94
C#では使ったことがあります。
96デフォルトの名無しさん:2011/06/07(火) 23:39:58.82
>>93
関数型の場合何やるにも再帰。
とくに末尾再帰はしっかりみにつけるべき。
97デフォルトの名無しさん:2011/06/08(水) 10:21:18.89
>>93
非関数型プログラマ: forやwhileループを使う
関数型入門者: 再起を使う
中級者: map, foldをなるべく使う

これが割と参考になるかも。
98デフォルトの名無しさん:2011/06/08(水) 10:27:21.76
>>97
上級者は何を使うんだ?
99デフォルトの名無しさん:2011/06/08(水) 10:47:37.21
文字列のlistがあって、その文字列を表示できる矩形を重ならないように上から並べたrectと文字列のタプルのリスト返せっつったら、foldで次のトップと結果のlistを状態にするような感じでよろし?
こういうのにfold使うのなんか微妙に違和感あるんだけれどこんなもんかね@関数型初心者。
100デフォルトの名無しさん:2011/06/08(水) 11:11:11.30
>>99 こんな感じ?
let union rect1 rect2 = new Rect(rect1.x, rect1.y, max rect1.width rect2.width, rect1.height+rect2.height) in
ss
|> map (fun s -> getRectOf(s))
|> fold union empty_rect
101デフォルトの名無しさん:2011/06/08(水) 21:30:46.81
F#って末尾最適化はやってくれている?
102デフォルトの名無しさん:2011/06/08(水) 22:13:07.22
コンパイル時に .tail がつく
103デフォルトの名無しさん:2011/06/08(水) 22:28:05.14
F#で文字の連結ってどうするんですか?
+でできるのはわかるんですが、これだと遅いですよね?
104デフォルトの名無しさん:2011/06/08(水) 22:50:12.35
いっておくがStringBufferみたいなものはないからな
105デフォルトの名無しさん:2011/06/08(水) 22:51:05.82
StringBuilder使えって言っておけばいいのかな
106デフォルトの名無しさん:2011/06/08(水) 23:17:37.07
末尾最適化になってるはずなんだがstackOverFlowになるってことはなってないんだろうなぁ・・・何か確認する方法あったっけ。
そもそも要素一つずつ減らしてるから無限ループになるはずないのに4千件ぐらいでStackOverFlowになるってなんか変だ。
Console.WriteLineで出力しても途中まで減ってってるのに突然何も出さなくなって5秒ぐらいしてからStackOverFlowが出てもうわけわかめ(´;ω;`)ブワッ
107デフォルトの名無しさん:2011/06/09(木) 05:16:59.39
>>106
コードkwsk
108デフォルトの名無しさん:2011/06/09(木) 05:19:42.26
.tailプリフィックス付いてても状況によっては無視されるって奴かな?
109106:2011/06/09(木) 08:39:36.40
あれーインタラクティブに流し込んだらもっとたくさん流し込んでもさっくり動くよ…
そもそもデバッガーだと末尾最適化しないとかあったっけ?いやそんなことないよね…

問題だけどインタラクティブでさっくり動いたコードとりあえずまるっと載せてみる

let inRange from t v=from<=v&&v<=t

//rangeによってポイントをまとめる。
//現在のrange=from〜tに合うならptListに追加。
//合わないなら今までのptListを一組としてptListListに追加し、新しいポイントとしてptListに追加。
//合うrangeがなくなるか、iListが空になったら抜ける。
let rec toPtrListList (ptList,ptListList,((from,t)::rangeList)) (i::iList) indToInter indToVal=
// Console.WriteLine("toPtrLL----{0}",System.Environment.TickCount)
// Console.WriteLine ("toPtrLL iList={0},rangeL={1}",List.length iList,rangeList.Length)
let inter=indToInter i
let toPt()=inter,indToVal i
//System.Drawing.PointF(float32<|trans.XInterToUI inter,toUIY series.[i]|>float32)
//helper-----
//合うrangeを探してそれ以降を返す。
let rec findFitRange rangeList inter=
// Console.WriteLine("findFitR {0}",System.Environment.TickCount)
match rangeList with
|[]->None
|(from,t)::tail->
if inRange from t inter then Some rangeList
else findFitRange tail inter
//iListが空ならその時点のを結果とする。有るなら続き。
110106:2011/06/09(木) 08:40:17.92
//続き
let contOrBreak (ptList,ptListList,rangeList) iList=
// Console.WriteLine ("contOrBreak iList={0}",List.length iList)
match iList with
|[]->[],ptList::ptListList,rangeList
|_->toPtrListList (ptList,ptListList,rangeList) iList indToInter indToVal
// Console.WriteLine("toPtrLL---before helper {0}",System.Environment.TickCount)
//-----helper
if inRange from t inter then
//現在のrangeに合う。
contOrBreak (toPt()::ptList,ptListList,((from,t)::rangeList)) iList
else
//rangeに合わない
if t<inter then
//現在のrangeよりinterが先。
match findFitRange rangeList inter with
|Some (rangeList)->
//fitするものがあったのですすめる。
contOrBreak ([toPt()],ptList::ptListList,rangeList) iList
//なかったので現在のものを結果とする。
|_->[0,0],ptList::ptListList,(from,t)::rangeList
//inter<fromなので今のindを捨てる。
else
// Console.WriteLine ("hogehoge iList={0}",iList.Length)
contOrBreak (ptList,ptListList,((from,t)::rangeList)) iList

let test=
toPtrListList ([],[],[0,10000;10001,20000;20001,30000]) ([0..50000]@[0..100]) id (fun i->i+100000)

111106:2011/06/09(木) 08:43:47.05
インデントが(;´Д`)

let inRange from t v=from<=v&&v<=t

//rangeによってポイントをまとめる。
//現在のrange=from〜tに合うならptListに追加。
//合わないなら今までのptListを一組としてptListListに追加し、新しいポイントとしてptListに追加。
//合うrangeがなくなるか、iListが空になったら抜ける。
let rec toPtrListList (ptList,ptListList,((from,t)::rangeList)) (i::iList) indToInter indToVal=
// Console.WriteLine("toPtrLL----{0}",System.Environment.TickCount)
// Console.WriteLine ("toPtrLL iList={0},rangeL={1}",List.length iList,rangeList.Length)
let inter=indToInter i
let toPt()=inter,indToVal i
//System.Drawing.PointF(float32<|trans.XInterToUI inter,toUIY series.[i]|>float32)
//helper-----
//合うrangeを探してそれ以降を返す。
let rec findFitRange rangeList inter=
// Console.WriteLine("findFitR {0}",System.Environment.TickCount)
match rangeList with
|[]->None
|(from,t)::tail->
if inRange from t inter then Some rangeList
else findFitRange tail inter
//iListが空ならその時点のを結果とする。有るなら続き。
112106:2011/06/09(木) 08:44:27.70
スペースを入れてもダメか。俺\(^o^)/オワタ
113デフォルトの名無しさん:2011/06/09(木) 09:16:04.56
htmlレンダリングの問題だけで、スレに書き込まれてるソース的には空白やタブ残ってたと思った。

リンク貼る形式なら、gistや>11の使うといいと思う
114デフォルトの名無しさん:2011/06/09(木) 09:46:14.43
>>113
106ではないが、インデントを推測して貼ってみた。F#の構文がわからないので間違ってるかも
ttp://ideone.com/JW8dl
115デフォルトの名無しさん:2011/06/09(木) 10:06:12.85
>>106
よくわからんがfindFitRangeは再帰しなくても高階関数使った方がシンプル
let inRange v (from, t) = from<=v&&v<=t
let isFit v ranges = ranges.exists(isRange v)
let findFitRange ranges inter =
if (isFit inter ranges) then Some ranges
else None
116デフォルトの名無しさん:2011/06/09(木) 10:51:09.46
>>113の通りで、データとしては空白残ってるよ
俺はnavi2ch使ってるので普通にインデントが見れる
http://ideone.com/eE0C0
117106:2011/06/09(木) 11:37:16.53
>113-116
オマイラあり\(^o^)/

>115
いや、リストをなめていって見つかったらそれと、それ以降のやつをタプルで返してるのでそのやり方だとミリ。
なんかうまい高階関数あるのかもしれんが。
118デフォルトの名無しさん:2011/06/09(木) 11:51:17.37
>>117
List.partition : ('T -> bool) -> 'T list -> 'T list * 'T list
ttp://msdn.microsoft.com/ja-jp/library/ee353782.aspx
が近いけどちょっと違うか。
こういう場合は素直に再帰をした方がいいのかな?
119デフォルトの名無しさん:2011/06/09(木) 12:06:19.24
>118
それ条件で振り分けるやつだからちょと違うと思われ

というか自己解決したかも。
プロジェクトの設定でビルドタブに"tail呼び出しの生成"って項目あってそれオンにしたらサックリ動いた。
ってもこれ付けたらデバッグとかしにくくなんのかな。
お騒がせしますた。
120デフォルトの名無しさん:2011/06/09(木) 12:12:10.32
※補足:
上の何も出さなくなって5秒ぐらいしてからStackOverFlowってのは例外になったのでVisualStudioが表示用とかに色々頑張ってる状態なんだろうね。
121デフォルトの名無しさん:2011/06/09(木) 12:34:18.75
末尾呼び出しを最適化すると、関数のトレースが出来なくなる。
だから、デバッグするときは、最適化切ったりするね。
122デフォルトの名無しさん:2011/06/11(土) 08:45:12.01
末尾最適化=スタックに積まないだからそりゃね。
でも再帰呼び出し時のスタック トレースが必要なことってある?
printf デバッグでいいんじゃねぇかと思うんだけど。
123デフォルトの名無しさん:2011/06/11(土) 09:35:34.36
まぁそれいっちゃうとなんでもprintfデバッグで良くね?ってなるだろw
124デフォルトの名無しさん:2011/06/11(土) 14:00:10.41
いやいやwスタックトレースは必要だと思ってるよw
どこからどう呼び出されてきた関数かはデバッグに不可欠
だけど、再帰の分に関しては必要ないんじゃね?って。
125デフォルトの名無しさん:2011/06/11(土) 14:19:14.54
んーまぁ再帰でもなんでその条件分岐になったのか流れ見たいときはある希ガスんなぁ
printfでもいいけど。printfでいいか。
126デフォルトの名無しさん:2011/06/11(土) 22:52:39.73
俺が想定してたのは再帰するしないで2分岐するだけの単純な再帰なんだけど
もしかするともっと複雑な再帰とかだとスタック見たいこともあるかも。
というかまあ見れる見れないだったら見れる方がありがたいのは確か。

ただ、再帰って、割とこうガチガチにロジカルに組まないとコンパイル通らない
ような気がしてて、スタック追っかけてまでデバッグする必要性あるかなあと
思ったりしたんだわ。
127デフォルトの名無しさん:2011/06/15(水) 09:53:18.75
FSUnitとVisualStudioのテストおのおのどんなメリット・デメリットあるのかすら。
C#使ってた時はVSのつと使ってたけどF#だと使いにくい?
128デフォルトの名無しさん:2011/06/15(水) 22:17:38.41
>>127
日本語?
母国語で頼む
129デフォルトの名無しさん:2011/06/15(水) 22:59:09.06
母国語だとさらにわからないのでは?
130デフォルトの名無しさん:2011/06/15(水) 23:15:40.40
中国語と韓国語なら読めるぜ
131デフォルトの名無しさん:2011/06/16(木) 12:49:59.57
Alt+EnterでInteractiveに流し込もうとするとエラー音してできない時があるんだけど、そういう現象出てる人います?
ウィンドウ→新規で別ウィンドウ出すとそのソースからでもできるんだけどいまいち発生する条件がわからん。
132デフォルトの名無しさん:2011/06/16(木) 18:49:46.13
結局TypeProviderってちょっとMeta情報与えてやることでF#でいろいろな情報がナイスに楽に使えるようになるってことでいいですか?(´・ω・`)
http://research.microsoft.com/apps/video/dl.aspx?id=150053&l=i
133デフォルトの名無しさん:2011/06/18(土) 10:35:56.55
オブジェクトのXML相互変換、こんな感じに書けたよ( ・∀・)ノ
F#いいね。

http://ideone.com/IokO4
134デフォルトの名無しさん:2011/06/24(金) 12:20:41.31
(・∀・)

Barrier使うぞ
http://blogs.msdn.com/b/mcsuksoldev/archive/2011/06/15/f-array-parallel-sort-functions-demonstrating-a-merge-sort-using-barrier.aspx

最近MCS UKの記事が多くなったけど、
MSR UK?から、だれか移ったのかな?
135デフォルトの名無しさん:2011/06/27(月) 02:39:51.37
関数内で途中でreturn みたいに値を返したり
for内でbreakしたりしたいんですがどうやればよいですか?
136デフォルトの名無しさん:2011/06/29(水) 11:16:04.97
>>135
自分の場合はtryFindかtryPickかな。
どうしても途中で抜けたいなら、例外出して抜けるしかない。

自分もC++のコードをF#にしてみようと思ったときそこで悩みました。
結局、F#の繰り返しのfor文は全然使わないでList.mapかList.iterで処理するのがいいと思った。
137デフォルトの名無しさん:2011/07/01(金) 11:25:54.20
>>135
>関数内で途中でreturn みたいに値を返したり
条件で返す値を変える

>for内でbreakしたりしたいんですがどうやればよいですか?
手続き型のfor/whileは全て再帰だと思っていい
138デフォルトの名無しさん:2011/07/02(土) 00:42:03.47
そこで継続ですよ。
139135:2011/07/02(土) 01:56:39.99
>>136-138

レスありがとうございます.
let loopですっきりとした記述ができました.
140天使 ◆uL5esZLBSE :2011/07/05(火) 06:48:35.87
2011年、Ruby,Perl,PHP,Pythonって並べたときにさ
ここで、Ruby以外を選ぶ奴ってマジでなんなんだろうな


ゴミだし
141天使 ◆uL5esZLBSE :2011/07/05(火) 13:47:18.60
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ


ゴミの分際でw
142デフォルトの名無しさん:2011/07/10(日) 11:33:45.10
つ #light
143デフォルトの名無しさん:2011/07/12(火) 18:22:39.87
コード見てないが、意外とF#遅くてがっかし(´・ω・`)
http://users.softlab.ece.ntua.gr/~ttsiod/score4.html
144デフォルトの名無しさん:2011/07/17(日) 00:05:23.57
誰かseqのBuilderを実装しているソースどれかわかる人います?
2.0のソースはあるんだけど検索してもわからんです…
145デフォルトの名無しさん:2011/07/17(日) 10:04:55.63
146デフォルトの名無しさん:2011/08/07(日) 02:29:54.25
TIOBE TOP20入りしてた
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
msdnでドキュメント公開してるのも大きいんだろうな
147デフォルトの名無しさん:2011/08/20(土) 02:34:49.66
F#って何がいいの?
って言う人には
http://www.slideshare.net/bleistift/cvbf
これを見るといいかもね?
148デフォルトの名無しさん:2011/08/20(土) 02:38:41.36
あとこの辺も見ておくと
勉強になるかもね?
http://d.hatena.ne.jp/bleis-tift/20110803/1312345593
149デフォルトの名無しさん:2011/08/20(土) 06:04:16.54
>>147 >>148
なってないなぁ…と思う。
そんなもん見るよりも、ちゃんと時間取って実践F#読む方がずっといいよ。
150デフォルトの名無しさん:2011/08/20(土) 10:46:16.38
>>149
なってないなぁ…と思う。
そんなもん見るよりも、ちゃんと時間取ってExpert F# 2.0読む方がずっといいよ。
151デフォルトの名無しさん:2011/08/20(土) 11:46:15.04
Real-World Functional Programmingも宜しくね
152デフォルトの名無しさん:2011/08/20(土) 21:29:33.05
ちなみに何がなってないの?
153149:2011/08/21(日) 08:02:31.09
>>152
突っ込むために見直してみたら、そんなに突っ込み所は無かったかも。
>>149で頭ごなしに否定するのはまずかった。反省してる。

初見ではもっと気になる所があった気がしたけど、今見て思うのは以下。

・P35-P43 if式を(.NET中では)F#に特徴的、みたく書いてるけど、実はVB.NETにもif式はあるのです…
・P85 高性能、ではなくて、高機能、では?
・タプルを使ったPythonでいうアンパック代入相当の構文を備えていて、
 多値関数の戻り値が(x,y) = funcHoge(a,b)みたいに自然に書ける説明が抜けてる。
・リスト操作用の組み込み高階関数の説明が無い。

とか。重箱の隅かもしれんけど、気になるんよ。
154関数型入門中:2011/08/21(日) 19:29:53.73
質問させてください。

ここ数ヶ月、関数型言語をいろいろ見ています。(Scala,Haskellなど)

実践F#という本を読んでいます。

ちょっとこういう場合どうすればいいか、わからないことがあり質問させてください。

あるレコードが定義されている場合、
そのレコードに対して適用できる一連の関数を知る方法ってありますか?

実践F#には、同じ名前空間に、レコードと同じ名前のモジュールを定義して、
そこに関連する関数を書くとよい、とされていますが、
実際そうされているものでしょうか。

一つに、Haskellの型クラスのような仕組みがあれば、見通しがよくなると思うんですが
そういう仕組みはないんですよね? (Scalaにもなかった。。)

なにか、自分で設計する場合、他人が見てもわかりやすい方法などあれば教えてください。
よろしくお願いします。
155デフォルトの名無しさん:2011/08/21(日) 20:41:30.81
レコード型のメソッドにしてみてもいいんじゃないでしょうか
156デフォルトの名無しさん:2011/08/21(日) 21:20:09.09
>>154
ある型に対する一連の関数を知る方法は、簡単にはないですね。
AppDomainをリフレクションで総舐めとかすればそりゃ別ですが。

型と同名のモジュールを作ってーというお作法は、まあ、ふつうはそうするかなあと。
もちろん、ふつうじゃない場合もあるわけだけど。

Haskell型クラスが美人なのはわかりますが、すでにインターフェイスで筋通してる
.NET(あるいはJVM)においてそれを求めるのは、ちょっと難しいかなあという感想。

>>155
関数型でなくOOPで、と。ええ、おっしゃる意味は解りますが、といって、たとえば
Fooオブジェクトを必要とする振る舞いがすべてFooのメソッドとして定義されるとは
限らないわけで。BarクラスのメソッドがFooを引数に取ることだってあるでしょう。

このあたり、私は、F#においてのみ特別不便だ、とは感じません。
157b:2011/08/21(日) 22:37:39.67
> 149
書いた人です。指摘してくれてありがとうございます!

>・P35-P43 if式を(.NET中では)F#に特徴的、みたく書いてるけど、実はVB.NETにもif式はあるのです…
確かに、誤解を招く書き方でした・・・
一応、VBのIf式は知っていたのですが、あくまでここでは
「C#にもVBにもif文があるけど、F#にはない」
ということが言いたかったのです。

>・P85 高性能、ではなくて、高機能、では?
うわ、全く気付いていませんでした・・・高性能はおかしいですね。

>・タプルを使ったPythonでいうアンパック代入相当の構文を備えていて、
 多値関数の戻り値が(x,y) = funcHoge(a,b)みたいに自然に書ける説明が抜けてる。
これは微妙なところで、タプルのみに限った機能ではないので省きました。
例えば、
type t = { Name: string; Age: int}
という型があったとして、t型の値xに対して
let { Name = n } x
ということも可能ですし、そもそもローカル変数に限った話ではなく、
let name { Name = n } = n
のように引数に対してのマッチも可能です。
let x, y = y, x的なものを入れるかどうかは迷ったのですが、結局入れませんでした。

>・リスト操作用の組み込み高階関数の説明が無い。
これは、この時のターゲットを考えて意図的に入れませんでした。
確かに便利な高階関数は色々と用意されていますが、それを列挙する発表ってつまらなくないかなぁ、と思ったので。
ただ、LINQ to Objectには一対一で対応するものが無いような高階関数の紹介はやってもよかったかもしれません。
158b:2011/08/21(日) 22:39:15.22
あ、let { Name = n } = xです。
159デフォルトの名無しさん:2011/08/24(水) 01:30:04.05
お!本人であるbleisさんが降臨・・・
素敵!
160デフォルトの名無しさん:2011/09/07(水) 22:14:16.34
F#のすごい日本人おしえれ
161デフォルトの名無しさん:2011/09/07(水) 22:14:49.33
いますぐフォローすべきF#の人的なやつ
162デフォルトの名無しさん:2011/09/07(水) 22:33:14.58
Googleで F# site:hatena.ne.jp とかやると、いろいろ出てくる
163デフォルトの名無しさん:2011/09/07(水) 22:45:31.06
いないんだな、それが
というとアレだが、F# に特化してる人っているかね?
なにかしらほかの言語も使いつつ F# も嗜む的な
リベラルというか
164デフォルトの名無しさん:2011/09/07(水) 23:40:27.20
金融系の人とかはOCaml使ってた人も多いらしいし、
F#も出来る人多いんじゃないの?
165デフォルトの名無しさん:2011/09/08(木) 05:49:53.02
完全にF#で仕事、というのが日本にはない感じなので、そういう点で、人が見えないよね。
小物やらバッチに使うやらぐらいなら、そりゃあるだろうけれど。
かといってF#で何かOSSで作って公開、などという人もいないようだし。
166デフォルトの名無しさん:2011/09/08(木) 08:49:22.56
167デフォルトの名無しさん:2011/09/08(木) 12:11:17.65
F#セミナーいったら、
GUIアプリクライアントをF#で開発して納品した話をしてたよ。
168デフォルトの名無しさん:2011/09/08(木) 15:48:51.11
活用例とかになれば
最終的には.netのグルー言語以外の何でもねえんだし
scalaにしろ、元にくらべての使い勝手の話になるんだから面白い話じゃない
.net嫌いな人ってもういないの?

>>160>>161
それなら各言語のすごい人全部まとめれ
169デフォルトの名無しさん:2011/09/08(木) 23:16:33.81
F# Programming -Build MVVM Applications in F#
msdn magazine Sep. 2011
http://msdn.microsoft.com/ja-jp/magazine/hh394149(en-us).aspx
170デフォルトの名無しさん:2011/09/09(金) 19:54:27.44
会社にFランがいたけどひどかった。
#なんか付けたところで同じようなもんだろ。
171デフォルトの名無しさん:2011/09/09(金) 20:01:08.56
Javaの変態の人たちはScalaやってるのに、
なんてC#の変態の人たちはF#やんないの?
172デフォルトの名無しさん:2011/09/09(金) 20:21:30.63
Javaは使いづらくてやっとレンガ、C#はそこそこ間に合ってしまうというのがあるんじゃ。
F#のほうが使いやすいけどねー
173デフォルトの名無しさん:2011/09/09(金) 20:32:09.20
Javaと違ってC#は糞言語じゃないから。

C#にはラムダ式、まともなジェネリック、LINQがあるし、
次のバージョンではasync,awaitも入るのでF#のメリットが相対的に少ない。

また、F#はC#と比べてIDEの支援が弱いのというデメリットがあるので
(特に WindowsForms、WPF、ASP.NET MVCなど主要ライブラリ関連)
F#のメリットとデメリットを天秤にかけた結果、C#でいいやって事になってしまう。
174デフォルトの名無しさん:2011/09/09(金) 20:34:00.21
むしろここの人たちがF#を使っている理由が知りたい
175デフォルトの名無しさん:2011/09/09(金) 20:40:54.41
C#を使ってると「パターンマッチ使いてぇ」
って場面は割とよくあるんだけど、
それだけの為にユーザーの環境にF#ランタイムを入れさせるのは憚られたので
結局使ってない。

.NET FrameworkにF#ランタイムが含まれてたら使ってたかもな。
176デフォルトの名無しさん:2011/09/09(金) 20:44:40.99
俺的にはパターンマッチ、再起、部分適用、ユニットオブメイジャー、モナド含め、コードが書きやすいから。
177デフォルトの名無しさん:2011/09/09(金) 21:42:20.97
>>171
インテリセンスさいこーってことでしょ
まー.NET的にC#が勝ち馬であるとに異論はない
いまんとこ

>>173
Javaも別に糞じゃないと思うが
古臭いならわかる
178デフォルトの名無しさん:2011/09/09(金) 22:58:15.35
C#使っててLINQと拡張メソッドとラムダだらけになるとなんかもやもやしてくる
179sage:2011/09/09(金) 23:36:12.15
C#でLINQと拡張メソッドとラムダ使ってドヤ顔カッコワルイwwww
180デフォルトの名無しさん:2011/09/09(金) 23:46:26.26
まあ、でもLINQの範囲のデータ処理はC#のほうがいいな
181デフォルトの名無しさん:2011/09/10(土) 00:09:06.90
182デフォルトの名無しさん:2011/09/10(土) 00:09:37.07
bleisさんフォローしておけばいいんじゃね?
183デフォルトの名無しさん:2011/09/10(土) 07:03:34.56
>170 意味不明だったけど、これってFortran#っていうネタか。
184デフォルトの名無しさん:2011/09/10(土) 13:36:11.11
外人フォローしたほうがいいよ
185デフォルトの名無しさん:2011/09/10(土) 14:18:54.64
>>184
リストくれ
186デフォルトの名無しさん:2011/09/10(土) 16:20:27.90
ボスは、アカウントあるけどつぶやかなかった気がするな
187デフォルトの名無しさん:2011/09/13(火) 21:07:32.69
>>186
ボス?ドンサイム?
188デフォルトの名無しさん:2011/09/15(木) 23:23:01.45
F#3.0
http://blogs.msdn.com/b/fsharpteam/archive/2011/09/14/f-3-0-developer-preview-now-available.aspx
バージョン1分差があるのか分からんけど3.0
win8+vs2011expと違って、msdnのサブスクリプションが必要?

追加点
F# Information Rich Programming
- F# LINQ Queries
- F# Type Provider mechanism
- a set of built-in type providers for enterprise and web data standard
IDEサポート増えるみたい。
189デフォルトの名無しさん:2011/09/16(金) 09:23:30.60
ファンクタ対応したのかな
190デフォルトの名無しさん:2011/09/16(金) 11:56:24.12
従来交わることのなかった OCaml 使いと C# 使いがそれぞれ別の切り口で文句を言いに集うスレはここですか?
191デフォルトの名無しさん:2011/09/16(金) 13:05:24.76
>>190
仕事で両方使ってる人は、期待することはあっても文句はいわんだろ。

P層C#、F層F#でそれなりの規模のもの作ってみると、結構使える手ごたえはある。

普通にF#で機能を一つ作った後、その中で理論的に並列動作できそうなところがあれば、
それをマルチスレッド化するのに数分の作業で済むことも多いし、それがいつも安定して動く
という経験を重ねると、これからの時代C#だけじゃだめかなという気にもなってくる。

まだ立ち上がって数年の言語だし、捨てられないでちゃんとバージョンアップしてくれてるから、
まだまだこれからと見るべきでしょう。
192デフォルトの名無しさん:2011/09/16(金) 17:08:03.30
Type Providerってなんなのか教えて下さい
193デフォルトの名無しさん:2011/09/16(金) 17:10:27.45
型を定義することなくデータソースから何らかの方法でメタデータを取得し静的な型として扱えるようにするものって感じかの。
194デフォルトの名無しさん:2011/09/16(金) 17:31:00.24
>>193
ありがとうございます
型定義を手で書かなくても済むようにするための
メタプログラミングの仕組み、みたいな感じでしょうか。。。
195デフォルトの名無しさん:2011/09/17(土) 00:34:37.50
What's New for Visual F# in Visual Studio 11 Developer Preview
http://msdn.microsoft.com/en-us/library/hh370982(v=VS.110).aspx

msdn Libraryのなかに、VS11のドキュメントがもう揃ってるんかー
196デフォルトの名無しさん:2011/09/17(土) 04:22:38.42
Visual Studio 11 Developer Previewは、日本語版もあって2012年6月30日まで使えるのか。
http://msdn.microsoft.com/en-us/aa570309#five

> Metroスタイルのアプリケーションを開発するには Windows Developer Preview with developer tools English, 64-bit上に
> Visual Studio 11 Developer Previewがインストールされている必要があります。
開発ツール付きWin8上にインストールすればMetroスタイルアプリ開発にF#も使えそう。
197775:2011/09/17(土) 09:34:30.73
Twitterで上がった話題(iOSでF#)で、F#のSymeがMonoのIcazaに、
build会場周辺でちょっと合って話さんかとかやってる。
198デフォルトの名無しさん:2011/09/18(日) 07:06:06.41
199デフォルトの名無しさん:2011/09/18(日) 09:43:03.31
C++のようなメタプログラミングができるのですか?
200デフォルトの名無しさん:2011/09/18(日) 14:25:45.62
C++ の template みたいなマクロの延長のものじゃなくて、
ビルドプロセスをフックして型を作ってるんじゃないかな。
そっちも .NET (F# 含む)で書ける。
201デフォルトの名無しさん:2011/09/20(火) 10:58:50.53
VS11 DP(ja)を、Win7(ja)とWin8 PR(en)にインストールしたが、VSからのF#(3.0) Interactiveが
どちらも日本語で表示しようとして文字化けしてる。(その画面だけ多国語対応してない?)

「C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\Fsi.exe」を直接起動すると
win7(ja)で日本語、Win8(en)英語で正常に表示された。
202デフォルトの名無しさん:2011/09/20(火) 13:06:00.07
MetroAppのソリューションテンプレート用意されてなかった。
さすがにリリース前あたりには、用意されるとおもうが、、

とりあえずWP7と同じようにギャラリーに来るのかな
http://blogs.msdn.com/b/dsyme/archive/2010/08/20/f-windows-phone-7-silverlight-templates-now-on-visual-studio-gallery.aspx
203デフォルトの名無しさん:2011/09/23(金) 17:42:48.27
>>191
いまだに手応えとか、いつまでそんなこと言ってんだよ
一生前衛みたいな感じかw
204デフォルトの名無しさん:2011/09/27(火) 04:47:47.07
ScalaとF#と両方勉強しているのですが、
判別供用体(代数的データ型)の、パターンマッチについて教えてください。

Scalaでは、case class で定義すると、内部的には、class 定義に、applyやunapplyメソッドを持たせて、オブジェクトに対してパターンマッチを行っているようです。

F#の場合は、どんな感じでしょうか? F#の判別供用体も、実際はクラスから作られたオブジェクトなんですよね?? (.Net言語だから、そう考えたんですが。。)
そうすると、Scalaのapplyやunapplyに対応するメソッドを持ったクラスなんでしょうか?

教えてください、よろしくお願いします。
205デフォルトの名無しさん:2011/09/27(火) 05:03:40.46
Scalaのapply,unapplyはよくしらんのだけれど、F#では各共用体は派生クラスとして実装される。
各々Tagを持ってるのでパターンマッチはそのTagを見てると思う。
206デフォルトの名無しさん:2011/09/27(火) 05:21:39.52
夜遅くに(朝早くに)ありがとうございます。
なるほどクラスとして実装されているんですね。
type A =
| B
| C
| D

だと、派生クラスB、C、Dが定義されていて
たぶん、スーパークラスとして、クラスA とか定義されているんでしょうか。(クラスAでなくてもよいとは思いますが)

もし、クラスAだとすると、このクラスAにもTagを定義するように定義されていると思いますが、
クラスAは、.Netというか、F#のクラス的には、もともと何クラスなんでしょうか?


ちょっと、質問がわかりにくくてすみませんが
たとえば

let hoge:A = B
とか、書いた場合に、
変数 hoge の束縛している、クラスが何かって、得る関数ありますか? という質問がしたいです。
(判別供用体のBを返すのでなく、元のクラスが何か? を得る関数という意味です。)
207デフォルトの名無しさん:2011/09/27(火) 13:01:19.65
F#の中では知らん。
Reflection使ってbaseクラスたどってみては。
C#から見ると多分Aとして見れると思う。
208デフォルトの名無しさん:2011/09/27(火) 13:14:29.26
普通に
type A = | B
hoge.GetType().Name
;;
でAって出てきた
209デフォルトの名無しさん:2011/09/27(火) 13:20:04.19
type A =
| B
| C of int
let hoge = C 10
hoge.GetType().Name
;;
はCだった
210206:2011/09/28(水) 14:57:18.94
みなさんありがとうございます。
自分なりの理解はこんな感じになりました (↓素人理解です)

F#のレベルでは、
判別共用体と、クラス・オブジェクト は全く別のもの。

CLRレベル(.Netレベル)ではたぶん、同じような仕組みで実装されている。

一方、
Scalaは、いわゆる判別共用体は、クラスの拡張で実現されているように思います。
(applyやunapplyというものを定義したもの)

※ 素人の理解ですが。
211デフォルトの名無しさん:2011/09/28(水) 15:07:34.34
>>210
ProgramingF#のC#Interropの章にF#で定義したunionがC#だとどういうクラスとして定義されるか出てるから見てみるがヨロシ。
webでもどっか転がってそうだけど。
212デフォルトの名無しさん:2011/09/30(金) 22:37:54.99
実践F# を読んでいると、
OOPの章のP264に、
本書では、詳細に踏み込みませんが、レコードや判別共用体の定義とは、F#コンパイラが構造的な性質
を持つように特別なパターンを適用したクラスとして生成するものです。本節では、特別なパターンが施されな
い、生身のクラスを定義する方法を示します(リスト8‐5)。

と書いてあって、F#ではクラスの特別なものが、判別共用体や、レコードのようなきがする。
213デフォルトの名無しさん:2011/10/01(土) 06:37:51.43
特別なクラスというと語弊がある。
MSIL上は継承関係とか種類を表すタグとかが一定ルールに従っているただのクラスであり、其れが自動生成されているだけ。
214デフォルトの名無しさん:2011/10/12(水) 10:06:47.51
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

46位か…… なんかえらい順位下げちゃったね。何でだろう。
215デフォルトの名無しさん:2011/10/12(水) 14:56:32.45
1%切ってるところは誤差だろ。
216デフォルトの名無しさん:2011/10/12(水) 18:43:17.12
TIOBEみたいな腐れ調査機関とか相手にすんなよ…
217デフォルトの名無しさん:2011/10/22(土) 20:48:19.24
まあ、F#が20位以内というのはおかしいよね。
218デフォルトの名無しさん:2011/10/23(日) 03:15:14.94
しかしそれでもScalaより上って・・・・・目くそ鼻くそとはこのことか。

はやくJavaの時代終わらないかなぁ・・・・
219デフォルトの名無しさん:2011/10/23(日) 12:42:45.14
>>218
scalaは関数脳に慣れてない人からは関数型言語部分に苦しんで、haskellやOCamlで関数脳になった人からは関数型言語としてはキモイから。。。

F#Express出たらかなり差が付くだろうね

haskellもGUIに特化した専門書とか出ないと伸びないんだろうな。。。
220デフォルトの名無しさん:2011/10/23(日) 14:20:16.52
>>219
haskell でguiな本書こうか?
221デフォルトの名無しさん:2011/10/23(日) 14:21:36.40
>>220
ぜひ!!
222デフォルトの名無しさん:2011/10/23(日) 14:52:33.37
>>221
gtk2hs でもいいっすか?
haskell-qtはまだ使ったことないんです、、、
223デフォルトの名無しさん:2011/10/23(日) 15:04:38.88
>>222
自分もgtk2hsの勉強始めたばかりなんで、渡りに船です
224デフォルトの名無しさん:2011/10/23(日) 19:13:01.51
>>223
とりあえず開始するかもしれないです。
でも期待はしないでください、、、、
225デフォルトの名無しさん:2011/10/23(日) 20:00:06.22
>>224
うい
226デフォルトの名無しさん:2011/10/23(日) 20:32:16.83
たぶん原稿の成長とcarettahのコード品質は同期するだろー...λ
227デフォルトの名無しさん:2011/10/26(水) 23:09:18.46
よく知らんが買わんぞ?
228デフォルトの名無しさん:2011/10/27(木) 09:05:20.27
>>227
全く売れないのも面白いのでwwww
229デフォルトの名無しさん:2011/11/09(水) 16:59:13.93
>>220
書いて
230デフォルトの名無しさん:2011/11/09(水) 17:17:18.28
現在の購入予定者2名
231デフォルトの名無しさん:2011/11/09(水) 19:01:13.54
良い本だったら買うし良い本ではなかったら買わない
232デフォルトの名無しさん:2011/11/09(水) 19:04:24.86
>>231
同人誌レベルなら、、
233 ◆QZaw55cn4c :2011/11/11(金) 03:51:46.57
>>220
買います
234デフォルトの名無しさん:2011/11/11(金) 04:23:18.13
>>220
SOEより凄いなら買う
235デフォルトの名無しさん:2011/11/11(金) 13:59:41.00
https://github.com/fsharp
githubに、fsharpオープンソースコミュニティーというのがあるのか。
donsymeがいると公式感があるな。
mono開発者のicazaも入ってる。
F#はClojureCLRと違って余裕あるからか、monoとの互換性も重視してたの思い出した。
236デフォルトの名無しさん:2011/11/11(金) 14:04:43.63
http://wizardsofsmart.net/post/iteratee-in-f/
最近FPではやりのIteratee使った関数型っぽいIO作り始めたよという記事?

future-io
https://github.com/fractureio/fracture

fsharpxってのがあるのか。
scalazとはまた違う?
https://github.com/fsharp/fsharpx
237デフォルトの名無しさん:2011/11/11(金) 14:18:47.50
作ってるのはSocket IOだった。
Fracture/Pipelet/Frackって分かれてる。
future-ioはSSDだった・・・orz
238デフォルトの名無しさん:2011/11/14(月) 01:37:08.30
M$がhtml5の構想に弱音を吐いて.net戦略を撤退したらf#ってどうなるんだろ
239デフォルトの名無しさん:2011/11/14(月) 01:51:46.03
VisualOcaml作って欲しい
240デフォルトの名無しさん:2011/11/14(月) 01:54:35.63
VisualHaskellを(ry
241デフォルトの名無しさん:2011/11/14(月) 02:54:08.28
F#はType Classの要望が強かったけど
.netの型システムとの互換性を重視して入れなかったとどっかで言ってたから
H#はないんじゃないの?

ちなみに"Visual Haskell"は既にあるよ
242デフォルトの名無しさん:2011/11/14(月) 06:45:33.31
>>241
>ちなみに"Visual Haskell"は既にあるよ

そうだった。VS2010に対応したかな?少しは安定したかな?
全然使えなさそうですっかり忘れてた

>F#はType Classの要望が強かったけど
>.netの型システムとの互換性を重視して入れなかったとどっかで言ってたから

・・・orz
243デフォルトの名無しさん:2011/11/14(月) 09:38:24.83
Haskellようしらんのだが、型クラスあるとなにがどう幸せになるん?
244デフォルトの名無しさん:2011/11/14(月) 13:06:42.36
>>243
多層的で等価比較、順序比較出来るリストを簡単に定義出来たりする

data List a = Null | List (List a) deriving (Eq,Ord,Show,Read)

使用例

List 1 (List 2 (List 3 Null))

head (List x _) = x

tail (List _ xs) = xs
245デフォルトの名無しさん:2011/11/14(月) 15:21:15.27
Eq,Ordが型クラスで、List aがインスタンスだから、例としてはこっちが適切か

large xs ys | xs < ys = (ys,xs)
large xs ys = (xs,ys)
246デフォルトの名無しさん:2011/11/14(月) 19:28:12.45
C# のプロジェクト で F# のファイルのインポートがどうしても
できないんですがどっかにまとまってないでしょうか?
あとC#プログラム中でfsファイルの実行は不可能なのでしょうか?
C#, F# のプログラムがそれぞれ下のようだったとして

main(){
exec(1.fs); //this is c# code
Console.WriteLine("aa");
}


########
let a = 3 // this is F# code
printfn "hello"
#########


実行して
hello
aa

となるような
247246:2011/11/14(月) 20:27:08.67
248デフォルトの名無しさん:2011/11/14(月) 20:53:17.11
F#側のdllをC#でインポートするだけでしょ?
249デフォルトの名無しさん:2011/11/17(木) 21:05:56.68
>>246
ねーよ
250デフォルトの名無しさん:2011/11/17(木) 21:56:28.38
この先長そうだね。
コンパイラと実行ファイル
evalとコードとか関係を勉強するのが先のようにも見えるが、とりあえず。

http://www.google.co.jp/search?hl=ja&q=c%23+f%23+%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88
251デフォルトの名無しさん:2011/11/18(金) 21:39:55.75
え?
252デフォルトの名無しさん:2011/11/19(土) 01:58:24.47
いや、この発想はまだまだ用語や概念判ってないのかなと思って
exec(1.fs); //this is c# code
253デフォルトの名無しさん:2011/11/19(土) 23:55:32.57
F#のevalは興味あるんだけどfsiのソース見ればいいのかな?
254デフォルトの名無しさん:2011/11/20(日) 19:04:44.86
ocaml のfunctor の代替手段はF#だとなんですか?

255デフォルトの名無しさん:2011/11/24(木) 21:32:53.28
XML に Serialize したいんだけど、mutable にするしか方法ない?

ttp://cs.hubfs.net/topic/None/57413
↑は見たんだが、02-SerializeXml.zip はダウンロードできないみたい
256デフォルトの名無しさん:2011/12/10(土) 12:47:04.33
http://d.hatena.ne.jp/zecl/20111004/p1
F#でぷよぷよだって。コード全然読めん
257デフォルトの名無しさん:2012/02/14(火) 05:18:11.05
あら止まってんの
ブロガー結構増えてんのに
258デフォルトの名無しさん:2012/02/18(土) 20:32:01.56
580 名前: デフォルトの名無しさん Mail: sage 投稿日: 2012/02/16(木) 05:11:31.94
F#を始めたのだが、モナドで行き詰まっている。
F#の本にはモナドのことが書いていない。
で、ネットでモナドのことを収集すると、ハスケルのがほとんど。
F#での説明もあるが、なんか解りづらい。

で、モナドって何ですか?
関数型プログラミングをやるにはモナドが必須ですか?

どなたか教えてください _o_

613 名前: デフォルトの名無しさん Mail: sage 投稿日: 2012/02/17(金) 09:25:13.67
>>580
ここは読んだか?
http://www4.atwiki.jp/fsharpmaster/m/pages/13.html

>StatefulFuncはなぜ動くのか?
>  StatefulFuncを含むワークフロー(モナドとも)を理解する道筋はいくつかあ
> ると思いますが、まず最初に「操作的」に手を動かしてプログラムの意味を解き
> ほぐしていくアプローチを取ってみようと思います。
259デフォルトの名無しさん:2012/02/18(土) 20:41:36.83
>>169
日本語翻訳版
F# プログラミング - F# で MVVM アプリケーションをビルドする
http://msdn.microsoft.com/ja-jp/magazine/hh394149.aspx
260デフォルトの名無しさん:2012/02/18(土) 20:47:33.70
MVPVM 設計パターン - WPF 向けのモデル - ビュー - プレゼンター - ビューモデル設計パターン
http://msdn.microsoft.com/ja-jp/magazine/hh580734.aspx
261デフォルトの名無しさん:2012/02/19(日) 12:59:47.35
【消しゴム】MONOを使ってみるスレ4【じゃない】
http://toro.2ch.net/test/read.cgi/tech/1329023778/
262デフォルトの名無しさん:2012/03/09(金) 00:57:53.79
もまいらもっとF#書けや
263デフォルトの名無しさん:2012/03/09(金) 11:01:16.34
みんなTwitter
に行っちゃってるのかな。
264デフォルトの名無しさん:2012/03/10(土) 17:23:56.54
本質的には別物
265デフォルトの名無しさん:2012/03/16(金) 20:14:45.72
F#はどこの世界が流行してるの
266デフォルトの名無しさん:2012/03/16(金) 20:32:47.41
俺の中では超マイブームです(´・ω・`)
267デフォルトの名無しさん:2012/03/16(金) 22:51:06.54
英ケンブリッジなら、Haskell,F#,Erlang,Clojure流行ってる
268デフォルトの名無しさん:2012/03/16(金) 22:54:28.67
http://www.google.co.jp/trends/?q=F%23
アイルランド?ロシア?
269デフォルトの名無しさん:2012/03/20(火) 07:16:12.67
ウィキ作った。
書くの手伝ってくれ。
http://goo.gl/9UG1y
270デフォルトの名無しさん:2012/03/20(火) 09:24:17.53
>>269
なんでいきなりFreeBSDやねん!
271デフォルトの名無しさん:2012/03/20(火) 23:06:53.00
F#/monoを扱うなら解るようにした方がよいかも?
そして、MonoとF#のインストールの関係で、Linux or OSX, FreeBSDの順で情報がない気がする。
使い始められればそんなに変わんないと思うけど。
272デフォルトの名無しさん:2012/03/25(日) 18:09:42.02
code quotationとtype providerを組合わせたらlisp macroみたいなことができるんです?
273デフォルトの名無しさん:2012/03/28(水) 05:53:43.99
何でこんなに過疎ってるんです?
274デフォルトの名無しさん:2012/03/28(水) 08:57:57.00
世の中が変態ばかりだったら困るだろ?
275デフォルトの名無しさん:2012/03/28(水) 22:12:22.72
LISP Haskell Scalaなんかは変態ばかりでも伸びてるんで
むしろ変態へのアピールが足りてないが正しい

関数型がいいといっても.netならC#、
いざ関数型の勉強だ、ってF#にするくらいなら他の言語に目移りするわけだ
もはや言語ヲタを引きつける言語としての魅力、が欠けてるのははっきりしたと思う
それでもF#好きなのは変態のさらに変態?いやいやただのマイノリティ
>F#にするくらいなら他の言語に目移りするわけだ

ごめ、なにを根拠に光入ってるのか意味不(´・ω・`)
F#いいよー
公式フォーラムも、あんまり使われてないね。
http://social.msdn.microsoft.com/Forums/en-US/fsharpgeneralja/threads?sort=lastpostdesc
ただ、かの名古屋の地ではocaml, F#, scalaを受託環境にあわせて使い分けてると聞く。
いまだとblogやtwitterなら答え返って来ることもあるよ。

英語が苦にならないなら活発なフォーラムがあるので無問題。
http://social.msdn.microsoft.com/Forums/en-US/fsharpgeneral/threads?sort=lastpostdesc
http://stackoverflow.com/questions/tagged/f%23
( http://cs.hubfs.net/topic-tag/0/1/f~23 )
OCamlも道連れで寂れてるし
D言語スレなんて誰が使ってるかさっぱりわからんが未だに書き込みあるからなあ
まあ粘着質な人が少ないんだね
関数言語厨が.net環境ででも関数型ぽいことをしたくて使う言語だわ
とりあえずF#じゃなくてC#を使わないといけない理由が殆ど無いのでF#ばかり使ってます(´・ω・`)
デザイナー等C#必須であれば、F#のモジュールと混在って感じですね。
PortableLibraryに期待(´∀`∩)↑age↑
>>273
Haskellスレも概ねそうなんだが、簡単に関数を自作出来ちゃうから、「こう言う事したいんだけど、どう書けば良い?」みたいな質問はほとんど無い
自分も、Haskellスレで質問したのは練習問題でリスト内包表記でこう言う関数を書けって問題の時だけだったし
変に制限付くとどう書けばいいのか分からなくなる事はあっても、制限なしだと、割と初心者でも関数書くのに困ること無いのが関数型言語の良い所だと個人的には思ってる
オブジェクト指向言語だと、オブジェクト自作するのは意外と面倒だし、メソッド覚えれば、ある意味じゃ関数型言語よりも簡潔なんだけど、リファレンスと睨めっこしてメソッド覚える必要がある
(なので、こう言う処理するメソッド無い?とかの質問がオブジェクト指向言語のスレでは絶えないんだと思う)
とりあえず、なごやこわい
283営利利用に関するLR審議中@詳細は自治スレへ:2012/03/31(土) 06:35:15.28
F#でWindowsPhoneの開発をしたいんですが
Visual Studio 2010 Express for Windows Phoneじゃ無理なんでしょうか?
http://visualstudiogallery.msdn.microsoft.com/17454c58-c1d9-4640-afe1-7943db13891e/
Visual Studio 2010 Professionalがないと開発出来ないんですかね?
>>283
「visual studio 2010 express f#」でググったら、先頭のページに
Visual Studio 2010 ExpressにMicrosoft F# CTPを組み込む方法と
すでにF# April 2011 CTPが出ている事が書いてありました。

Visual F# Express Edition の入手方法
http://d.hatena.ne.jp/Nobuhisa/20100905/1283678443
無償環境だと、F#はVS Shell、WPはVS C# Expressに結びつく。
そして、F#を通常のVSに結びつけるのには、ExpressではなくProfessional以上じゃないといけないはず。
286営利利用に関するLR審議中@詳細は自治スレへ:2012/04/01(日) 05:19:32.41
ありがとうございます
つまり、無償ではF#でWindowsPhoneの開発は出来ないって事でいいですか?
>>286
IDE使わなきゃ出来るでしょ。
イデの力は使うべき
イデに取り込まれるぞ
shellとC# expressをバラバラに使って、開発は出来るので、
F#でportableなライブラリーつくって、UIはC#かな。
293デフォルトの名無しさん:2012/05/02(水) 13:05:02.14
webページの日本語をパースするスクリプトを
f# + .netで作ってみるお
294デフォルトの名無しさん:2012/05/02(水) 21:52:39.46
がんばれ
295デフォルトの名無しさん:2012/05/11(金) 07:25:02.60
複数のファイル作ったらネームスペースを書けと言われるし
ネームスペース書いたら中に値を置くなと言われるし
296デフォルトの名無しさん:2012/05/11(金) 09:49:01.82
嫌ならC#にかえるしか(´・ω・`)
297デフォルトの名無しさん:2012/05/12(土) 10:51:30.16
デフォルトで前方参照ができないとか、まるで20年前の言語のようだ

Scalaと比べると見劣りするなぁ
298デフォルトの名無しさん:2012/05/14(月) 00:50:46.94
>Scalaと比べると見劣りするなぁ
うわー。言うよねー、Scalaの人って、こういうこと。
299デフォルトの名無しさん:2012/05/14(月) 16:26:01.35
Scalaは型推論がショボすぎる時点でない(´・ω・`)
300デフォルトの名無しさん:2012/05/17(木) 00:55:43.23
やはりBetter Javaではなあ…
今までJavaをやって来て超アンチMSだったので
F#の方が逆に新鮮w
301デフォルトの名無しさん:2012/05/17(木) 08:55:12.22
by far much better Java だけどね。
302デフォルトの名無しさん:2012/05/17(木) 09:26:13.63
F#ってBetter Javaだったの!?
303デフォルトの名無しさん:2012/05/17(木) 09:30:51.75
Scalaがってことでしょ。
304デフォルトの名無しさん:2012/05/18(金) 11:15:27.50
今までJavaをやって来て超アンチMSだったので( ・`ω・´)キリキリッ
305デフォルトの名無しさん:2012/05/19(土) 10:24:38.34
前方参照できないのと型推論がショボイのさあどっち!
306デフォルトの名無しさん:2012/05/19(土) 10:39:36.45
JAVAかMS(win)かでしょやっぱ
307デフォルトの名無しさん:2012/05/19(土) 11:26:06.56
JavaじゃなくてOracle
308デフォルトの名無しさん:2012/06/20(水) 16:50:25.33
F#のほーがセンスイイよ
309デフォルトの名無しさん:2012/06/20(水) 17:54:28.48
主婦の7割が「韓国タレントは嫌い」 地銀シンクタンクが調査した実態とは

日本でのK-POPブームに陰りが見え始めたとも指摘される昨今だが、それでも新たなグループが続々と日本進出している。
今年に入ってからだけでも日韓同時デビューのA-JAX、吉本興業系のレーベルから日本デビューするMYNAME(マイネーム)、
さらには「K-POP最後の大物」との触れ込みで7月にデビュー予定のWonder Girls(ワンダーガールズ)など、相変わらずの
「雨後のたけのこ」状態。それほどまでに日本市場はK-POPにとってオイシイのか、そして本当にK-POPは日本で売れてい
るのか。その実態を探ってみた。

 大垣共立銀行(岐阜)系列のシンクタンクである共立総合研究所による「韓流消費に関するアンケート」の調査結果に、
実に興味深い調査結果がレポートされている。なんと、アンケートに回答した主婦の7割が「韓流は好きではない」との結果だったのだ。

 同研究所は<K-POPの台頭、食品、コスメをはじめとする韓国製商品ブームのマスコミでの取り上げ方、新聞の テレビ欄における
韓国ドラマの占有状況からかなりの盛り上がりを予想したが、結果は予想を下回るものであった>と、調査レポートを結んでいる。

結局、K-POPブームとは単にKARAと少女時代という個別グループのブレイクにすぎず、やはり実体などなかったということか。

http://uramono.org/entertainment/2576.html
http://uramono.org/uploads/2012/06/kara.jpg
310デフォルトの名無しさん:2012/06/25(月) 18:06:48.86
下のようなコードでF#3.0だと両方呼べるんだが、
let y = (^a : (member talk: unit -> string) (a))
ってどういう仕組みなん?
ちなみに
let y = (^a : (member talk: int -> string) (a))
だと"2式が必要ですが、1が指定されました”と言われてエラーになる

let inline speak (a: ^a) =
let x = (^a : (member Name: string) (a))
printfn "I'm %s" x
let y = (^a : (member talk: unit -> string) (a))
printfn "I say %s" y

type Duck =
{ Name : string }

member x.talk() = "quackity quack"

type Dog(name) =
member x.Name = name
member x.talk() = "arrrr"
311デフォルトの名無しさん:2012/06/25(月) 18:18:39.27
unit -> string というメンバ「talk」を持っている型 ^a に対して、a という変数を渡してその関数を呼び出してます。

let y = (^a : (member talk: int -> string) (a))
がエラーになるのは、int -> string な ^a 型の関数に対して ^a 型の変数しか渡してないから。
let y = (^a : (member talk: int -> string) (a, 42))
のように、int 渡してあげればいいはずですよ、っと。
312311:2012/06/25(月) 18:22:12.77
ちなみにインデント重要なので元コードへのポインタ貼っときますね
https://gist.github.com/2964839

もしコピペするんであればlignt syntax使わずに書き直した方がいいかもです。
313311:2012/06/25(月) 18:24:21.04
> 282
なごやいいとこいちどはおいで!
314デフォルトの名無しさん:2012/06/25(月) 21:09:21.93
>>312
operatorに使えるのは知ってたんですが、普通のメソッドにも使えるのは知らなんだ。
315デフォルトの名無しさん:2012/07/09(月) 00:41:53.18
316デフォルトの名無しさん:2012/07/13(金) 21:56:44.17
317デフォルトの名無しさん:2012/07/23(月) 15:59:04.70
F#すこぶる評価いいねえ
318デフォルトの名無しさん:2012/07/23(月) 21:33:41.50
319デフォルトの名無しさん:2012/07/23(月) 21:37:38.22
320デフォルトの名無しさん:2012/07/23(月) 22:01:26.20
>>317
しかし、ぜんぜんスレが伸びないw
321デフォルトの名無しさん:2012/08/25(土) 19:33:41.01
F#がこの先生きのこるには
322デフォルトの名無しさん:2012/09/01(土) 12:57:08.28
surfaceが爆発的に普及すれば.net基盤だからF#にも出番ある
323デフォルトの名無しさん:2012/09/18(火) 21:41:33.61
OCamlを勉強してて色々モヤモヤした部分があったけど、
F#で不満だった部分がかなり解消されてて驚いたわ
マイクロソフトさんありがとう、今まで悪口言ってすみませんでした
324デフォルトの名無しさん:2012/09/18(火) 22:20:15.65
具体的に
325デフォルトの名無しさん:2012/09/19(水) 11:08:31.77
>>322
いやsurface、別に.NET基盤じゃないから。.NET(Core)でも開発できるというだけで。むしろF#ではportable libraryとしてしかアプリ開発に使えないというように虐げられてるw
>>323
まず日本語をなおせ。OCamlで不満だったものがF#で改善されてた言うことか?
326デフォルトの名無しさん:2012/09/19(水) 11:17:06.59
さすが読解力ないわ
327デフォルトの名無しさん:2012/09/19(水) 11:39:35.37
無駄な煽りしかできない知障は引っ込めですぅ
328デフォルトの名無しさん:2012/09/19(水) 11:55:07.05
>323は曖昧な書き方してるけど、理解できるよね。
問題になるとしたら規格書とか論文とかぐらいでしょ。
329デフォルトの名無しさん:2012/09/19(水) 12:16:11.33
読解力無いというのは、文章から本来の意図を読み取れないという意味だが、>>325はなにか間違ってるのか?
330デフォルトの名無しさん:2012/09/19(水) 13:19:43.06
F#erは煽りに弱い、と。。。
331デフォルトの名無しさん:2012/09/28(金) 14:07:58.33
過疎の場所でわざわざ煽る奴はアンチじゃないからね
盛り上がって欲しいだけなんだよ
332デフォルトの名無しさん:2012/10/03(水) 08:14:04.25
http://www.lexifi.com/ml2012/
MLワークショップ2012

対象言語にF#もあったけど、F#の発表はType providerのチュートリアルだけみたい。スライドが見やすい。
http://www.lexifi.com/ml2012/slides_petricek.pdf
333デフォルトの名無しさん:2012/10/17(水) 01:41:52.00
Announcing the F# 3.0 Open Source Code Drop - Visual F# Team Blog - Site Home - MSDN Blogs
http://blogs.msdn.com/b/fsharpteam/archive/2012/09/24/announcing-the-f-3-0-open-source-code-drop.aspx
334デフォルトの名無しさん:2012/10/23(火) 03:15:53.95
開発陣に中国人がいるからオワコン
F#でソフト作ったら情報駄々漏れ
335デフォルトの名無しさん:2012/10/24(水) 22:59:42.32
http://tirania.org/blog/archive/2012/Oct-22.html
Mono3.0 OSX版は、F#3.0バンドル予定みたい。
winやlinuxは別途いれないといかんのかな?
336デフォルトの名無しさん:2012/10/24(水) 23:05:44.37
http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=fsharp&lang2=csharp
Ubuntuでも(ソースからビルドかもしれないが)動いてるようだ。
337デフォルトの名無しさん:2012/10/25(木) 09:20:07.77
F# OPEN SOURCE GROUP @ GITHUB
http://fsharp.github.com/

Using F# across platforms (HTML5, Linux, Mac/OSX, Android, GPU, ...)
http://fsxplat.codeplex.com/

オープンソース版、Monoの最新版で動くように修正してるのか。
環境依存するのは有志の協力が必要なんだろうけど。
338デフォルトの名無しさん:2012/11/04(日) 12:22:20.08
expressでもF#が統合出来る(vs2010ではvs shellのみだった)ようになったと聞いて、はじめから一緒に付いてくるのかと思ったら
Web Platform Installerから別にインストール必要があった。
http://blogs.msdn.com/b/fsharpteam/archive/2012/09/12/announcing-the-release-of-f-tools-for-visual-studio-express-2012-for-web.aspx
339デフォルトの名無しさん:2012/11/04(日) 12:25:51.17
Microsoft、「Visual Studio Express」でF#言語を利用可能にするアドインを公開
http://m.forest.watch.impress.co.jp/docs/news/20120913_559448.html
340デフォルトの名無しさん:2012/11/18(日) 13:16:39.14
Expressだとポータブルライブラリ作れないのか…
341デフォルトの名無しさん:2012/11/22(木) 00:20:13.62
おまいらFsharpxとか見てる?(´・ω・`)
342デフォルトの名無しさん:2012/11/22(木) 00:38:05.96
http://fsharp.github.com/fsharpx/
いみゅーたぶるとモナモナ?とかとおもったら、
F#3.0向けにいろんなTypeProviderやHTTPみたいなツールもあるんだな。
343デフォルトの名無しさん:2012/11/22(木) 00:46:02.95
F#3.0 (オープンソース版)がmono3.0(のosx版たけ?)でビルドできて動いてるみたい。
http://fsxplat.codeplex.com/wikipage?title=FSharpMac

>>335
まだ、betaではmono3.0にバンドルされてないみたい。
344デフォルトの名無しさん:2012/11/22(木) 00:58:36.44
オープンソース版の最新情報が更新されてた。
http://fsxplat.codeplex.com/documentation
linuxでもF#3.0 okで、WebShaper使うとhtml経由でクライアントサイドでもF# 3.0動くのか。

WebShaperって昔は商用しかなかったと思ったけど、
最近はAGPL3と商用$499-が選べるようになってた。
http://www.websharper.com/home
345デフォルトの名無しさん:2012/11/22(木) 01:03:08.22
http://atnd.org/events/33927
今年もアドベントカレンダーやるんだ。
タイムリーに、F#3.0とosx/linux/android/webshaperのネタあるといいなあ。
346デフォルトの名無しさん:2012/11/22(木) 01:10:00.70
アドベントカレンダーって何ですか?
347デフォルトの名無しさん:2012/11/22(木) 23:20:55.75
>>344
クライアントサイドではjavascriptとして動くからF#って言うとちと語弊が(´・ω・`) 
348デフォルトの名無しさん:2012/11/23(金) 00:54:41.43
haxe, ocamljs, clojurescriptみたいなもんかな?
349デフォルトの名無しさん:2012/11/23(金) 01:32:13.96
>>348
そんな感じだね。
基本はjsコンパイラで後はサーバーとのやり取りを書きやすく出来る仕組みがある感じかしら。
サンプルでチャートアプリ作ったけどF#で書いたロジックがさっくりと動いたよ。
でも情報が少ないから実際の製品での使用はちょっと躊躇しそう。
350デフォルトの名無しさん:2012/11/23(金) 23:14:03.09
WebShaperとは別にPitっていう
F# to jsのコンパイラがあるのか。

githubのtopのプロジェクトリストにものってるがどんなものなんだろう。
http://fsharp.github.com/
351デフォルトの名無しさん:2012/11/24(土) 08:31:53.59
F#でportable libraryのライブラリーを使う際に問題があるって話出てたんだがこれ今もそのままかな?
よく見てないんだが前にコンパイル出来てたRxのプロジェクトが確かにコンパイル出来てない希ガス。

http://social.msdn.microsoft.com/Forums/en-US/rx/thread/e64bbb9e-c273-4cce-9d42-8d52fbc0e654
352デフォルトの名無しさん:2012/11/24(土) 08:34:14.30
>>350
WebSharperの方が商用のものを切りとってオプソにしてるからクオリティ高そうなイメージ(´・ω・`) 
353デフォルトの名無しさん:2012/11/27(火) 00:11:22.61
ちょうどオライリーでWeb向けの本だしてる。薄いやつけど。

Building Web, Cloud, and Mobile Solutions with F#
By Daniel Mohl
Publisher: O'Reilly Media
Released: November 2012
Pages: 176
http://shop.oreilly.com/product/0636920026099.do
354デフォルトの名無しさん:2012/12/04(火) 10:16:01.56
>>353
それ、最近の技術さっくりと触れてるので良いよ。F#での書き方の参考になって良い。関数型としてのことはそんなに深くは突っ込んでないけど。
355デフォルトの名無しさん:2012/12/22(土) 01:06:09.92
http://tomasp.net/blog/manning-deep-dives.aspx
The book consists of 5 parts that cover the most common real-world uses of F#:
Developing of Analytical Components, Processing and Analyzing Data, Creating End-user Applications and F# in the Larger Context.

There is an increasing number of commercial F# applications. If you want to learn about the domains
where F# can make you more productive and help you to write correct code, or if you want to learn how F# experts approach different problems, then the upcoming F# Deep Dives book is the book for you!
356デフォルトの名無しさん:2012/12/22(土) 01:09:34.04
洋書だと、二冊のF#2.0本もF#3.0本にアップデートされた以外にも実用本が増えてきたね。
357デフォルトの名無しさん:2012/12/24(月) 14:17:42.43
>353-354
著者のブログで出版のお知らせ
http://bloggemdano.blogspot.jp/2012/12/buiilding-web-cloud-and-mobile.html
サンプルコード
http://dmohl.github.com/fs-web-cloud-mobile/

Kindle版が、オライリーの電子版の半額になってる。半額クーポンの時と同じ値段か。
358デフォルトの名無しさん:2012/12/24(月) 22:07:37.47
'a list list を 'a list にしたいんだけど、どうすればいいの?
Linq の SelectMany したいわけなんだけど。
359デフォルトの名無しさん:2012/12/24(月) 22:38:04.70
>> 358
list |> List.collect id
としてみてはいかがでしょうか?
360358:2012/12/25(火) 08:40:21.42
ありがとう
361デフォルトの名無しさん:2013/01/23(水) 00:29:00.59
POPL2013でF#のワークショップがあったみたいで
関数型プログラマーのひとが参加して
webshaperやtryfsharpなどいろいろな面に驚いてるな。
あまり日本では、取り上げられないので羨ましいかも。
362デフォルトの名無しさん:2013/01/23(水) 00:33:31.51
Data Driven Functional Programming Workshop 2013
Co-Located with POPL 2013 | January 22, 2013 | Rome, Italy
http://research.microsoft.com/apps/mobile/showpage.aspx?page=/en-us/events/ddfp2013/

うぉ、ローマいってんのか。羨ましい、、、
363デフォルトの名無しさん:2013/01/29(火) 11:06:33.39
日本どころか世界的に過疎ってんじゃん
hubfsもなんか見づらくなっとるし・・・
364デフォルトの名無しさん:2013/01/29(火) 20:16:12.35
F#をちょっといじってみたけど
GUI作り辛いし、GUI作ろうとするとあまり関数型っぽくないしで、
本格的に利用しようとすると微妙だな
遊ぶには面白そうだけど
365デフォルトの名無しさん:2013/01/29(火) 22:08:06.81
>>364
何つーかどこから突っ込んでいいのかわからんわ( ´Д`)y━・~~
366デフォルトの名無しさん:2013/01/29(火) 22:36:35.46
突っ込めよ
367デフォルトの名無しさん:2013/01/31(木) 01:11:10.42
056 [2009/06/24(水) 21:07:53] デフォルトの名無しさん <sage>

F#>Java いずれこうなるから安心しろ。

まあJ#は超えたな
368デフォルトの名無しさん:2013/01/31(木) 19:37:16.95
scalaにも当てはまると思うが
関数型風にも書けるというマルチパラダイムは
結果的にいろんな書き方を覚えなければならないし、
そのいろんな書き方、ってのも癖があって覚えにくい
そのせいでF#らしさというものが希薄になってる、というのが欠点

これがマルチパラダイムの末路だ
結局は、限られた書き慣れてる書き方しかしないんだもんな
369デフォルトの名無しさん:2013/01/31(木) 20:43:23.36
そんな自分の無能さを声高に言われても困ります。
370デフォルトの名無しさん:2013/02/01(金) 22:54:27.13
GUIはC#とXAML、ロジックはF#でいいのでは。
371デフォルトの名無しさん:2013/02/01(金) 22:55:19.34
GUIは、というのは支援ツールがあるという意味で。
372デフォルトの名無しさん:2013/02/02(土) 10:34:18.44
GUIをF#で作るのは、C#のデザイナで作ってF#にコピペする作業だから空しい
373デフォルトの名無しさん:2013/02/11(月) 22:50:03.36
F#って何に剥いてるの
374デフォルトの名無しさん:2013/02/11(月) 22:53:25.09
包茎の童貞
375デフォルトの名無しさん:2013/02/13(水) 13:20:44.23
まさにオナニーに向いているんだろうな

知的好奇心と言えば聞こえはいいが
ようするに自己満足
モノを生み出してナンボでしょ
376デフォルトの名無しさん:2013/02/13(水) 14:38:03.45
そのモノを生み出すのにF#はC#より遥かに長けてるんだが…情弱乙(´・ω・`)
377デフォルトの名無しさん:2013/02/13(水) 18:55:43.08
で、その生み出されたモノの例をあげてくれるかなぁ
378デフォルトの名無しさん:2013/02/13(水) 20:18:11.82
は?F#使ってる人たちは、C#を使ってやるのと同じように仕事なりなんなりでプログラム書いてるだけだと思うけど。
その際に生産性がいいってだけだよ?
なにかF#や関数型を特別な魔法か何かのようにとらえすぎなんじゃね?
379デフォルトの名無しさん:2013/02/14(木) 07:17:59.45
>>377
仕事でバッチファイルの代わりに.fsxでスクリプトを書いてます
インテリセンスが効くのと、Mainクラス作らなくても頭から実行してくれるので
型推論があるので動的型のように書けるところも好きです
380デフォルトの名無しさん:2013/02/14(木) 07:37:25.07
Cygwin入れてPythonなりRubyなり使った方が早くね
381デフォルトの名無しさん:2013/02/14(木) 07:58:04.93
>>380
そんな動的型要らんわ( ´Д`)y━・~~
382デフォルトの名無しさん:2013/02/14(木) 12:25:55.36
>>380
インテリセンスは静的型じゃないと難しいのでは?
普段はC#使いなのですが、.NETとVisualStudioがそのまま使えるっていうのも大きいです
それにVisualStudioがインストールされている環境ならC#と違ってビルド不要で.fsxファイル一つで動きますし
383デフォルトの名無しさん:2013/02/14(木) 21:36:47.85
Python Tools for Visual Studio
384デフォルトの名無しさん:2013/02/14(木) 21:46:47.92
Typescript
385デフォルトの名無しさん:2013/02/14(木) 23:17:39.19
なるほどね
確かにインテリセンスは大きいか
386デフォルトの名無しさん:2013/02/18(月) 17:51:00.05
こんなのあるのね
http://exselt.net/

何に使うかわからんようなソフトではなく
XSLT 3.0 プロセッサとか実現したら一気にキラーアプリやで

ただダウンロードすらうまくできないのが弱点。
387デフォルトの名無しさん:2013/02/18(月) 23:01:34.10
XSLTはまだ息の根止まってなかったのか。驚いた
388デフォルトの名無しさん:2013/02/18(月) 23:57:58.21
昔MSのサイトのRSSにXSLTが付いてたのを覚えてる。
389デフォルトの名無しさん:2013/02/22(金) 02:26:32.53
BigIntegerと再帰を使ったフィボナッチ数列がC#より簡単にかける
.netにBigIntegerが入ったとかいう話があった気がするが
まあここの時間止まってるようなもんだから
390デフォルトの名無しさん:2013/02/22(金) 10:17:28.31
Linq to ObjectあるからF#いらないですよね?
391デフォルトの名無しさん:2013/02/22(金) 10:55:28.20
むしろF#あればC#はいらないが正しい( ゚Д゚)y─┛~~
392デフォルトの名無しさん:2013/02/23(土) 13:40:44.54
VisualStudioのリファクタリングはC#と比べると雑魚だよね
393デフォルトの名無しさん:2013/02/23(土) 14:56:47.28
F#やってみて、階乗から始まってフィボナッチ、ハノイの塔、クイックソート
正規表現抹茶あたり組んでみたけど、なんか飽きちゃったなあ。
なんか面白いテーマないかな。

プログラマとして勉強になるのかな、と思ってたけど、CでもRubyでもできるよ
ねこんなのは。>>3
394デフォルトの名無しさん:2013/02/23(土) 15:12:30.25
入力補完がC#並みなら最高なんだが・・・
395デフォルトの名無しさん:2013/02/23(土) 15:31:00.16
>>393
そんなん、ただ再帰を使ってるだけやん。
関数型のかのじも使ってないぞそれ。
396デフォルトの名無しさん:2013/02/23(土) 15:40:08.94
それコピペだよ
397デフォルトの名無しさん:2013/02/23(土) 16:23:42.54
C#に対するF#の利点は、やはり代数的データ型だと思うんだよな。
代数的データ型の何がいいかって言うと、もちろん宣言的に値の分解ができるからプログラムが読みやすいっていうこともあるんだけど、
データに対する操作の追加が簡単だという利点があると思う。
まぁ、C#でもis演算子かvisitor使えばいいんだけどさ、is演算子だと網羅性チェックしないから書き忘れしやすいし、
visitorは、まぁC#だとlambdaがあるから楽かもしれないけど、でもちょっと面倒くさいし。
それで、代数的データ型がマッチするタスクは何かって言うと、
http://ymotongpoo.hatenablog.com/entry/20111105/1320506449
これのconnection_state型みたいに、いろんなところで使えるものだとは思うんだけど、
一番目立つのはコンパイラ作成の用途かね。C#だとサブクラス作りまくりになる。
実践プログラミングDSLに金融取引を記述するための外部DSLを作る章があったけど、ああいうの。
でもまぁ
http://tomschrijvers.blogspot.jp/2012/12/haskell-tsuru-capital.html
こういう金融ベンチャーっぽいところだと活用してるんだろうけど、普通のプログラマだと活用する機会は少ないだろうなw
398デフォルトの名無しさん:2013/02/23(土) 17:39:24.06
C#との比較で見たときにキャッチーに利点を説明できる要素
ならまあ代数的データ型ですねぇ。

自動実装プロパティに初期値を与えられるのとかも地味に便利。

member val Count = 0 with get, set
399デフォルトの名無しさん:2013/02/24(日) 09:07:24.31
RoslynでC# REPLが可能になったらF#オワコンですよね
400デフォルトの名無しさん:2013/02/24(日) 09:54:11.59
>>399
せめてまともな型推論を実装してから出直してくれ。

F#並の簡潔な記述
代数データ型とパターンマッチング
REPL
モナドサポート
イミュータブルデフォルト

最低でもこの辺が出来ないことには話にならない( ´Д`)y━・~~
401デフォルトの名無しさん:2013/02/24(日) 14:05:13.15
REPLとかいらないけど、他の4つはC#でもホント欲しいな
402デフォルトの名無しさん:2013/02/24(日) 22:12:05.46
C#のREPLは昔からmonoにはあった。
用途も増えてるようで、最近改良してるみたい。
http://tirania.org/blog/archive/2011/Feb-24.html
http://www.mono-project.com/Release_Notes_Mono_3.0

mono関連で構文解析もMonoDevelop(IDE)のコード支援に使ってるやつがすでにある。
https://github.com/icsharpcode/NRefactory

逆にF#はMSRがオープンソース版を用意してるので、MonoDevelop用プラグインだけMono関連で作られている。
403デフォルトの名無しさん:2013/03/06(水) 19:30:36.08
#light "off"にして、あと警告がある場合はコンパイル通らない設定にして使ってる。
しかし、F#の構文だと関数適用時のインテリセンスが微妙…。
404デフォルトの名無しさん:2013/03/11(月) 18:45:28.36
「ビッグデータの世界でF#が大流行、
研究者の心を鷲掴みする謎のプログラミング言語」

ってマジ?
405デフォルトの名無しさん:2013/03/11(月) 18:55:08.71
タイトルが変
406デフォルトの名無しさん:2013/03/11(月) 21:55:23.57
>>404
流行しているというか
MicrosoftがBig Dataサイエンティスト界隈に
流行させようと画策しているというのが正しい。

http://www.infoq.com/presentations/F-Sharp-Big-Data-Scripting
bigdataは一回のクエリに時間がかかるので
codeのバグで時間をロスしやすい。
そしてcodeは書き捨てであることが多い。
このようなタスクにはType Providerという
データスキーマの定義を元にクエリの型チェックやインテリセンスを行える機能
を持つF#が適している。
407デフォルトの名無しさん:2013/03/11(月) 23:06:06.63
>>406
まぁ実際にサイエンティストから好評らしいけど
408デフォルトの名無しさん:2013/03/12(火) 00:32:06.37
OCamlの一種としては悪くない処理系だし、
MLユーザーは少々の方言は気にしない。
409デフォルトの名無しさん:2013/03/12(火) 07:14:16.74
F#だと複雑なロジックがこんなに簡単にかける系のリンクってない?
410デフォルトの名無しさん:2013/03/12(火) 16:59:56.81
F#にしたら息子が大学に合格しました
411デフォルトの名無しさん:2013/03/12(火) 17:05:28.24
>>410
Fランクよりちょっといいぐらいの大学ですね。おめでとうございます
412デフォルトの名無しさん:2013/03/12(火) 17:15:20.19
F#がセクシーすぎて息子が大きくなりました
413デフォルトの名無しさん:2013/03/12(火) 18:49:33.85
>>410
F# snippetでググれ
414デフォルトの名無しさん:2013/03/12(火) 19:46:10.30
>>408
MLに派生と方言以外の何があるというのだ
415デフォルトの名無しさん:2013/03/13(水) 01:19:20.57
名前にスタンダードが付いてるMLあるよね。
416デフォルトの名無しさん:2013/03/16(土) 14:07:06.68
とりあえずGUIはC#でとか言ってるうちは流行らんな
417デフォルトの名無しさん:2013/03/17(日) 00:00:06.57
いくら糞レスで埋めようがにぎわってねえからな
勘違いすんじゃねえぞ
418デフォルトの名無しさん:2013/03/17(日) 01:07:49.88
http://fsharp.github.com/fsharpbinding/
monodevelop以外にも、emacs、vim向けのIDE環境の準備中なんだな。

Monoは、Mono 2.xから3.x、Monodevelop 3.xから4.xに移行中で、F#3.0もちょうど狭間にある感じだな。
そして、Xamarin Studio 4.0向けのコンパイル済みプラグインがここにあった。
http://atsushieno.hatenablog.com/entry/2013/02/21/151834
419デフォルトの名無しさん:2013/04/02(火) 01:09:23.44
420デフォルトの名無しさん:2013/04/02(火) 02:16:28.77
letって何かの略?障害?
許可じゃimmutable的に意味逆になるだろうし
421デフォルトの名無しさん:2013/04/02(火) 13:43:16.63
辞書引けば書いてるだろ数学用語だよ
422デフォルトの名無しさん:2013/04/03(水) 10:03:00.29
F#の本ヌレおしえたもれ
423デフォルトの名無しさん:2013/04/03(水) 12:39:13.08
どうしてこうなった
424デフォルトの名無しさん:2013/04/03(水) 22:16:19.55
本国はTryF#作るまでやる気あるのに
MS日本法人のほういつまでも翻訳せず
やる気が感じられないからしょうがない

英語読めないヤツのほうがもっとやる気ない
とかいうのは無し
425デフォルトの名無しさん:2013/04/04(木) 23:16:38.72
F#は全社で取り組んむべき題材ではないということだろうな。
いちおう詳しいMSの日本人もいるのかな?
426デフォルトの名無しさん:2013/04/06(土) 09:55:55.45
MS Research製だから、日本にMSR支部がないのがまんま影響してんじゃないかね。
427デフォルトの名無しさん:2013/04/07(日) 05:35:12.80
TryF#を2ページくらいやったけど
他のプログラミング言語やってないと辛い
4歳児よくできたな・・
428デフォルトの名無しさん:2013/04/12(金) 15:08:15.32
プログラミングF#3.0早く出ないかなー
429デフォルトの名無しさん:2013/04/29(月) 19:55:54.92
真のサイエンティストはF#じゃなくていまだにFortran使ってるけど
430デフォルトの名無しさん:2013/05/09(木) 15:15:17.55
エクスプローラ上でfsxファイルを右クリックするとRun With F# Interactiveで直接実行できるわけですが
同じようにVS 2010上のfsxファイルを直接実行する方法ってありますか?
F# Interactiveウインドウにfsxファイルをドロップするだけで動いたりしたら嬉しいのですが・・・
431デフォルトの名無しさん:2013/05/10(金) 01:07:12.40
VSで常用してる人が多かったらこのスレもっと勢いあるだろうね
432デフォルトの名無しさん:2013/05/20(月) 02:55:30.08
言うまでもないが、F#3.0はxp vista切り捨てのVS2012でしか動かない
最先端に追従してるF#3.0がD言語より語られてないのは皮肉な話だと思う
VS2012スレもようやくVS2010スレの勢いを超えたというのに・・・
433デフォルトの名無しさん:2013/05/20(月) 02:56:39.09
かと言って2.0使い続けてる奴もいないよな?
434デフォルトの名無しさん:2013/05/23(木) 20:59:58.16
時代を先取りしすぎた言語
数年以内に消える
435デフォルトの名無しさん:2013/06/01(土) 11:24:51.60
>>408
HaxeとかOCamlで実装されてるんだっけか…
型推論とか最近の流行なのかしらんけど
436デフォルトの名無しさん:2013/06/06(木) 16:55:01.31
vsに統合されることがゴールで
めでたくvs2010とvs2012に標準搭載されたというのに
語る人が全くいなくなった・・・

vs shellの存在意義が未だによくわからん
そこまでやるならスタンドアロンのコマンドラインツールでいいだろ・・・
437デフォルトの名無しさん:2013/06/06(木) 20:04:10.68
http://blogs.itmedia.co.jp/barbaro/2008/10/delphi-prism-1d.html
一時期、VS ShellがあるとサードパーティのIDE開発のコストが低減されますというねたがあった。
438デフォルトの名無しさん:2013/06/06(木) 21:09:08.17
MSKKの人は「F#とか流行るわけねーだろwwwww」みたいなこと言ってた
え、MSの人がそんなこと言っていいの?とか思ったけどだまってた
439デフォルトの名無しさん:2013/06/06(木) 21:46:31.57
GHC(Haskell処理系)プロジェクトのコアメンバーにMSの研究員がいるんだけど、
彼はF#について、そしてF#の名がMLに贈られたことについてどう思ってるんだろ?
440デフォルトの名無しさん:2013/06/07(金) 00:03:00.45
MSRケンブリッジは魔の巣窟だなー
441デフォルトの名無しさん:2013/06/07(金) 00:12:41.32
MSRには、会社に研究内容制限されず、勲章を運んでくるのがお仕事になるトップ論文投稿者がたくさんいるらしい。
アップルはジョブズがもどったときに全員首切ったという伝承がある。
どちらかというと、Don SymeがわざわざMSのためにF#作ってる理由が知りたい。
442デフォルトの名無しさん:2013/06/15(土) 03:29:35.49
VS2010でF#のプロジェクトに新しいフォルダを作成して追加するにはどうすればいいでしょうか?
443デフォルトの名無しさん:2013/06/16(日) 23:20:19.78
>>442
エクステンションいれないと無理よ(´・ω・`)
444デフォルトの名無しさん:2013/06/17(月) 01:10:42.30
>>443
それを聞いて調べたところF# Project Extenderを入れれば良さそうなのでさっそくいれてみましたが
Enable F# Project Extenderをクリックするとエラーが出たので諦めます(´・ω・`)
445デフォルトの名無しさん:2013/06/21(金) 00:36:35.29
http://funscript.info/
F# Expertは、webレンダリングで得体の知れない仕組み考えるのが好きだな。
446デフォルトの名無しさん:2013/06/29(土) 02:59:07.32
447デフォルトの名無しさん:2013/06/29(土) 07:08:57.35
Named union type fieldsはよさげだなあ
448デフォルトの名無しさん:2013/07/11(木) NY:AN:NY.AN
VS Desktopにも入れてくれないかな
VS Web入れてみたけど訳が判らないよ
449デフォルトの名無しさん:2013/07/12(金) NY:AN:NY.AN
450デフォルトの名無しさん:2013/07/12(金) NY:AN:NY.AN
Scala33位
F#37位

TIOBEで比較するとそれほど差はない
むしろF#のが力強く感じられる
451デフォルトの名無しさん:2013/07/15(月) NY:AN:NY.AN ID:um2YQEwB!
最初moduleでモジュール化してたけど
途中から型や値をパラメータ化したくてclassに変えようとしたら
構文が違いすぎてあと内部classも作れなくて死んだ
452デフォルトの名無しさん:2013/08/05(月) NY:AN:NY.AN
>>450
なにを根拠に力強いんだよ
453452:2013/08/05(月) NY:AN:NY.AN
>>450
22 D 0.567%
23 F# 0.538%
24 Lua 0.531%

34 Haskell 0.349%
35 Erlang 0.344%
36 Prolog 0.334%
37 Scala 0.332%

うーんとしか・・・
454デフォルトの名無しさん:2013/08/06(火) NY:AN:NY.AN
ネタにマジレス
455デフォルトの名無しさん:2013/08/10(土) NY:AN:NY.AN
MonoDevelop+F#Bindingsでコンパイル順の変更ができない…
やる気無さすぎだろこれ
456デフォルトの名無しさん:2013/08/18(日) NY:AN:NY.AN
結局MonoDevelop諦めちゃった…
457デフォルトの名無しさん:2013/08/20(火) NY:AN:NY.AN
>>455
そこらへんは、作者に言わんと永久に治らないかも。
githubで開発してると思うから作業リストには入るだろうし。
>>456
まだベータ版ぐらい?
そう言えば、monodevelopやxamarinstudioだと実行がうまく出来ない環境があって悩むことがある。
458デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
>>457
どっちも同じ人間だよ
git上のFSharpBindingsだと順序変更はできるようになってた
でも新しいMonoDevelopが必要で自前でそれもビルドしたから
設定がとても面倒だった

その後MonoがWinFormsに実質未対応なのに気づいて
それでも他の部分だけと頑張ったけど
IDEそのものが自分には使いづらくて無理だった
F#は素直にVSでやることにした
459デフォルトの名無しさん:2013/09/06(金) 06:21:51.94
具象型にいちいちインターフェース型をキャストすんのめんどくさ!
これ一つづずつ実装するかキャストしないといけないのか?
460デフォルトの名無しさん:2013/09/06(金) 19:49:58.03
実装を意識したくないからインターフェースをはさんでるので
キャストしちゃうと台無しですよ。
461デフォルトの名無しさん:2013/09/06(金) 22:06:13.15
>>460
すみません、逆方向です

let impl :ISome = new Impl() ;> ISome

こんな感じで一旦アップキャストするのが面倒なんです

単にISomeを実装しただけではImpl型でメソッドを呼び出せないので
実装のテストだと例えば3つ実装していた場合、
毎回使用するインターフェイス別にキャストしなくてはいけない
それかImpl自体にそれぞれ同名のメソッドを用意するしかない

他言語ともやりとりするので手軽に注釈なし'a 扱いもできません
私が何かとてつもない勘違いしてるんですかね…?
462デフォルトの名無しさん:2013/09/06(金) 22:08:31.99
セミコロンはtypoです
> let impl :ISome = new Impl() :> ISome
463デフォルトの名無しさん:2013/09/06(金) 22:38:38.48
なんで:ISomeと型を定義してんの?

インターフェースぐらいは暗黙に変換してくれてもいい様には思うが、F#では元々そんなインターフェース使わんからなぁ

Interopするなら別かもですが。
464デフォルトの名無しさん:2013/09/07(土) 03:17:27.69
>>463
>なんで:ISomeと型を定義してんの?
こうしないとメソッドが呼び出せないからですね
でなければ呼び出す度にキャストすることになってしまうので

ただ雰囲気は大体わかりました
F#でクラス使ってOOしちゃいけないみたいですね…
ありがとうございました
465デフォルトの名無しさん:2013/09/07(土) 04:52:09.47
>>464
いや右辺で型決めてんだから、左辺は書く必要無い。
オブジェクト指向もしちゃいけないじゃなくてやる必要が無いだ。

とりあえず関数型とF#勉強してから自分が書いた事を見直してみろ
466デフォルトの名無しさん:2013/09/07(土) 13:33:50.24
>>465
すみませんが、問題にしてるのはキャストですので
可能であればそちらより解決策の提示を願います

>オブジェクト指向もしちゃいけないじゃなくてやる必要が無いだ。
それは現に必要な人間に言っても意味がないです

>とりあえず関数型とF#勉強してから自分が書いた事を見直してみろ
関数型はOCamlもHaskellも使ってます
私は純粋に外部利用のための解決策がないか探っているだけです
467デフォルトの名無しさん:2013/09/07(土) 15:48:57.96
んじゃ好きなだけキャストしてろよw
468デフォルトの名無しさん:2013/09/07(土) 18:21:28.54
>>461
>let impl :ISome = new Impl() ;> ISome
>>465さんも書いてますけど右辺で型が分かるので左辺は必要ないですよ。

>単にISomeを実装しただけではImpl型でメソッドを呼び出せないので
ISome型に定義されてるメソッドは呼び出せます。
ISome型で参照してるならImpl型で追加されたメソッドが
呼び出せないのは当然かと。

ここまで書いといてなんですが
私もF#は勉強中でOOP視点でレスしてます。

間違っている所があれば詳しい方、訂正お願いします。
469デフォルトの名無しさん:2013/09/07(土) 22:36:02.91
>>468
> >>465さんも書いてますけど右辺で型が分かるので左辺は必要ないですよ。
大丈夫ですそこは理解してます
問題としているのは右辺のキャストです

私はレスを「なぜそこで型をキャストするのか」と解釈したので、
変なレスになってしまいました
左辺値の注釈は型推論でつまずくことが多いので癖で書いてます

>ISome型に定義されてるメソッドは呼び出せます。
上でも書いてますが、実装型をnewしても
1. インターフェース型にキャストする
2. インターフェース型を実装したものとは別に
  実装型に同名のメソッドを追加する
このどちらかをしないと同名のメソッドは呼び出せません
これが複数のインターフェースを使うとなるとその都度キャストという事になります
470デフォルトの名無しさん:2013/09/08(日) 11:15:36.34
>>469
インターフェースの明示実装を利用しているため、明示的にキャストしたいということですね。

しかしこの場合、実行させたい関数等にtype hinting付けて、そこで指定したインターフェースのメソッドを呼ばせるべきだと思います。

これは、F#に限らず、C#でも同様です


また、もしそれがコンストラクタである場合も同様に、外部から注入すべきでしょう(依存性反転の原則)。

どうしても呼び出し先で、生成->実行したいのであれば、ローカル関数を経由すればいいと思います。
471デフォルトの名無しさん:2013/09/08(日) 12:14:47.31
>>470
明示的にキャストしたいじゃなくてしたくないんでしょ。

インタフェースのメソッド呼ぶために関数を通させる意味が分からないんだけど、関数型のスタイルに合わせるため?

IHogeにキャストしたいなら、それをするiHとか短い関数作って(iH o).HogeHogeとかでいーんじゃねーの。
そもそもキャストが頻繁に起きるなら設計がおかしいだろ。
同じオブジェクトを各場所で適切なインタフェースとして保持管理出来てるべき。
472デフォルトの名無しさん:2013/09/08(日) 13:05:41.78
>>470
大変参考になりました
特に注釈付き引数について、暗黙の挙動は存じておりませんでした
引数には適用されるんですね

DI部分に関してはもっともな意見だと思います
ただ、実装の確認テストの際に煩雑になるので、
テストしながらの作業では、その手間が惜しいです

そこでほしいのは明示的でないインターフェイス実装か、その代替です
この点はC#では同様ではないと思います

単なるわがままを続けても仕方がないので、これ以上は控えます
レスありがとうございました
473デフォルトの名無しさん:2013/09/08(日) 13:30:14.10
すみません見逃してましたのでもうひとつだけ

>>471
アップキャストは設計上頻繁に起こっても全然おかしくはないです
というより良い設計では何でもインターフェイスにしますよ
逆に特定のインスタンスや型を扱うのは危ないです
474デフォルトの名無しさん:2013/09/08(日) 15:16:04.41
>>473
そうじゃなくて複数のインタフェースを実装して、その場所場所でこのインタフェースを実装してるか的なことをしないといけないのがダメっていってんの。

そうで無ければ具象クラスをそのインターフェースとして扱い始める大元でキャストするだけであって使うたびにキャストがーなんて話はでてこない。
475デフォルトの名無しさん:2013/09/08(日) 18:23:32.98
>>474
もちろん基本的にはそうだと思ってますよ
しかし、書いてるのはインターフェイスとしての扱いでなく、
実装動作そのもののテストコードです
実装クラスのメソッド呼び出しの手間について話しています

ここまで特殊化された物に一つずつインターフェースを書いて
それを使ってという事をする気はありません
なのでダメと言われても困ります
476デフォルトの名無しさん:2013/09/08(日) 18:26:04.95
念の為付け加えますが、インターフェースの要件としてのテストコードは別にあります
問題にしているのは個々の実装クラスの特殊な動作を調べるコードです
477デフォルトの名無しさん:2013/09/08(日) 19:12:41.19
>>475
お前がインターフェースの呼び出しがめんどくさい言ってて今更インタフェースの扱いじゃないってなんなの?

後段のインタフェースを書いてとかも意味分からん。
何したいの?もうめんどくさいから楽なC#でかけば?
478デフォルトの名無しさん:2013/09/08(日) 19:28:18.01
>>477
実装したメソッドを呼び出しするのが面倒だと何度も言ってるでしょう?
本当に理解できてます?わざと言ってるんですか?
479デフォルトの名無しさん:2013/09/08(日) 19:31:50.35
すみませんついカチンと来てしまいました、謝ります
上に書いたとおりの手順でやってみればどういう意味かわかると思います
480デフォルトの名無しさん:2013/09/08(日) 19:53:13.10
すまん。そもそもで恐縮だが、459の人はF#で完全OOPなコードを書こうとしてるの?
481デフォルトの名無しさん:2013/09/08(日) 21:14:51.26
>>479
だからさー
上に書いた通りの手順でとか言われてもエスパーじゃないからわかんねーよ。
せめてアンカーでもつけたら?
お前の質問の仕方は相手にとってどう理解しやすくするかって視点が全てにおいて欠如してんだよ
482デフォルトの名無しさん:2013/09/08(日) 21:28:38.91
こういうのはどう?

type ICounter =
 abstract member Inc : unit -> unit
 abstract member Count : unit -> int

type Counter(seed : int) =
 let mutable cnt = seed
 member this.i = this :> ICounter
 interface ICounter with
  member this.Inc() = cnt <- cnt + 1
  member this.Count() = cnt
483デフォルトの名無しさん:2013/09/09(月) 11:43:41.19
これはにぎわってない
484デフォルトの名無しさん:2013/09/14(土) 17:36:02.70
.net sdkだけでコンパイルできるスタンドアロン環境にしてくり
485デフォルトの名無しさん:2013/09/14(土) 19:01:00.84
fsiやfsc はスタンドアロンでインストールもコンパイルもできるだろ?
486デフォルトの名無しさん:2013/09/15(日) 15:04:09.99
疑問形で言われても。
一般的にはなんとかシェルがいるし裏技は知らん
487デフォルトの名無しさん:2013/09/15(日) 15:04:52.15
>>486
もちろんexpressなんちゃらも入れたくないってことな
488デフォルトの名無しさん:2013/09/15(日) 18:02:07.33
>>486
疑問系ってよりも、お前そんな事も知らんの?って意味の確認だろ。
489デフォルトの名無しさん:2013/09/15(日) 18:13:45.88
unix-monoでF#な俺に死角は無かった
490デフォルトの名無しさん:2013/09/15(日) 21:11:33.10
>>488
なんだ、お前そんなのも知らんのとかいいたいだけのカスか
どんだけこのスレ過疎ってると思ってんだよまったく
そんなんだからF#がこんなかわいそうなことになってんだろ

あげ
491デフォルトの名無しさん:2013/09/15(日) 21:12:22.99
>>488
こんな過疎スレなのにこんな人間のクズしかいないとは哀れすぎる
492デフォルトの名無しさん:2013/09/15(日) 21:18:26.19
そもそもスタンドアロンで使ってる奴がどんだけいるわけ?
なめてんじゃねえよ
493デフォルトの名無しさん:2013/09/15(日) 22:40:19.72
>>490-491 
解説しただけなんだから、俺に言うなよ(´・ω・`)
494デフォルトの名無しさん:2013/09/15(日) 23:08:27.79
>>493
だから解説になってねえんだよバカタレが
なんだ、お前そんなのも知らんのとかいいたいだけのカスか
さっさと消えろ
495デフォルトの名無しさん:2013/09/15(日) 23:10:32.47
>>493
なんだ、お前そんなのも知らんのとかいいたいだけのカス
496デフォルトの名無しさん:2013/09/15(日) 23:13:23.78
>>488
スタンドアロンで使うのがどれだけ普通なのか
わざわざしゃしゃり出てきたお前が解説しろ
497デフォルトの名無しさん:2013/09/16(月) 00:31:15.46
>>494-496
だから>>486でイミフな絡み方してるから日本語の解説してやっただけだろ。
教えてくんならそれらしく下手に出てればいいのに。
>>484でスタンドアロンがいいっていうから>>485がスタンドアロンでインスコできるだろって親切に教えてやって>>486で逆切れしてるながれなのに、スタンドアロン環境が普通かどうかとかってそれ論点じゃねーだろw
塚その日本語能力のなさお前ら同一人物だろwww
情報ないのかと思ってぐぐったら簡単に見つかったけど教えてやらんわ(´・ω・`)
498デフォルトの名無しさん:2013/09/16(月) 02:52:48.07
>>497
迷惑なやつだなおまえ
スレタイ読んで書き込んでんの?
499デフォルトの名無しさん:2013/09/16(月) 02:54:02.20
>>497
いや同一人物ってわかるだろ
どんだけバカなのおまえ・・・
500デフォルトの名無しさん:2013/09/16(月) 02:55:53.81
>>497
> だから>>486でイミフな絡み方してるから日本語の解説してやっただけだろ。
> 教えてくんならそれらしく下手に出てればいいのに。
おまえのがイミフ
日本語の解説ってそういうスレなの?
スレタイ読んでどうしても日本語の解説したかったとか
くだらん頭おかしすぎ
501デフォルトの名無しさん:2013/09/16(月) 02:58:51.30
> 情報ないのかと思ってぐぐったら簡単に見つかったけど教えてやらんわ(´・ω・`)

おまえ・・・やっぱり知らないくせに適当に書き込んでたんじゃん
だからさ俺が知ってるとかじゃなくて
ちゃんと知られてないからマイナーなんだよって言ってんだけど?
相当くずだなおまえも

>塚その日本語能力のなさお前ら同一人物だろwww
これはあたまおかしすぎ
過疎スレの皆さんにごめんなさいしろよゴミ男が
502デフォルトの名無しさん:2013/09/16(月) 02:59:36.35
大事なことなので訂正
× 相当くずだなおまえも
○ 相当くずだなおまえが
503デフォルトの名無しさん:2013/09/16(月) 03:05:58.44
>>484でスタンドアロンがいいっていうから>>485がスタンドアロンでインスコできるだろって親切に教えてやって>>486で逆切れしてるながれなのに、スタンドアロン環境が普通かどうかとかってそれ論点じゃねーだろw

>>485のどこが親切なんだよ
おまえの国じゃこれが親切なのかくずだなすばらしいね
おまえスレ違いすぎだからスレタイよく読んで書き込めカス
スタンドアロンでの使われ方は普通には知られてない裏技的なものだし

それに俺の言いたい論点はこれだけ
>なんだ、お前そんなのも知らんのとかいいたいだけのカスか

おまえみたいに無自覚に迷惑かけてるやつが一番迷惑だからさっさとでてけ
504デフォルトの名無しさん:2013/09/16(月) 03:08:44.77
なんだ、お前そんなのも知らんのとかいいたいだけのカスか
505デフォルトの名無しさん:2013/09/16(月) 03:11:13.20
>fsiやfsc はスタンドアロンでインストールもコンパイルもできるだろ?

これが親切に教えてくれてるとかどういう頭の構造してんだよ
なんだ、お前そんなのも知らんのとかいいたいだけのカスじゃないか
506デフォルトの名無しさん:2013/09/16(月) 11:31:59.04
危ない人に触ってしまった(;´∀`)
507デフォルトの名無しさん:2013/09/16(月) 17:43:47.65
御苦労
508デフォルトの名無しさん:2013/10/02(水) 23:50:05.84
No Starch から F# 本
http://nostarch.com/fsharp
509デフォルトの名無しさん:2013/10/03(木) 09:56:00.15
>>508
ebookは出ないの…かしら(´・ω・`)
510デフォルトの名無しさん:2013/10/03(木) 15:56:47.51
>>509
no scrachならしばらくすればoreilly.comで売られる
511デフォルトの名無しさん:2013/10/03(木) 17:31:38.68
>>510
オライリーにリンクはあったけどまだebookのはなかったぽ。
まだ先そうだし待つわー(´・ω・`)
512デフォルトの名無しさん:2013/10/03(木) 19:25:03.49
>>511
多分正式番でるまでは無理だね
紙も同じだけど
もしかしたらsafariとかは来る可能性あるかな
513デフォルトの名無しさん:2013/10/06(日) 18:17:39.58
igetaさんのIE本買ったけどこれF#でやる必要性あるの?
514デフォルトの名無しさん:2013/10/07(月) 04:37:19.99
>>513
何それ。
515デフォルトの名無しさん:2013/10/07(月) 08:08:19.11
>>514
これ。
http://www.amazon.co.jp/dp/4798039152
今F#のところを読んでたらスクレイピング処理が結構複雑だったから
F#のような高級言語でやる必要性があるかもしれないとは思った。
株価データを扱ってるから、金融の人に興味を持ってもらおうという魂胆?
516デフォルトの名無しさん:2013/10/07(月) 10:21:26.00
あー前つぶやかれてはったなー
中身知らんけど一つの方法としてF#か^が楽ならいいんじゃない?

まぁ誰もその表紙で中にF#が出てくるとは夢にも思うまいに。
517デフォルトの名無しさん:2013/10/07(月) 11:45:29.27
昔はVBAで結構いろんな事やってたんだろうね
今、イチからやるならあえてVBA経由する必要は無いと思うけど
518デフォルトの名無しさん:2013/10/07(月) 19:03:18.88
F#ではじめる金融工学入門、とかなら読んでみたい。
519デフォルトの名無しさん:2013/10/08(火) 22:14:22.67
なんか呼ばれてた。

どうなんでしょうね。著者の方が決めたテーマですから。
僕はそれをコードに落とし込んで原稿にしてってとこを
お手伝いしただけなので。

F# でやる意味、というか、ネタ的な章という位置付けで。
.NET の言語とも連携できるんだよーって紹介でもあり。

なら C# でいいじゃん、ではあるけど、VBA 使いでもある
僕の感覚としては、OOP な C# よりも、モジュール、関数
が書ける F# のが割となじむような気はします。
520デフォルトの名無しさん:2013/10/08(火) 23:02:38.13
その本のF#のページってどのくらいですか?
多少でもF#の勉?になるのかな
521デフォルトの名無しさん:2013/10/08(火) 23:03:17.09
>勉強
522デフォルトの名無しさん:2013/10/08(火) 23:55:38.09
最終章の Chapter11 が F# ネタ。たぶん30ページくらい。

www.shuwasystem.co.jp/products/7980html/3915.html

正直 F# の勉強にはあまり向かないと思います。

あくまで、F# で作った dll を VBA から叩くために COM 相互運用
機能を利用するにはどうやるかに主眼を置いていて、VBA な人にも
F# に興味を持ってもらえたらなあって内容なので。
523デフォルトの名無しさん:2013/10/09(水) 00:37:55.49
なるほど ありがとうございます。
本屋で見かけたらとりあえず少し立ち読みして買うか考えようかな
524デフォルトの名無しさん:2013/10/17(木) 00:15:06.24
525デフォルトの名無しさん:2013/10/17(木) 00:32:17.25
oh...
526デフォルトの名無しさん:2013/10/17(木) 01:01:01.67
だっさー(´・ω・`)
527デフォルトの名無しさん:2013/10/17(木) 01:54:53.72
>>518
http://www.manning.com/petricek2/
この本に"Numerical computing in financial domain"と
"Implementing a trading system"という章が入るみたい
528デフォルトの名無しさん:2013/10/17(木) 13:52:30.11
ブックカバーが必須だな
529デフォルトの名無しさん:2013/10/18(金) 14:00:10.15
>>518
MEAPから見出しを抜粋するとこんな感じ:
4 Numerical computing in finance domain
4.1 Introducing financial derivatives
4.2 Using probability functions of Math.NET
4.2.1 Configuring F# Interactive
4.2.2 Download and Set up Math.NET Numerics
4.2.3 Introducing Random Variables, Expectation and Variance
4.3 Geometric Brownian Motion and Monte Carlo Estimate
4.3.1 Modeling stock prices using geometric Brownian motion
4.3.2 Payoff Function, Discounted Payoff, and Monte Carlo estimate
4.3.3 Analaysing Monte Carlo estimates using variance
4.3.4 Pricing oath-dependent options
4.3.5 Variance reduction using antithetic variates
著者はChao-Jen Chenだそうな。
530デフォルトの名無しさん:2013/10/26(土) 00:51:59.61
type T = [<Leaf>]A | [<Node>]B of T * T
この型Tに対して
let rec size = function A -> 1 | B(x,y) -> 1 + size x + size y
こんなような関数を大量に自動生成したいんだけど
Reflection+CodeDom以外に選択肢ある?
531デフォルトの名無しさん:2013/10/26(土) 15:57:40.32
>>530
直感的に思いつくのはT4だけど、F#プロジェクトではサポートされてないから
T4用にC#かVBのプロジェクトを追加して、そっちで生成したファイルをF#プロジェクトに追加すればいいかもしれない。
stackoverflow.com/a/2199527
532デフォルトの名無しさん:2013/10/26(土) 19:51:58.54
>>531
情報ありがとう
T4はF#だと茨の道くさいからCodeDomで頑張りますわ
533デフォルトの名無しさん:2013/11/21(木) 06:01:23.06
盛り上がってるね。
534デフォルトの名無しさん:2013/11/29(金) 22:07:58.73
535デフォルトの名無しさん:2013/12/08(日) 16:19:46.81
TIOBEで20位入ってる。
周りで流行ってきてる実感ありますか?
536デフォルトの名無しさん:2013/12/08(日) 18:46:21.38
発表当時の方が、順位高かったという、、
msdnでドキュメント公開されたタイミングでのカウントが大きいのかもね。

msdnでF#のドキュメントが日本語になってるのは凄いとおもうが、MSでF#セミナーやってるとか聞かないし、宣伝部隊がいないんじゃないかな?
http://msdn.microsoft.com/ja-jp/library/dd233154.aspx
537デフォルトの名無しさん:2013/12/08(日) 20:16:26.82
VisualStudioで扱える関数型ということで期待したが、
言語仕様が古臭すぎて萎えた。

・ ソースコードのコンパイル順序を指定
・ 基本的に後方参照不可
・ 循環参照にはキーワードが必要

1980年代にタイムスリップした気分だぜ。
538デフォルトの名無しさん:2013/12/09(月) 19:19:17.64
>>537
実際それぐらいまで一度戻って、プログラミング遍歴を全部やり直すぐらいの覚悟はいるかも。得られるものは大きいけどね。
539デフォルトの名無しさん:2013/12/09(月) 19:25:15.19
>>537
むしろその方がどこで参照されるか想定できるから俺は嫌いじゃない
540デフォルトの名無しさん:2013/12/09(月) 21:08:27.13
はきだめ
541デフォルトの名無しさん:2014/01/01(水) 20:59:15.21
RProviderでCRANを使う場合ライセンスってどうなる?
もしRProvider経由でGPL汚染するならCRANは件並みGPLだからオワタ\(^o^)/
542デフォルトの名無しさん:2014/01/02(木) 07:04:43.25
け、件並み……?
543デフォルトの名無しさん:2014/01/04(土) 04:16:41.65
くだんなみだろ
544デフォルトの名無しさん:2014/01/04(土) 08:43:30.22
>>542-543
件並みじゃなくて軒並みだった(´・ω・`)
https://www.google.co.jp/search?q=%22%E4%BB%B6%E4%B8%A6%E3%81%BF%22
結構引っかかるけど間違いなのね・・・
545デフォルトの名無しさん:2014/01/04(土) 11:30:09.14
F#はJ#のようにVSの一部でしかないのですっかりPowerShellより日の当たらない存在
スタンドアロンで使えるじゃねえかといかいうバカも居るけど
そうやって使ってる奴はいないわけで
546デフォルトの名無しさん:2014/01/04(土) 12:22:57.82
F#専用サイトだったhubFSがFPishという関数型言語総合サイトに変わって数年たつし
F#の話題がないのは海外でも同じなんだよね
日本の弱小ブロガーだけがスタンドアロンで余裕で使えるわ!、
などとおつよそうに喧嘩売ってくるという有り様
547デフォルトの名無しさん:2014/01/04(土) 13:19:08.08
海外でも国内でも使ってことのある人の中ではバランスのとれたとても良い言語となってると思うけど…
Xamarinの方でも積極的に取り入れてるし一定の評価えてるとおもうけどな。
F#のコミュニティ見てるのでそれ以外の声が全然ないかは知らん。
自分は必要ない限り極力F#使ってC#成分はできるだけ減らしてる
548デフォルトの名無しさん:2014/01/04(土) 13:23:37.25
C#に勝とうとしちゃなんね。
それよりはF#の強い部分をアピールすべきだなんや。
549デフォルトの名無しさん:2014/01/06(月) 11:07:56.94
構文木をこねくり回すプログラムを書く必要があったからF#使ってたけど
最近は数値計算が多くてなんかもうC#に絞った方がいいんじゃないかって気がしてきた
F#の利点は何かありますか?
550デフォルトの名無しさん:2014/01/06(月) 11:22:48.48
>>549
むしろC#で書く利点がなに一つなくね?
551デフォルトの名無しさん:2014/01/06(月) 14:40:34.42
>>544
一応確認しておくけど、読みは「けんなみ」じゃないからね
552デフォルトの名無しさん:2014/01/06(月) 14:42:09.36
>>550
変態さん以外にも読める
553デフォルトの名無しさん:2014/01/06(月) 15:58:12.72
そういえば、F#のMVPであるbleisという人が、彼女が出来てリア充になったそうな。
F#erになるとリア充になれる!?
554デフォルトの名無しさん:2014/01/06(月) 17:55:13.35
>>550
数値計算本のアルゴリズムはだいたいCとかで書かれていて
ループ内でbreakやcontinueが使われているものが多いんだわ
だからF#で書きなおす際に頭を悩ますというのが最大の問題
あとx *= 2.0とか書けない
555デフォルトの名無しさん:2014/01/06(月) 20:44:57.02
VSバージョンあごるごとにインストール方が微妙になって行ってるのはなんなの
どこがスタンドアロンで余裕なんだよ

>>553
それは花王デモの主催者が彼女出来て活動終了したのと同じで本人次第
花王デモやF#を選んだのが正解だったというわけではない
>>554
コア部分のロジックをF#で書けばいいんだ!なんて
息巻いてた奴らクソうざかったんだけども彼女が出来てやめたんだろうな
>>550はブサすぎてできないらしい。こういう奴もいるから
556デフォルトの名無しさん:2014/01/06(月) 20:47:17.42
バージョンあごる、はこっちの方言だからあってるからな
件並みは方言ではないけど
557デフォルトの名無しさん:2014/01/06(月) 23:01:03.05
>>554
なるほどね。
558デフォルトの名無しさん:2014/01/06(月) 23:25:46.21
>>554
業務でCで書かれた配列の更新とかループバリバリのアルゴリズム、F#で書き直したらすごいスッキリしたよ。
559デフォルトの名無しさん:2014/01/06(月) 23:28:00.85
>>552
C#人口が多いのは確かにありだね。
うちの会社は勉強会とかしたら色々と難しそうだけどいいんじゃね?って話になって導入が進みそう。
560デフォルトの名無しさん:2014/01/07(火) 03:09:02.16
知名度低すぎ
561デフォルトの名無しさん:2014/01/07(火) 21:13:51.84
IDEを使えないスタンドアロンには意味は無いからな
UNIX勢だって補完なしでCUI使うやつなんかいないよ
3.1はVS expressではまだ使えないのか
562デフォルトの名無しさん:2014/01/07(火) 21:57:12.38
MonoDevelopならいけんじゃね
563デフォルトの名無しさん:2014/01/07(火) 23:37:10.88
ML使いを取り込めてるの?
564デフォルトの名無しさん:2014/01/08(水) 02:19:46.83
スタンドアロンでコンパイルしてみたらリファレンス関連が不明過ぎてこれはアカン
調べてもexpress使えだし
565デフォルトの名無しさん:2014/01/08(水) 03:14:32.67
2013は不明なのでVS express 2012をインストール
拡張機能からテンプレをインストールしてきた
F#関連で最もダウンロードされてるのは
F# C# MVC4
ってのが71729ダウンロードだった

この感じだとF#本で10000部はありえないな
1000部くらいか・・・?
566デフォルトの名無しさん:2014/01/08(水) 04:06:52.86
2012 expressでやってみたらあっさりビルドできたわ
コマンドラインみたらどっさり。
これ--noframeworkして全部dll書かないとダメなのね
まあコピーしてbatなりmsbuildなりでなんとかなりそうだが
これは初心者じゃスタンドアロン無理だわ

IDEの何が嫌ってちょっと試すだけでプロジェクトだのソリューションだの
名前付けないとダメなとこよ
scratchで書きなぐりたいんだがな
でも補完とかはさすがに便利
567デフォルトの名無しさん:2014/01/09(木) 03:16:32.87
パソコン変えたのもあるけどf# 2.0のころに比べるとだいぶ軽くなってて驚いたよ
fsi xxx.fsx でも実用レベルだし
ただ全然忘れてるから昔書いたものが暗号状態だわ
powerpackとかもどうなってるのか謎
568デフォルトの名無しさん:2014/01/09(木) 09:40:04.45
そんな重いことあったっけ?
i5,7しか使ってないけど重さ気にしたことがない(´・_・`)
569デフォルトの名無しさん:2014/01/23(木) 19:05:54.38
570デフォルトの名無しさん:2014/01/25(土) 01:06:20.93
スタンドアローン連呼してた人は逃げちゃった?
571デフォルトの名無しさん:2014/03/13(木) 15:52:17.98 ID:/s599t8e
スタンドアローン連呼くんまだー?
572デフォルトの名無しさん:2014/03/14(金) 05:32:20.11 ID:qm3sTXO9
あ〜あ
IDでますます過疎るなこのスレw
573デフォルトの名無しさん:2014/03/14(金) 15:03:20.19 ID:N8AgJwv9
いままでほとんど一人で持ってたのかこのスレは?
574デフォルトの名無しさん:2014/03/14(金) 15:26:46.99 ID:qm3sTXO9
>>573
日付とID見ろよ情弱が
575デフォルトの名無しさん:2014/03/14(金) 15:35:34.96 ID:Vwn/0IeX
>>570>>571
あ?
スタンドアローン連呼してた人だけど
逃げたとかおかしいだろ
今までのが不十分だったからMSが対応したんだろ?
MSの対応は歓迎だとしか言いようがないが。
人が少ないからって開き直ってごまかせると思うなよ?

むしろ今までだってスタンドアロンくらいあるわとか
親切に教えてやったとか言いはってたヤツは逃げちゃった?
MSが対応する余地があったってことは明白なのに
無駄に叩いてきたのはお前らだろうが
現状で十分だと言いはってたんだから公害としか言いようがない
人が少ないからって開き直ってごまかせると思うなよ?

強制IDで消えろよゴミどもw
俺はもともとID変えてるから困らんけどなw
覚悟しろゴミクズ
576デフォルトの名無しさん:2014/03/14(金) 15:41:16.74 ID:Vwn/0IeX
>>570>>571
この開き直りは醜すぎるな
スタンドアローン登場は歓迎に決まってるだろ?
すでにあった>>485とかお前そんな事もしらんの?>>488とか
からみ方が意味不とか情報ないのかと思ってぐぐったら簡単に見つかったけど教えてやらんわ(´・ω・`)とか
喧嘩売ってた>>497
は逃げちゃった?

情報ないのかと思ってぐぐったら簡単に見つかったけど教えてやらんわ
の割にはMSが改めて対応しちゃったけどw
577デフォルトの名無しさん:2014/03/14(金) 15:43:04.00 ID:Vwn/0IeX
なにがスタンドアローン連呼くんだよ
迷惑なのは
>>570>>571の方だ
情報ないのかと思ってぐぐったら簡単に見つかったけど教えてやらんわ(´・ω・`)とか書いてた>>497
だろ

逃げちゃった?
無様だなw
578デフォルトの名無しさん:2014/03/14(金) 15:44:51.27 ID:Vwn/0IeX
>>568
F#1.0とかVS統合前に使ったこともないような情弱は黙ってたら?
579デフォルトの名無しさん:2014/03/14(金) 15:47:47.96 ID:Vwn/0IeX
>>558
> 業務でCで書かれた配列の更新とかループバリバリのアルゴリズム、F#で書き直したらすごいスッキリしたよ。

ただの自己満
まともなところならちゃんと検証するわけだけど
報酬すら出ないような箇所なんだろうな
580デフォルトの名無しさん:2014/03/14(金) 15:52:07.33 ID:fuyZXWFL
>>570>>571
スタンドアローンくんだけど
ほんとに来てほしいと思ってるの?
それでF#の話してもらえると思ってるの?
甘えるなクズが
F#の話じゃなくて人をからかいたいだけのやつは迷惑だから来るな

こういうクズが強制IDでいなくなるといいわ
581デフォルトの名無しさん:2014/03/14(金) 20:04:40.87 ID:9cCUu1Hg
煽り耐性無さすぎですよ
582デフォルトの名無しさん:2014/03/14(金) 20:23:11.64 ID:bzCHSS4r
IDあるとNGしやすいから助かるよ
583デフォルトの名無しさん:2014/03/14(金) 20:59:40.27 ID:bbGk2WDX
こいつは何と戦ってるんだ(´・ω・`)
584デフォルトの名無しさん:2014/03/15(土) 01:00:12.62 ID:1L48EPBD
585デフォルトの名無しさん:2014/03/22(土) 22:26:53.09 ID:RRg8d/wE
Akka.NET
https://twitter.com/akkadotnet/status/447203696456531968
Akkaの.net実装だって。
プロセス監視とかスーパーバイザーの大規模なものって他に.netであるのかな?
http://www.slideshare.net/cooldaemon/error-handling-in-erlang-and-scala
586デフォルトの名無しさん:2014/03/25(火) 01:51:12.11 ID:PA8GA1CE
https://www.eventbrite.co.uk/e/ucl-functional-programming-in-finance-conference-2014-tickets-10932672919
Haskellのfinancial本はあまり好評ではなかったみたいだけど。
最近は、ロンドンやNYでよくイベントやってるね。
587デフォルトの名無しさん:2014/03/25(火) 02:00:05.38 ID:PA8GA1CE
F# deep diveかいてるTomas Petrickって、Blue Mountain Capitalにも所属してんのか。
http://techblog.bluemountaincapital.com
http://bluemountaincapital.github.io/Deedle/
オープンソースにしてるみたい。

このページみたのログアグリゲーターで、少し話題になったRiemannのC#プラグインで名前を見て以来だ。
588デフォルトの名無しさん:2014/03/26(水) 23:23:51.87 ID:v1MuKGbX
Blue Mountain Capitalに入りたいんですけどどうしたらいいですか?
589デフォルトの名無しさん:2014/03/27(木) 00:47:31.79 ID:SdqpiaKJ
https://www.bluemountaincapital.com/CareerOportunities.aspx

指定職種の募集はしてないみたいだね。
ここに限らず、この分野で勤めてる人探して話聞いたり、インターン募集してたら応募したりするのがよいかと。
590デフォルトの名無しさん:2014/04/03(木) 19:30:35.53 ID:GFa/HW2b
自営業だから他人に見せない部分でこの言語使ってるけど
他にどんな人が使ってるのか想像もできない
金融で使ってる人いるの?
591デフォルトの名無しさん:2014/04/03(木) 20:03:23.18 ID:3wZs6sQe
NVIDIAのGTCってイベントに行ってきたんだけど、F#の中で
ASTをいじってCUDA向けのPTXコードを吐いてGPUを使うって言う
トークがあって、すげーと思った。スウェーデンの金融系IT会社だった
やたらF#推しててワロタ
592デフォルトの名無しさん:2014/04/03(木) 20:04:04.28 ID:3wZs6sQe
間違えた、PTXじゃなくてLLVMだった
593デフォルトの名無しさん:2014/04/03(木) 23:50:27.22 ID:vBXhJQCy
これかな?
http://on-demand.gputechconf.com/gtc/2013/presentations/S3055-Dynamic-CUDA-with-F-Sharp-v3.pdf

http://fsharp.org/use/gpu/
オープンソース版の公式ページにも一番上に載ってるようだ。

数年前は、1人で博士課程でやってるのやつが紹介されてたけど、
実用品には、よってたかって開発されてるようなものじゃないと、自分でなんとかしないといけなくなったり、、、
594デフォルトの名無しさん:2014/04/04(金) 08:11:01.75 ID:14aTz2cV
>>590
金融と言う程じゃないけどデイトレアプリとかそのサーバーとかに使ってる。
つか言語指定されなければ何にでも使うと思う。
C#はだるすぎる。
595デフォルトの名無しさん:2014/04/04(金) 11:06:54.60 ID:FR4h37Hv
>>593
うん、その会社。リンク張ってくれたプレゼンは去年のだけど。
今年のはまだ公開されてない。1,2週間くらいで公開されるはず
596デフォルトの名無しさん:2014/05/30(金) 01:35:59.48 ID:LWM5+FrT
condは爽快感あるけどパターンマッチはあんまりない、
コマンド必殺技と弱キックって感じ
597デフォルトの名無しさん:2014/08/08(金) 18:07:16.51 ID:EJLhYX8C
過疎りすぎワロタ…
上がりそうな株の銘柄を発掘するアプリを途中まで書いてたが
結局scalaで書き直してしまった
F#もscalaも大差無いけどF#はオフサイドルールのせいで自動整形できないのが面倒だわ
598:2014/08/25(月) 19:05:57.01 ID:DrxGPTGS
とりあえず、Ocamlでconnect4のルールだけ作ってみた。
だれか添削たのむ。
http://www.age2.tv/rd05/src/up3979.txt

connect4はこことかで遊べます。
http://www.connectfour.org/connect-4-online.php
599デフォルトの名無しさん:2014/08/25(月) 19:06:32.09 ID:DrxGPTGS
あら、誤爆した。
失礼しました。
600デフォルトの名無しさん:2014/09/01(月) 17:59:14.45 ID:Vs+BnQy2
pythonでオフサイドルール以外は書く気が起きない体になってしまったのでF#の存在は有り難い
601デフォルトの名無しさん:2014/09/12(金) 14:45:33.94 ID:SXeHxOfu
ならpythonでいいんだけどな
602デフォルトの名無しさん:2014/11/18(火) 17:32:17.94 ID:nqmEmvVP
盛り上がらないなここ
F#入れてみたぜ
603デフォルトの名無しさん:2014/11/18(火) 20:30:53.27 ID:SK3a3LAr
.NET OSS化でUnix環境でも素直に動かせるようになるのか?
604デフォルトの名無しさん:2014/11/18(火) 22:16:12.22 ID:R7g69SFp
今までと変わらないと思う。
605デフォルトの名無しさん:2014/11/18(火) 22:52:37.93 ID:sfpYpYRp
MSは.NET推しに必死だな。なぜだろう
606デフォルトの名無しさん:2014/11/19(水) 00:11:16.98 ID:MFW74ps4
自社のプロダクト推さない会社って何なの
607デフォルトの名無しさん:2014/11/19(水) 04:28:22.02 ID:pkNAx+Yc
おっとGoogleの悪口はそこまでだ
608デフォルトの名無しさん:2014/11/19(水) 07:04:56.46 ID:Mb3EIzkN
>>607
ごり押ししてるだろw
609デフォルトの名無しさん:2014/11/25(火) 17:08:12.22 ID:SWjyn5zE
FSharp.Core.dllの同梱許可だすかちゃんとランタイムを配布してくれ
610デフォルトの名無しさん:2014/12/10(水) 01:28:19.53 ID:uWPeMxf+
ブロガーたちも最終更新から時間だけ過ぎていく・・・
611デフォルトの名無しさん:2014/12/12(金) 18:02:23.95 ID:nnjxKxP9
>>609
俺は勉強中で聞きかじっただけなんだが
--standaloneつけてコンパイルするとdll配布不要じゃないの?
http://msdn.microsoft.com/ja-jp/library/vstudio/dd233171(v=vs.120).aspx
612名無しさん@そうだ選挙に行こう:2014/12/13(土) 13:19:48.58 ID:mmV9whdo
初関数言語で手を出してみて、日本語の情報少なすぎてきついけど面白いですね
613名無しさん@そうだ選挙に行こう:2014/12/13(土) 14:48:37.52 ID:v/FGijXt
いやー前より増えた方だよ。2010頃とか皆無やった。
614名無しさん@そうだ選挙に行こう:2014/12/13(土) 23:37:59.12 ID:i7CM9zEs
Haskellをちょっとかじったのが役に立った
Visual StudioのF#向け機能がC#とかに比べて貧弱すぎ
リファクタリング機能くらい標準でつけてくれ
615デフォルトの名無しさん:2014/12/14(日) 00:46:39.01 ID:FQjqczPc
>>614
VFPTでググれ
616デフォルトの名無しさん:2014/12/15(月) 18:10:36.57 ID:Kjnmj5JO
見当違いの物が出てくる
617デフォルトの名無しさん:2014/12/15(月) 18:24:30.57 ID:4lr9hTc3
618デフォルトの名無しさん:2014/12/22(月) 17:21:24.66 ID:P7oBnA96
>>611
毎回そんなでかいファイル配布して平気ならもちろんそれでいいし
だから本家ランタイムの配布がなくてもいいという話にはならない
別の話
619デフォルトの名無しさん:2014/12/22(月) 17:30:22.32 ID:P7oBnA96
PowerToolsはOCaml互換機能とかでVisualStudioの機能とは関係ない

リファクタリングくらいとかいうが
C#とかだってその機能つくまでそれなりに時間かかってるはず
620デフォルトの名無しさん:2014/12/22(月) 19:42:10.53 ID:ECOw4I7p
俺なりに整理してみると

F#2.0ランタイム
Microsoft Visual Studio 2010 F# Runtime 2.0
http://www.microsoft.com/ja-JP/download/details.aspx?id=13450

F#3.0(3.1)ランタイム
Visual F# Tools 3.1.2
https://www.microsoft.com/en-us/download/details.aspx?id=44011

F#4.0(Visual Studio 2015用プレビュー)ランタイム
Visual F# Tools 4.0 Preview
http://www.microsoft.com/en-us/download/details.aspx?id=44941

--standaloneをつけずにビルドしたアプリケーション、ライブラリは
上記のランタイムが必要になる
(インスコしないとUnhandled Exceptionが発生する)

--standaloneで約1.3MBファイルサイズが大きくなる(F#3.0の場合)

肝心のライセンスはどうなってるんだ。識者頼む
俺の貧弱な読解力だと分からない
621デフォルトの名無しさん:2014/12/22(月) 21:12:22.99 ID:fGAHaCWn
>>619
OCaml互換とかなんの話だ?
622デフォルトの名無しさん:2014/12/27(土) 20:54:06.11 ID:3hMmTnv9
ocamlのツールと同じようなツールのセットだったと思う。
lex、yacc
http://ocaml.jp/archive/ocaml-manual-3.06-ja/manual026.html
あと、単位系とか。
623デフォルトの名無しさん:2014/12/29(月) 12:29:38.26 ID:+b4a8prP
opensource版は、Apacheライセンスだな。
https://github.com/fsharp/fsharp/blob/master/LICENSE
runtimeは、いつもの配布用のライセンスかな。

そう言えば、その下のCLR/CLI配布は、monoのランタイムの方が、GPL/商用デュアルライセンスで厳しかったりする。
624デフォルトの名無しさん:2014/12/29(月) 12:31:51.39 ID:+b4a8prP
ms配布ってのが、抜けてた。

opensource版は、Apacheライセンスだな。
https://github.com/fsharp/fsharp/blob/master/LICENSE
ms配布のruntimeは、いつもの配布用のライセンスかな。

そう言えば、その下のCLR/CLI配布は、msよりmonoのランタイムの方が、GPL/商用デュアルライセンスで厳しかったりする。
625デフォルトの名無しさん:2015/02/17(火) 21:43:10.73 ID:tgjlJ38r
Visual Studio Community 2013をダウンロードしてくればいいの?
626デフォルトの名無しさん:2015/02/17(火) 23:09:27.54 ID:XRI3AQc0
>>624
そのあたりはLGPLと商用のデュアルじゃね?
https://github.com/mono/mono/blob/master/LICENSE
627デフォルトの名無しさん:2015/02/17(火) 23:09:54.53 ID:XRI3AQc0
>>624
そのあたりはLGPLと商用のデュアルじゃね?
https://github.com/mono/mono/blob/master/LICENSE
628デフォルトの名無しさん:2015/02/18(水) 04:49:53.40 ID:D6VLB9k/
え、またパクったんだ
629デフォルトの名無しさん:2015/02/18(水) 13:13:29.83 ID:jy9NcG0p
C#と、本番環境がWindowsの仕事しています。
運用系のスクリプトなり、ちょっとしたデータ編集などを PowerShell で書くのがイヤなので、
.NET で動く簡易なスクリプトを探していたのですが、F# にたどりつきました。
JavaのGroovyみたいに、C#用のdllをF#で呼べるのがいいですね。
630デフォルトの名無しさん:2015/02/18(水) 22:30:25.33 ID:FehMPSmo
>>629
本番環境もF#でかけよ
631デフォルトの名無しさん:2015/02/18(水) 22:57:31.92 ID:FHXOTJ+B
>>630
本番だからC#で良いのです。
632デフォルトの名無しさん:2015/02/18(水) 23:23:53.58 ID:FehMPSmo
>>631
その理屈はよくわからんが…F#の方が生産性えーやん
633デフォルトの名無しさん:2015/02/18(水) 23:59:23.17 ID:yKhiDt4e
人数確保できないからじゃね
634デフォルトの名無しさん:2015/02/19(木) 02:46:34.13 ID:z6pi1paq
何度も言われてるけどC#は悪くはないどころか相当いい言語だからなあ
635デフォルトの名無しさん:2015/02/19(木) 06:50:23.73 ID:7GMnhzCq
せめて型推論ちゃんとしてたらなぁ
636デフォルトの名無しさん:2015/02/19(木) 06:57:54.78 ID:1/OpIS+Q
>>632
#を取ってくれ。下ネタすまん。
637デフォルトの名無しさん:2015/02/20(金) 06:36:14.40 ID:kG+8dp1T
昨今の関数型言語ブームでF#も再評価されないかな
638デフォルトの名無しさん:2015/02/20(金) 10:12:21.34 ID:PpqYctLu
海外の方が評価高そうやね。
日本はMVPどもがC#マンセーばかりだからな
639デフォルトの名無しさん:2015/02/20(金) 22:16:28.24 ID:ViMY7LAQ
C#はC/C++の焼き直し、J#はJavaベース。
だから最近まで、F#は.NET版FORTRANと思って無視してた。
640デフォルトの名無しさん:2015/02/21(土) 08:53:31.45 ID:naHue2Us
D#はよ
641デフォルトの名無しさん:2015/02/21(土) 15:12:17.82 ID:NZKwFt1Y
それならH#の方が
642デフォルトの名無しさん:2015/02/21(土) 20:32:26.94 ID:DwspW8/L
山田くん、>639さんから座布団、全部取り上げて
643デフォルトの名無しさん:2015/02/27(金) 18:49:28.82 ID:mwmXoOej
次の書き込みはまた二ヶ月後ですか
644デフォルトの名無しさん:2015/02/28(土) 01:00:37.05 ID:L/NnvF7q
>>581
煽り耐性とかそういう話じゃねえよ覚悟がないなら喧嘩売ってくんな
645デフォルトの名無しさん:2015/02/28(土) 01:01:20.92 ID:L/NnvF7q
>>582
いちいちIDしたとか報告いるのかね
必要な情報なのかね?さっぱりわからんのだけど
荒らしにしか見えんわ
646デフォルトの名無しさん:2015/02/28(土) 01:01:50.96 ID:L/NnvF7q
>>583
喧嘩売ってきたほうが悪い
647デフォルトの名無しさん:2015/02/28(土) 01:02:28.45 ID:L/NnvF7q
>>645>>582
いちいちIDをNGしたとか報告いるのかね
必要な情報なのかね?さっぱりわからんのだけど
荒らしにしか見えんわ
648デフォルトの名無しさん:2015/02/28(土) 01:02:55.78 ID:L/NnvF7q
F#専用サイトだったhubFSがFPishという関数型言語総合サイトに変わって数年たつし
F#の話題がないのは海外でも同じなんだよね
日本の弱小ブロガーだけがスタンドアロンで余裕で使えるわ!、
などとおつよそうに喧嘩売ってくるという有り様
649デフォルトの名無しさん:2015/02/28(土) 03:04:47.75 ID:sCEmqyFW
1年も前のレスに安価連投とかなにこれキモい
650デフォルトの名無しさん:2015/02/28(土) 09:15:28.06 ID:6oY+Vq0l
まあ海外の方が評価してる人多そうだけどな。
Xamarinのミゲルもお気に入りらしいし。
651デフォルトの名無しさん:2015/03/08(日) 00:18:58.34 ID:2LHNs+XN
随分、思い切った言語仕様だがメインストリームになるんかの
652デフォルトの名無しさん:2015/03/09(月) 17:03:51.87 ID:9kRgY548
お題スレみたけどlet文がずらっとあると見る気しないな
スクリプト的なの向いてないんか
慣れかな
653デフォルトの名無しさん:2015/03/10(火) 00:11:20.87 ID:eoBVzNTP
F#も10年くらいたつと思うけど
これから来る!とかだんだん使われてきてる!、
とか言われてることが当時と同じなんだよなw
まあ生き残ってるだけでも褒めてやるべきか
654デフォルトの名無しさん:2015/03/10(火) 00:12:06.28 ID:eoBVzNTP
つづいていればいいことあるさ
655デフォルトの名無しさん:2015/03/10(火) 00:12:30.85 ID:igPHIo4L
何かscalaとかぶるな
656デフォルトの名無しさん
S#はよ