【.NET】F#について語 ..
449:デフォルトの名無しさん
09/02/11 14:45:18
>>448
まあニュアンスが伝わればいいんじゃね?
450:デフォルトの名無しさん
09/02/12 07:21:21
>>445
冗長なんじゃなくて、正格評価の世界では意味が全く別のものになる。
let rec fix = fun f -> f (fix f)
let rec fix = fun f -> fun x -> f (fix f) x
後者では x が遅延の役割をしてくれる。
Haskellのような遅延評価の世界では、確かに冗長なだけ。
451:デフォルトの名無しさん
09/02/12 07:31:11
f そのものを遅延化してしまう(>>439)のと、
引数 x を追加して遅延の役割をしてもらう(>>443)のと、
どちらがコードの見た目的にやさしいかは明らか。w
452:デフォルトの名無しさん
09/02/13 07:47:47
f (fix f) と fun x -> f (fix f) x って同義じゃないの?
んー、マジで分からん
453:デフォルトの名無しさん
09/02/13 19:50:03
let rec fix f = f (fix f) だと、f が渡された途端、
f (fix f)
↓
f (f (fix f))
↓
f (f (f (fix f)))
↓
f (f (f (f (fix f))))
↓
f (f (f (f (f (fix f)))))
↓
あぼーん
関数を返そうとはするが、fix を展開しようとして無限ループ。
let rec fix f = fun x -> f (fix f) x だと、f が渡されても、
fun x -> f (fix f) x
x が渡されるまで fix は展開されない。
454:デフォルトの名無しさん
09/02/13 19:54:11
ちょっと言葉足らずなので修正。
× 関数を返そうとはするが、fix を展開しようとして無限ループ。
○ 関数を返そうとはするが、先に fix を展開してしまい無限ループ。
× x が渡されるまで fix は展開されない。
○ 先に関数を返し、x が渡されるまで fix は展開されない。
455:デフォルトの名無しさん
09/02/14 17:13:10
関数は first-class object ではあっても
関数 = 値 ではない、と
―ここで正格評価において
let rec fix f = f (fix f) なる定義で fix g を評価しようとしたら?
必死こいて値を算出しようとしてしまうんだな
で、その結果、>>453 が示すように無限ループに陥る
let rec fix f x = f (fix f) x なる定義で fix g を評価しようとしたら?
これは部分適用だから関数オブジェクトの生成を行うのだな
で、後々、(fix g) y とされたときに値の算出が始まる
456:デフォルトの名無しさん
09/02/15 23:01:31
高尚な議論の最中で流れぶった切ってゴメン
入れ子になった型宣言(ネストされた type)って無理?
type a () =
type b = {x : int; y : int;}
...
とかすると、2つ目の type で
Unexpected keyword 'type' in type definition
と怒られる
457:デフォルトの名無しさん
09/02/17 20:14:16
>>456
できなさげ
確かに C# ではインナー クラスできるけど
Java と違ってそんなに多用されるもんでもないような
てか例示のコードならタプルでいいんじゃ?
458:デフォルトの名無しさん
09/02/17 22:01:21
ありがと、やっぱ出来なさそうですね。
まぁ、確かにタプルでも機能するんですが、
各要素へのアクセスが面倒なんで
レコードの方が扱いやすいなぁと。
459:デフォルトの名無しさん
09/02/18 01:02:15
.NET 言語なんで C# 基準で考えてしまいがちだが
F# は OCaml ベースなんだぜ?
internal すらぬるい、どうしても外部から隠蔽したいというなら
シグネチャ(.fsi)ファイルを書けばいいじゃないか
と、眠たいので調べもせずにいってみるテスト
460:デフォルトの名無しさん
09/02/18 12:53:16
>>259
公開するものだけをシグネチャ ファイルにしたら上手くいった。
なるほど、fsi はこうやって使うのか。
改めて読み直してみたら本には書かれていたけど、
いままで自分には無関係だと思って無視してた。
もうちょっと調べてみる。
じつは OCaml は見たことも触ったこともないんだけど、
やっぱ一通り触れてみた方がいいのかな・・・
461:デフォルトの名無しさん
09/02/18 20:18:22
>>259
言い忘れてた
ありがと
462:デフォルトの名無しさん
09/03/04 22:31:36
seq<int> 型に拡張メソッドを加えたいです。
パラメータを int 型に制約しなければ例えば次のように出来ました。
type System.Collections.Generic.IEnumerable with
member this.H = Seq.hd this
これを seq<int> 型の時のみ拡張することは出来ないのでしょうか。
463:デフォルトの名無しさん
09/03/07 03:49:18
これってVisual Studioから使えるの?
464:デフォルトの名無しさん
09/03/07 04:09:35
つかえるよ。
男は度胸。ものは試し。
まずはインストールしてミソ。
465:デフォルトの名無しさん
09/03/07 09:32:33
2008のProでしか駄目でした的な感じなのだが・・・orz
2008 Pro安く売ってないのかね
466:デフォルトの名無しさん
09/03/07 13:05:24
エディション比較ちゃんと見れと
URLリンク(www.microsoft.com)
相変わらず Visual Studio 2008 Shell は知られてないなと
URLリンク(msdn.microsoft.com)
アドインなんだから devenv.exe のあるなしで判断できるだろうと
467:デフォルトの名無しさん
09/03/07 17:19:53
使ってる人もっとなんか書いてくれ
Scala がどうとか言ってる同僚を黙らせたい
…俺? 日本語の本が出てからやるわw
468:デフォルトの名無しさん
09/03/07 23:49:03
F# のことを勉強しようかと思ったが、至るところ null があるって聞いた時点で、萎えた。
469:デフォルトの名無しさん
09/03/07 23:56:45
何を言ってるんだ?おまえは?
470:デフォルトの名無しさん
09/03/08 00:07:37
>>467
どうとか言ってる内容にもよるわけだが、黙らせる方法ってのは。
関数型サイコーとでも言っているのかい?その同僚は。
471:デフォルトの名無しさん
09/03/08 02:04:51
nullがあるって変な表現だよね。
472:デフォルトの名無しさん
09/03/08 15:24:28
>>466
kwsk
2008 StdあればF#の拡張機能は組み込めるってこと?
あと、VS2008 の Shell 版なら本体買う必要なすってことなのかな?
473:472
09/03/08 15:31:46
ごめん、検索したら一杯情報出てきた。
大体あってた。
いげ太のブログ: Microsoft Visual Studio 2008 Shell (integrated mode) で F# 無償開発環境
URLリンク(igeta.cocolog-nifty.com)
> Microsoft Visual Studio 2008 Shell (integrated mode) を導入すれば、
> 無償の F# 開発環境が手に入る。噛み砕いて言えば、C# も VB.NET も C++/CLI も、
> 何の言語もバンドルされていない Visual Studio 2008 が、タダで手に入るってことだ。
> そして、VSShell がインストールされた状態で、F# をインストールすればよい。
> そうすれば VSShell に F# が組み込まれるのだ。
Visual Studio で F#の開発を行う - ピコピコの日記
URLリンク(d.hatena.ne.jp)
> F#はVisual Studio 2008 もしくは、Visual Studio 2008 Shellから利用することができる。
> Visual Studio 2008 を持っていないので、無償で公開されているVisual Studio 2008 Shellをダウンロードした。
> ちなみに、Visual Studio 2008 Shell とは、C++やC#などの開発環境が何も入っていない状態のVisual Studio 2008で、
> Visual Studio向けの開発環境をSDKを使って組み込むことができる。
Visual Studio Shellダウンロードしてくるわ。
ありがとう。
474:デフォルトの名無しさん
09/03/09 22:36:42
>>468 はこれか。
URLリンク(d.hatena.ne.jp)
いろいろ挑発的なことが書いてあるな
475:デフォルトの名無しさん
09/03/22 17:40:50
下がりすぎだろ
476:デフォルトの名無しさん
09/03/24 16:39:37
FParsecの話なんかやってくれないかなあ
477:デフォルトの名無しさん
09/03/24 20:11:44
こやつめw
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5385日前に更新/121 KB
担当:undef