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

■ このスレッドは過去ログ倉庫に格納されています
2011/05/01(日) 02:46:49.52
MSResearchから出てきた.NETで使える関数型言語のひとつF#
OCAMLの流れを汲むこの言語、いろいろと面白そうなことができそう。
そろそろ日本語の情報が充実してきそうなこの言語について、幅広く語れ。

http://www.fsharp.net/

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

関連スレなどは >>2-
2011/10/23(日) 20:00:06.22
>>224
うい
2011/10/23(日) 20:32:16.83
たぶん原稿の成長とcarettahのコード品質は同期するだろー...λ
2011/10/26(水) 23:09:18.46
よく知らんが買わんぞ?
2011/10/27(木) 09:05:20.27
>>227
全く売れないのも面白いのでwwww
2011/11/09(水) 16:59:13.93
>>220
書いて
2011/11/09(水) 17:17:18.28
現在の購入予定者2名
2011/11/09(水) 19:01:13.54
良い本だったら買うし良い本ではなかったら買わない
2011/11/09(水) 19:04:24.86
>>231
同人誌レベルなら、、
2011/11/11(金) 03:51:46.57
>>220
買います
2011/11/11(金) 04:23:18.13
>>220
SOEより凄いなら買う
2011/11/11(金) 13:59:41.00
https://github.com/fsharp
githubに、fsharpオープンソースコミュニティーというのがあるのか。
donsymeがいると公式感があるな。
mono開発者のicazaも入ってる。
F#はClojureCLRと違って余裕あるからか、monoとの互換性も重視してたの思い出した。
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
2011/11/11(金) 14:18:47.50
作ってるのはSocket IOだった。
Fracture/Pipelet/Frackって分かれてる。
future-ioはSSDだった・・・orz
2011/11/14(月) 01:37:08.30
M$がhtml5の構想に弱音を吐いて.net戦略を撤退したらf#ってどうなるんだろ
2011/11/14(月) 01:51:46.03
VisualOcaml作って欲しい
2011/11/14(月) 01:54:35.63
VisualHaskellを(ry
2011/11/14(月) 02:54:08.28
F#はType Classの要望が強かったけど
.netの型システムとの互換性を重視して入れなかったとどっかで言ってたから
H#はないんじゃないの?

ちなみに"Visual Haskell"は既にあるよ
2011/11/14(月) 06:45:33.31
>>241
>ちなみに"Visual Haskell"は既にあるよ

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

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

・・・orz
2011/11/14(月) 09:38:24.83
Haskellようしらんのだが、型クラスあるとなにがどう幸せになるん?
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
2011/11/14(月) 15:21:15.27
Eq,Ordが型クラスで、List aがインスタンスだから、例としてはこっちが適切か

large xs ys | xs < ys = (ys,xs)
large xs ys = (xs,ys)
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
インポートは出来ますた

http://beyondrelational.com/blogs/niladribiswas/archive/2011/08/09/how-to-call-a-f-dll-from-c.aspx
2011/11/14(月) 20:53:17.11
F#側のdllをC#でインポートするだけでしょ?
249デフォルトの名無しさん
垢版 |
2011/11/17(木) 21:05:56.68
>>246
ねーよ
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
え?
2011/11/19(土) 01:58:24.47
いや、この発想はまだまだ用語や概念判ってないのかなと思って
exec(1.fs); //this is c# code
2011/11/19(土) 23:55:32.57
F#のevalは興味あるんだけどfsiのソース見ればいいのかな?
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#でぷよぷよだって。コード全然読めん
2012/02/14(火) 05:18:11.05
あら止まってんの
ブロガー結構増えてんのに
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を含むワークフロー(モナドとも)を理解する道筋はいくつかあ
> ると思いますが、まず最初に「操作的」に手を動かしてプログラムの意味を解き
> ほぐしていくアプローチを取ってみようと思います。
2012/02/18(土) 20:41:36.83
>>169
日本語翻訳版
F# プログラミング - F# で MVVM アプリケーションをビルドする
http://msdn.microsoft.com/ja-jp/magazine/hh394149.aspx
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#書けや
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#はどこの世界が流行してるの
2012/03/16(金) 20:32:47.41
俺の中では超マイブームです(´・ω・`)
2012/03/16(金) 22:51:06.54
英ケンブリッジなら、Haskell,F#,Erlang,Clojure流行ってる
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
2012/03/20(火) 09:24:17.53
>>269
なんでいきなりFreeBSDやねん!
2012/03/20(火) 23:06:53.00
F#/monoを扱うなら解るようにした方がよいかも?
そして、MonoとF#のインストールの関係で、Linux or OSX, FreeBSDの順で情報がない気がする。
使い始められればそんなに変わんないと思うけど。
2012/03/25(日) 18:09:42.02
code quotationとtype providerを組合わせたらlisp macroみたいなことができるんです?
2012/03/28(水) 05:53:43.99
何でこんなに過疎ってるんです?
2012/03/28(水) 08:57:57.00
世の中が変態ばかりだったら困るだろ?
2012/03/28(水) 22:12:22.72
LISP Haskell Scalaなんかは変態ばかりでも伸びてるんで
むしろ変態へのアピールが足りてないが正しい

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

ごめ、なにを根拠に光入ってるのか意味不(´・ω・`)
F#いいよー
2012/03/29(木) 00:26:09.28
公式フォーラムも、あんまり使われてないね。
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 )
2012/03/29(木) 10:25:53.05
OCamlも道連れで寂れてるし
D言語スレなんて誰が使ってるかさっぱりわからんが未だに書き込みあるからなあ
まあ粘着質な人が少ないんだね
2012/03/29(木) 11:07:38.18
関数言語厨が.net環境ででも関数型ぽいことをしたくて使う言語だわ
2012/03/29(木) 15:21:25.50
とりあえずF#じゃなくてC#を使わないといけない理由が殆ど無いのでF#ばかり使ってます(´・ω・`)
デザイナー等C#必須であれば、F#のモジュールと混在って感じですね。
PortableLibraryに期待(´∀`∩)↑age↑
2012/03/30(金) 00:48:03.82
>>273
Haskellスレも概ねそうなんだが、簡単に関数を自作出来ちゃうから、「こう言う事したいんだけど、どう書けば良い?」みたいな質問はほとんど無い
自分も、Haskellスレで質問したのは練習問題でリスト内包表記でこう言う関数を書けって問題の時だけだったし
変に制限付くとどう書けばいいのか分からなくなる事はあっても、制限なしだと、割と初心者でも関数書くのに困ること無いのが関数型言語の良い所だと個人的には思ってる
オブジェクト指向言語だと、オブジェクト自作するのは意外と面倒だし、メソッド覚えれば、ある意味じゃ関数型言語よりも簡潔なんだけど、リファレンスと睨めっこしてメソッド覚える必要がある
(なので、こう言う処理するメソッド無い?とかの質問がオブジェクト指向言語のスレでは絶えないんだと思う)
2012/03/30(金) 01:03:01.29
とりあえず、なごやこわい
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がないと開発出来ないんですかね?
2012/03/31(土) 12:23:21.11
>>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
2012/03/31(土) 18:25:38.97
無償環境だと、F#はVS Shell、WPはVS C# Expressに結びつく。
そして、F#を通常のVSに結びつけるのには、ExpressではなくProfessional以上じゃないといけないはず。
286営利利用に関するLR審議中@詳細は自治スレへ
垢版 |
2012/04/01(日) 05:19:32.41
ありがとうございます
つまり、無償ではF#でWindowsPhoneの開発は出来ないって事でいいですか?
2012/04/01(日) 09:13:04.20
>>286
IDE使わなきゃ出来るでしょ。
2012/04/01(日) 18:23:52.74
イデの力は使うべき
2012/04/01(日) 20:09:10.15
イデに取り込まれるぞ
2012/04/01(日) 20:27:12.26
shellとC# expressをバラバラに使って、開発は出来るので、
F#でportableなライブラリーつくって、UIはC#かな。
2012/04/01(日) 20:36:18.11
http://msdn.microsoft.com/ja-jp/magazine/gg983483.aspx
http://visualstudiogallery.msdn.microsoft.com/092d3f67-c938-4e53-ba1f-3baf6a15aa89
http://freshbrewedcode.com/danmohl/2012/01/23/making-f-windows-phone-development-a-little-easier/

MonoDevelopも、F#環境用意するの面倒だし、wp開発環境も分かりやすい物ではなかった気がする。
2012/04/01(日) 22:22:29.30
http://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=User&f%5B0%5D.Value=Daniel%20Mohl&sortBy=Date
F#のプロジェクトテンプレートいぱーい
2012/05/02(水) 13:05:02.14
webページの日本語をパースするスクリプトを
f# + .netで作ってみるお
2012/05/02(水) 21:52:39.46
がんばれ
2012/05/11(金) 07:25:02.60
複数のファイル作ったらネームスペースを書けと言われるし
ネームスペース書いたら中に値を置くなと言われるし
2012/05/11(金) 09:49:01.82
嫌ならC#にかえるしか(´・ω・`)
2012/05/12(土) 10:51:30.16
デフォルトで前方参照ができないとか、まるで20年前の言語のようだ

