[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 13:54 / Filesize : 121 KB / Number-of Response : 478
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 14:03:05 ]
MSResearchから出てきた.NETで使える関数型言語のひとつF#
OCAMLの流れを汲むこの言語、いろいろと面白そうなことができそう。
まだまだ英語の情報しかないこの言語について、幅広く語れ。

research.microsoft.com/fsharp/fsharp.aspx

92 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 09:43:34 ]
>>91
interopでのDLLやCOMの呼び出しは確かに簡単だが、マーシャリングの
コストが高いので細切れにCの小さなコードを呼ぶような使い方はすべきでない。

そういうことがしたいなら、むしろC++/CLIを使うべきだろう。

93 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 11:46:01 ]
>>92
C#のP/InvokeとC++/CLIの暗黙のP/Invokeのマーシャリングにかかるコストは実は差がない。
違いはC++/CLIではデフォルトでSupressUnmanagedCodeSecurityAttributeが付加され、
C#は付かないということ。
C#のP/Invokeに[SupressUnmanagedCodeSecurity]をつけると途端に速くなるから試してみるといい。

94 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 17:26:28 ]
UTF-8 で書いておけば日本語もおkなんだね。

95 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 17:43:08 ]
>>93
それってセキュリティ的にどうなの?

96 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 17:57:10 ]
>>95 セキュリティって文字列に反応しているようだけど、
この設定はセキュリティ関連のチェックを事前にできるように
するかどうかというだけの設定じゃなかったっけ?

ドトネトなプログラムは実行時にたとえば「ディスクへの書き込み
はしちゃだめだからね」なんていうセキュリティ上の制約を
つけて実行することができるようだけど、プログラムが全体として
その制約を満たしているかどうかを実行開始前にチェックできるように
するか、実行時に「おいおい、書いちゃダメだってば」って
例外を出すようにするかって違いじゃないの?

F#の話から外れて申し訳ないが。

97 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:14:32 ]
ほっしゅほっしゅ

入れてみたよ〜。なんだか面白そうだ。


98 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 04:04:22 ]
>>97
ttp://blogs.msdn.com/dsyme/archive/2007/10/17/s-somasegar-on-taking-f-forward.aspx
うは、Luke HobanがF#チームに異動か。

まあOrcasでの仕事もほぼ終わったところだろうし、いいタイミングなのかも。

99 名前:98 mailto:sage [2007/10/18(木) 04:05:26 ]
ごめん、>>97は関係ない。

100 名前:名無しさん♯ mailto:sage [2007/10/18(木) 21:18:06 ]
ttp://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspx

これって、F#を製品化するって話なの?
表現が微妙でそう読み取れないんだけど、反響を見るとそういう扱いになってる・・・。(´・ω・`)



101 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 07:33:45 ]
Iron ほげほげといい、F# といい、
Visual Studio で何でもありという感じだなぁ。
その一方で、 Visual Studio 2008 Beta 2 見ると
J# がなくなっている・・・
俺としては継続してほしかった。
さらにライセンス的に無理なんだろうけど
JDK 1.6 にも対応してほしかった。
いまは JDK 1.1.4 相当だから。
スレちがいでごめん。

102 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 05:01:18 ]
wikipedia の F# のページ ja.wikipedia.org/wiki/F_Sharp
には F# は科学計算用途に適した言語であるといえる。
F# は、低級だが高速な数値計算言語 (Fortran など) と、
高級だが低速な言語 (Mathematica など) の両方の特徴をもつ。

って書いてあるんですけど、 F# によって matlab や R 言語で処理するような
事柄にむいていますか?向いているなら今から習得して修論に使おうと思って
いるんですけど...

103 名前:102 mailto:sage [2007/10/20(土) 05:13:28 ]
後、同ページ ja.wikipedia.org/wiki/F_Sharp
には、 F# は異なる言語に容易にアクセスすることができ、
LAPACK や FFTW などといったライブラリの利用が容易である。

と書いてありますが、これは、 C 言語など低級の言語のみならず、 matlab や
mathematica や R 言語などにもアクセスする事は可能なんでしょうか?

104 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:13:22 ]
言語による

105 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:38:14 ]
Cにはアクセスできるよ。
ほかのはCからいけるならとりあえずラッパコード書けばいけんじゃね?

106 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 18:28:41 ]
matlab や R はインターフェイスがネイティブの C だよね?
なので C++/CLI でラッピングすればドトネトの世界から
アクセスできる。当然 F# からもアクセスできる。
でもあんまり F# 使う意味ないんじゃね?

俺にとっての F# を使う意義と言えば、
Visual Studio の中で仕事しているふりをしながら
現実逃避できるというところだろうか。

107 名前:102 mailto:sage [2007/10/21(日) 23:58:45 ]
>>105>>106
確かに、そうなると F# 使う意味なくなりますね...
それはそうと、 >>102

F# は科学計算用途に適した言語であるといえる。
F# は、低級だが高速な数値計算言語 (Fortran など) と、
高級だが低速な言語 (Mathematica など) の両方の特徴をもつ。

っていう記述は本当なのですか?もし本当なら、院生にとっては
夢のような言語のような気がするんですけど...

108 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 01:29:32 ]
>>107
F#というよりベースになってるOCamlの特徴かな。
それなりの訓練は必要だが関数型言語はある種の科学技術計算に向いてる。
ただ、これを高級と呼ぶかどうかは知らんし、手続き型がいい場合もある。
関数型言語の多くは遅延評価で弱い型付けであるが、
OCamlは正確(遅延評価でないという意味)で、推論でしっかり型付けされるため、
コンパイルが可能でパフォーマンスがいい。
問題はまだ新しい言語でライブラリが充実してないところ。

109 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 10:41:59 ]
>>107
どっかのページに大学院生でOCaml使っていて、こんなに(・∀・)イイ!!言語なのになんでマイナーなんだろうとかいう記述があったぞ
>>108
F#なら.NETのライブラリが使えるお

110 名前:デフォルトの名無しさん [2007/10/23(火) 21:05:48 ]
正格だよね



111 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 23:34:50 ]
>>108
> OCamlは正確(遅延評価でないという意味)
正格だボケ

112 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 00:24:58 ]
ボケはお前だ

113 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 05:59:26 ]
VC# expressしか持ってないんですが
この場合VS上でのF#プログラミングって使えるんですかね

114 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 07:45:50 ]
Expressは駄目。たしか、IronPythonのも駄目だった。
いまお金かけないとすると、VS2008のbetaですかね。

115 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 09:38:06 ]
2008 Beta2 Standardがおすすめ

116 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 10:25:49 ]
F#はじめました。クロージャもどきを作ってみましたが、
let rec makeclr v n = 
    let pr n = printf "closure %d\n" n in
      if n < 1 then v else (fun () -> pr(n)) :: (makeclr v (n - 1))
let makecl = makeclr [] ;;
let v = makecl 10 in
  List.iter (fun x -> x()) v ;;

リストの後方に追加するスマートな方法があったら教えてください。
逆にしたら怒られた。
(makeclr v (n - 1)) :: (fun () -> pr(n)) 

117 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 13:42:18 ]
>>116
3行目で if n < 1 then rev v が定石かと思われ。

(makeclr v (n - 1)) @ [fun () -> pr n] は効率の面でおすすめできない。(´・ω・`)

118 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 14:37:10 ]
>>117
ありがとう。最後にまとめて反転させたほうが早いわけですね。
末尾再帰になってなかったのでそうしたら反転の必要もなくなりました。
最初はforやwhileを使ってたのですがなんだかうまくないようです。
あまりforやwhileは使わないのでしょうか。配列専用の機能のように思えました。

let rec makeclr v n = 
      if n < 1 then v else makeclr ((fun () -> printf "closure %d\n" n) :: v) (n - 1)
let makecl = makeclr [] ;;
let v = makecl 10 in List.iter (fun x -> x()) v ;;


119 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:11:11 ]
>>118
ループとしてのfor, whileはほとんど使いません。(つーか、構文忘れてるし・・・。)
ただし、内包表記のforはよく使います。

let makeclr n =
 [ for i in [1..n] ->
   fun () -> printf "closure %d\n" i ]