Scalaと比べると見劣りするなぁ
2012/05/14(月) 00:50:46.94
>Scalaと比べると見劣りするなぁ
うわー。言うよねー、Scalaの人って、こういうこと。
2012/05/14(月) 16:26:01.35
Scalaは型推論がショボすぎる時点でない(´・ω・`)
2012/05/17(木) 00:55:43.23
やはりBetter Javaではなあ…
今までJavaをやって来て超アンチMSだったので
F#の方が逆に新鮮w
2012/05/17(木) 08:55:12.22
by far much better Java だけどね。
302デフォルトの名無しさん
垢版 |
2012/05/17(木) 09:26:13.63
F#ってBetter Javaだったの!?
2012/05/17(木) 09:30:51.75
Scalaがってことでしょ。
2012/05/18(金) 11:15:27.50
今までJavaをやって来て超アンチMSだったので( ・`ω・´)キリキリッ
2012/05/19(土) 10:24:38.34
前方参照できないのと型推論がショボイのさあどっち!
2012/05/19(土) 10:39:36.45
JAVAかMS(win)かでしょやっぱ
2012/05/19(土) 11:26:06.56
JavaじゃなくてOracle
308デフォルトの名無しさん
垢版 |
2012/06/20(水) 16:50:25.33
F#のほーがセンスイイよ
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
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"
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
なごやいいとこいちどはおいで!
2012/06/25(月) 21:09:21.93
>>312
operatorに使えるのは知ってたんですが、普通のメソッドにも使えるのは知らなんだ。
2012/07/09(月) 00:41:53.18
http://blogs.msdn.com/b/dsyme/archive/2012/06/19/the-f-survival-guide-archived-edition.aspx

F# Survival Guide、Web Archivesで見つかる。
2012/07/13(金) 21:56:44.17
F#はじまってた
ttp://d.hatena.ne.jp/zecl/20120524/p1
2012/07/23(月) 15:59:04.70
F#すこぶる評価いいねえ
2012/07/23(月) 21:33:41.50
http://t0yv0.blogspot.jp/2012/07/speeding-up-f-printf.html
へー
2012/07/23(月) 21:37:38.22
https://bitbucket.org/zeux/fastprintf
2012/07/23(月) 22:01:26.20
>>317
しかし、ぜんぜんスレが伸びないw
321デフォルトの名無しさん
垢版 |
2012/08/25(土) 19:33:41.01
F#がこの先生きのこるには
2012/09/01(土) 12:57:08.28
surfaceが爆発的に普及すれば.net基盤だからF#にも出番ある
323デフォルトの名無しさん
垢版 |
2012/09/18(火) 21:41:33.61
OCamlを勉強してて色々モヤモヤした部分があったけど、
F#で不満だった部分がかなり解消されてて驚いたわ
マイクロソフトさんありがとう、今まで悪口言ってすみませんでした
2012/09/18(火) 22:20:15.65
具体的に
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況