でもまあ、最初のうちは再帰で解決する習慣を身につけるべきかと。(´・ω・`)

120 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:12:06 ]
F#のメリットってなんですか?
C#より優れてるところ、劣ってるところはなんですか?
F#にできてC#にできないことってありますか?



121 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 16:04:01 ]
>>119
こういうforの使い方があるのか。おいしくいただきまます。

122 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 20:08:41 ]
あかん・・・手続き型べったりの俺には
簡単なコードで頭の体操するのが精いっぱい。

しかし使い慣れた Visual Studio で動くので
なんとなく使えてる気になるけど。
やっぱり理論的な基礎をしっかりとやってない
専門学校上がりのコーダーには扱えないのかね。

Emacs における Emacs Lisp のように、
既存のネイティブ or ドトネトなプログラムの
マクロ言語としておもしろい?とかオモタけど、
妄想だけにしときます。

123 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:28:33 ]
>>118を1行で。

[1..10] |> List.map (fun n () -> printf "closure %d\n" n) |> List.iter ((|>) ())

124 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:30:32 ]
暗号にしかみえんがみなさんはこういうのにメリット感じるの?

125 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:55:17 ]
Microsoft、関数型言語F#をVisual Studioに統合へ――開発者からはおおむね好意的な反応
opentechpress.jp/developer/07/10/24/0310251.shtml

126 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 01:58:35 ]
手を広げすぎ

127 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 02:12:00 ]
let flip f a b = f b a
let delay f = fun () -> f

let _ = [1..10] |> List.map (printf "closure %d\n" |> (delay >> flip)) |> List.iter ((|>) ())

128 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 04:27:16 ]
right to leftの方が読みやすいかな。

let _ =
 List.iter ((|>) ()) << List.map (flip << delay <| printf "closure %d\n") <| [1..10]

129 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 08:26:45 ]
型推論ってなんですか?

130 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 09:46:24 ]
型を推論してくれるんです。



131 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 09:59:05 ]
やけに賑やかDaNa

132 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:11:15 ]
OCaml は整数型と実数型で足し算の演算子すら違って面倒だという話を聞いたことがありますが,本当ですか?
F#もそうなってるんですか?

133 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:16:40 ]
整数の演算子 :
+ - * /

実数の演算子 :
+. -. *. /.

134 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 22:47:06 ]
めんどくさ

135 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 23:50:47 ]
>>132

> 1 + 0.1;;

  1 + 0.1;;
  ----^^^^

stdin(7,4): error: FS0001: This expression has type
        float
but is here used with type
        int
stopped due to error

> 1.0 + 0.1;;
val it : float = 1.1

> 1.0 +. 0.1;;

  1.0 +. 0.1;;
  ----^^^

stdin(9,4): warning: FS0062: This construct is for compatibility with OCaml. Use
 the overloaded infix operator '+' instead. Disable this warning using --no-warn
 62 or #nowarn "62"
val it : float = 1.1

136 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:22:05 ]
>>132
F#では演算子は共通になった。
.NETのサポートするデータ型を全部サポートしなきゃいけないのでこうなったものと思われる。
ただし暗黙の型変換はないので整数+実数の計算は変換が必要になる。

> 3.2 + float 2;;
val it : float = 5.2

137 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 10:24:25 ]
F#ってVS2008についてくんの?

138 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 13:41:11 ]
OCamlってフランス製だっけ?

139 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 15:13:40 ]
そうざます

140 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:39:11 ]
おフランスwww



141 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 01:04:38 ]
140が見えない

142 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:21:33 ]
なんで?

143 名前:名無しさん♯ mailto:age [2007/11/19(月) 14:52:34 ]
F# 1.9.3.4が出ますた。( ゚д゚)ノ

Asyncの実装がまた微妙に変わってますがな・・・。(´・ω・`)

144 名前:デフォルトの名無しさん [2007/11/19(月) 16:38:48 ]
おぉ〜

この言語は普及するのかな

145 名前:名無しさん♯ mailto:sage [2007/11/19(月) 20:25:01 ]
ありゃ、ライブラリのマニュアル、バージョン古いままだ・・・。(´・ω・`)

146 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:47:01 ]
普及するわけないだろwwwwwwwwwww

147 名前:デフォルトの名無しさん [2007/11/20(火) 16:06:16 ]
並列計算の需要がものすごく増えてきてるから普及するんじゃないかねぇ

148 名前:名無しさん♯ mailto:sage [2007/11/20(火) 16:20:04 ]
Async型って、Haskellで

 type Async a = Cont () (Either a Exception)

って脳内変換すれば、unit, bindの実装の意味が理解できることに最近気がついた。

で、ごく一部の方々がActionを使った継続をやけに議論してた意味もようやくわかった。(つД`)

149 名前:名無しさん♯ mailto:sage [2007/11/20(火) 20:05:10 ]
Eitherじゃぜんぜんダメだった・・・。orz
エラー系の継続を最初からずっと保持してなきゃならんので、結局

 type Async a = (a -> (), Exception -> ()) -> ()

こうするしかないですわ。(´・ω・`)

でも、Asyncってモナド則を満たしてるんかいなという新たな疑問も・・・。

150 名前:名無しさん♯ mailto:sage [2007/11/20(火) 20:14:12 ]
あ、型コンになってなかった。(´・ω・`)

 data Async a = Async ((a -> (), Exception -> ()) -> ())



151 名前:名無しさん♯ mailto:sage [2007/11/21(水) 08:05:42 ]
Asyncを単純化するとこんな感じなのかな?( ´・ω・)


#light

type Async<'a> = Async of (('a -> unit) * (exn -> unit) -> unit)
 with
  static member Run (Async x) = x

let unit a = Async (fun (cont, _) -> cont a)

let bind m k =
 Async (fun (cont, econt) ->
  let cnext = fun a -> try Async.Run (k a) (cont, econt) with exn -> econt exn
  Async.Run m (cnext, econt))


で、実際にはここでのunit→resultPrim, bind→bindAsyncPrim相当でしかなくて、
これにキャンセルサポート(AsyncGroup)を追加してはじめてresultAsync, bindAsync相当になる、と。

モナドの定義自体にはスレッド云々は関係なくて、モナドを起動する側(Run, Spawn)の方で
スレッドに結びつけてる、と。

これをC#で表現するのはめんどいのう。(´・ω・`)

152 名前:デフォルトの名無しさん [2007/11/21(水) 13:31:20 ]
関数型言語は図で説明できますか?
フローチャートのように。
それが出来ないと、企業で使うのは難しいと思う。


153 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 13:48:56 ]
フローチャート(笑)

154 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 13:53:48 ]
次の質問をどうぞ

155 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 14:30:48 ]
質問が正確じゃないな。

  「Javaはむずかしすぎて使えません!」とギャグでなく主張する
  ド低脳にとっては関数型言語のほうが簡単なのですか?
  そうでないと、ドカタが使うのは難しいと思う。

こうだろ。

156 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 14:38:19 ]
おもしろくないよ

157 名前:名無しさん♯ mailto:sage [2007/11/21(水) 21:33:54 ]
あ、>>151間違えとる。(´・ω・`)

Async.Runは Async<'a> -> 'a にしないとダメなのか・・・。
>>151の実装は flip asyncApp 相当に過ぎないか。

158 名前:名無しさん♯ mailto:sage [2007/11/22(木) 01:13:05 ]
うーん、やっぱりキャンセルサポートなしでAsync.Runまで作っても複雑になるなあ・・・。

#light

type Async<'a> = Async of (('a -> unit) * (exn -> unit) -> unit)

let app (Async x) = x

let unit a = Async (fun (cont, _) -> cont a)

let bind m k =
 Async (fun (cont, econt) ->
  let c = fun a -> try app (k a) (cont, econt) with exn -> econt exn
  app m (c, econt))

let catch p =
 Async (fun (cont, _) ->
  app p (cont << Choice2_1, cont << Choice2_2))

let start p = app p ((fun () -> ()), (fun exn -> raise exn))

type Async<'a> with
 static member Run p =
  let res = ref None // val res : Choice<'a, exn> option ref
  let cont = fun r -> res := Some r; unit ()
  start (bind (catch p) cont)
  match Option.get !res with
  | Choice2_1 a -> a
  | Choice2_2 exn -> raise exn

これでAsync.Spawn, Async.Parallelまで挑戦するのは無理ぽ。(´・ω・`)

159 名前:デフォルトの名無しさん [2007/11/22(木) 12:12:02 ]
1.9.3.6リリース

160 名前:デフォルトの名無しさん [2007/11/22(木) 23:56:53 ]
>153-154
図星だったようだね。




161 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:06:19 ]


162 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 01:28:54 ]
政治的な理由で図が必要なら、Executable UMLでも
使ってれば?
あと>>155が答え。

163 名前:名無しさん♯ mailto:sage [2007/11/23(金) 12:20:33 ]
CPSだとアピールするよう、>>158のstartをプチ改良。w

let id x = x

let start p = app p (id, (fun exn -> raise exn))

164 名前:名無しさん♯ mailto:sage [2007/11/23(金) 17:12:31 ]
これはすばらしすぎるwww
ttp://channel9.msdn.com/Showpost.aspx?postid=358968

コメント欄もなかなか熱い。(;^ω^)

165 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 01:29:29 ]
もうちょっとHaskellよりなOCamlがいいと思う

166 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 01:46:59 ]
OCamlは副作用に対して寛大で、保守性や開発効率を保ったまま言語仕様を定めるのが忙しくて
165の様な要望に対しては手一杯

167 名前:名無しさん♯ mailto:sage [2007/11/27(火) 22:37:56 ]
F#のオブジェクト機能をちょっとまじめに使ってみますた。( ゚д゚)
ttp://cid-c42499cb3a347006.skydrive.live.com/self.aspx/Public/DLRSample.fs

168 名前:デフォルトの名無しさん [2007/11/28(水) 01:53:52 ]
日本語の解説はないの?
htmlは読みにくいからpdfのドキュメントはないの?

169 名前:名無しさん♯ mailto:sage [2007/11/28(水) 17:21:32 ]
両方ともにすばらしい。(´ー`)

(.ppt注意)
ttp://qcon.infoq.com/sanfrancisco/file?path=/QConSF2007/slides/public/ErikMeijer_LINQIntro.ppt
ttp://qcon.infoq.com/sanfrancisco/file?path=/QConSF2007/slides/public/ErikMeijer_Confessions.ppt

モナドの観点では、LINQの標準クエリ演算子で最重要なのは実は SelectMany なのね。


>>168
日本語の解説は見たことないです。
英語のなら最近すごくいい入門記事が出ましたが・・・。

ttp://tomasp.net/articles/fsharp-i-introduction/article.pdf

170 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 21:07:15 ]
>>169
モンドリアン風なのが気に入ったw



171 名前:デフォルトの名無しさん [2007/11/29(木) 01:54:58 ]
F#がC#より優れている点ってあるの?
すべてにおいてC#が優っているように思えるのだが。

172 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:04:46 ]
んじゃC#使えばいいじゃにあか

173 名前:デフォルトの名無しさん [2007/11/29(木) 02:06:18 ]
そうだけど何かメリットがあるならF#を使ってみようかと思って。
無いなら使わないけど。

174 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 04:51:48 ]
F#とC#は使い所が違うんじゃないかな

175 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 05:38:33 ]
(::)が関数として使えないんだけどそういうもん?

176 名前:デフォルトの名無しさん [2007/11/29(木) 20:23:52 ]
F#の機能とかっていずれC#も取り込みそうな気がする。C#って何気に巨大言語だよね。

177 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:49:05 ]
へじたんの夢の固まりだからな

178 名前:デフォルトの名無しさん [2007/11/29(木) 21:22:37 ]
C#でできることすべてはF#でできない。
F#でできることすべてはC#でできる。


179 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:29:16 ]
逆だろ

180 名前:デフォルトの名無しさん [2007/11/30(金) 01:30:02 ]
逆じゃない。



181 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:41:23 ]
C#、F#でできることの集合をそのままC#、F#と書く
1行目から C# ∩ F# = φ
2行目から F# ⊆ C#

∴F# = φ

アッー

182 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:45:50 ]
aho

183 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:52:06 ]
(C#でできることすべて)はF#でできない。
ではなく
C#でできることにはF#でできないことがある。
という意味なのか

184 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:59:02 ]
仕様書でこういうどちらとも取れる言葉遣いをしていたら揉め事の種になるな

185 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:00:23 ]
F#使ったことないけど、
C#では

var f = i=>i

で型推論が働かず、コンパイルが通らない。
F#ではできる!(=F#でしかできない事)

という認識で良いでしょうか?

186 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 09:14:42 ]
開発はなに使ってますか?VS2008?

187 名前:名無しさん♯ mailto:sage [2007/11/30(金) 10:30:03 ]
気がつけば、F# 1.9.3.7にマイナーアップデート。
ttp://research.microsoft.com/research/downloads/Details/e8478d6b-49c0-4750-80eb-0e424d1631a3/Details.aspx

そして待望のこれ。F#との相性よろし。(´ー`)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=e848dc1d-5be3-4941-8705-024bc7f180ba&DisplayLang=en

改めてこちらにも注目。
ttp://research.microsoft.com/research/downloads/Details/f9d6994e-45f6-49b8-b3c9-2a44bb2a4c50/Details.aspx

188 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 10:50:05 ]
C#で航海関数(なぜか変換できない)かけるのかとこ一時間

189 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 10:58:20 ]
ハァ?

190 名前:名無しさん♯ mailto:sage [2007/11/30(金) 18:05:31 ]
System.Linq.ParallelEnumerable
System.Linq.Parallel.Enumerable

まぎらわしい・・・。(´・ω・`)
前者はIParallelEnumerable用、後者はIEnumerable用。



191 名前:名無しさん♯ mailto:sage [2007/11/30(金) 19:00:00 ]
ParallelEnumerableに、ForAllなんていうAction系の拡張メソッドが。
オリジナルのEnumerableにもこれ付けてほしかったのに。(つД`)

192 名前:名無しさん♯ mailto:sage [2007/11/30(金) 19:36:06 ]
Parallel.Aggregateはどこへ行った?と思ったら、

 Parallel.For<TLocal>
 Parallel.ForEach<TSource, TLocal>

がその代わりらしい。でも、使い方がちょっとわかりにくい・・・。(´・ω・`)






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<121KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef