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

1デフォルトの名無しさん
垢版 |
2019/09/08(日) 19:16:25.58ID:8+6E4mCC
このへん
https://fsharp.org/
31デフォルトの名無しさん
垢版 |
2020/01/01(水) 20:14:17.60ID:a1t8oDx/
>>30
その機能の事は知ってるけどまた改めて話題になってたん?
2020/01/02(木) 03:58:03.03ID:jhqlWV51
>>31
twitterのタイムラインで知った、なんか凄そう
2020/01/04(土) 00:22:00.69ID:cXgkEW1h
ツイッターってこれ? https://twitter.com/fsharporg
https://twitter.com/5chan_nel (5ch newer account)
2020/01/04(土) 00:26:02.85ID:cXgkEW1h
F#の情報ってツイッターでどうやって検索するのさ
https://twitter.com/hashtag/fsharp
https://twitter.com/hashtag/fsadvent
これくらいしか方法がない
https://twitter.com/5chan_nel (5ch newer account)
2020/01/07(火) 12:14:05.32ID:wBFbV3xy
ごめん、フォローしてる人のツイートでした
9月30日付けの記事
F# vNext は何が "ヤバい" のか: Monadic Programming の新時代
4.3 すべてが F# になる
ttps://qiita.com/cannorin/items/1936faded610c3ab6c18
2020/04/10(金) 04:02:34.30ID:t5UTC85v
思いつきでF#ぶちこんでやがる
https://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/122.209.252.234
2020/05/18(月) 21:31:15.79ID:EHBNcla8
F#に栄光あれ
2020/07/26(日) 23:50:10.39ID:XeHUL0wp
F#世界征服
2020/08/05(水) 00:09:20.37ID:bjggIIig
F#とビックバン
2020/08/10(月) 19:30:31.90ID:obUihWqz
F#はブラックホール
2020/08/11(火) 08:55:15.85ID:YyNVoUsd
blackhole: 't -> ()
2020/08/12(水) 00:39:53.15ID:0m+eHDtL
F#は宇宙その物なのに

なぜ、人気が無い バンバン
2020/08/12(水) 11:44:45.64ID:Gzmhdq8M
bigBang: () -> ’T
2020/08/14(金) 12:47:54.32ID:dE88PSyr
f#のapiリファレンス見れますか?
Listモジュールの関数一覧を知りたいのだけど。
2020/08/14(金) 13:01:55.33ID:EgE9ark5
おおよそだったら

https://www.tutorialspoint.com/fsharp/fsharp_lists.htm
2020/08/15(土) 16:03:13.72ID:XjnR78WG
一覧性はこっちもいいですね。
サンプルコードないけど。
https://fsharp.github.io/fsharp-core-docs/reference/fsharp-core-operators.html
2020/08/20(木) 21:16:13.93ID:F3pjFb9s
久しぶりにいじったらfsxのスクリプトとかもけっこう動作速くてビビった
HTAとかpowershellの重いやつF#でポツポツ書き直しとる
2020/08/21(金) 00:19:46.75ID:l8mARvuP
vbsでコマンド窓出さないラッパとかも.netのほうがふつうに速いな
2020/08/21(金) 23:07:05.50ID:8b3i3oD2
fsxって今でも実行にf#のランタイム必要?
exeにコンパイルすればstandaloneになるけど。
windowsビルトインだけでfsxが動くなら配布しやすいんだよなー
50デフォルトの名無しさん
垢版 |
2020/08/22(土) 01:31:15.30ID:sbTIr2Z/
ランタイムが何を指してるか知らんけどどのみちfsiがなきゃ動かんだろ
2020/09/30(水) 20:04:31.55ID:0r1wHLnO
F#って、DBにデータが存在するとき上書き警告のポップアップをだして更新、なければ挿入、的な処理は作れるんですか?
2020/09/30(水) 20:17:32.00ID:Q/IggaOh
何で出来ないと思うの?
2020/09/30(水) 22:13:47.43ID:08fRNxc8
手続きも書けるのですか?
2020/09/30(水) 23:09:38.35ID:Q/IggaOh
純粋と言われているHaskellでさえ出来る

F#なんて、何でもあり
イベント、オブジェクト、フォームプログラミも
.netのクラスも、Win32も使いたい放題

ていうか、関数型プログラミングって、従来とそんなに違うもんなん?
55デフォルトの名無しさん
垢版 |
2020/10/03(土) 03:27:11.84ID:h6sfgiF0
まさにそういう手続きかけるの?って話だろ
56デフォルトの名無しさん
垢版 |
2020/10/03(土) 09:28:48.71ID:F7oAx4CC
デバイスドライバ
2020/10/22(木) 10:37:14.60ID:Qlnohm+l
パイプラインも見方によれば手続きじゃん
58デフォルトの名無しさん
垢版 |
2020/10/22(木) 14:22:20.80ID:t1R9Kn4k
手続きは基本的に個々のステートメントでIOが入るイメージ
2020/10/26(月) 13:50:55.24ID:d2xPz+W7
変数への代入という意味なら、λ式使うと出来るよ
Haskellのモナドはそうやってるし
2020/10/26(月) 19:18:50.12ID:ct6e5loO
Stateモナドのことモナドって呼ぶのやめろ
2020/10/26(月) 21:47:30.08ID:d2xPz+W7
へ? State関係ないあるよ

do記法の代入は糖衣外すとλ式に変換されるってことだけど
適当に探しても見つかるな
>>=をパイプラインと見れば…

https://qiita.com/saltheads/items/6025f69ba10267bbe3ee
2020/10/27(火) 09:05:43.65ID:MWzm/YXn
それは代入じゃなくて束縛
この文脈で変数への代入ってputとかmodifySTRefとかでしょ
2020/11/03(火) 09:10:08.92ID:mOGxIOt0
elmishはここでいいの?
64デフォルトの名無しさん
垢版 |
2020/11/03(火) 18:45:19.66ID:XMKQchmH
いいとは思うけど話題になったの見たことないな
2020/11/04(水) 23:50:52.67ID:CWtTpqjW
MVUアーキテクチャは関数型言語と相性いいと思うんですけど、f#でguiやるとき何使ってるんですか?
素のWinFormsとか素のWPF?
なにかいいフレームワークあったら教えて下さい。
2020/11/04(水) 23:52:09.97ID:CWtTpqjW
デスクトップアプリです。
67デフォルトの名無しさん
垢版 |
2020/11/05(木) 08:24:19.97ID:/Jhwxtw3
Fabulous でどうよ
2020/11/06(金) 18:09:15.32ID:a+LGJjdY
fsprojectsがサポートしてるのはよさそう。
XamarinForms使ったことないんですがUWPアプリになるんですか?クラシックアプリではなくて。

誰か使ったことある方いますか?
2020/11/06(金) 18:13:14.58ID:a+LGJjdY
donet cliでプロジェクト作るときにWPFオプションつけるとクラシックアプリを作れるような気がする。
後で試してみる
70デフォルトの名無しさん
垢版 |
2020/11/07(土) 09:31:12.43ID:5rFmz+J7
WPFはサポートしてなかったっけ?
今も開発続いてるならWinUIとかにも対応しそうだが
2020/11/14(土) 22:41:47.20ID:vc7ZeNxq
buildtoolsのみインストール、xamarin入れてない環境。
WPFオプション付けてプロジェクト作成、dotnet runでウィンドウ出ましたわ。コンソールにxamarinがどうのって警告でてるけど。
教えてくれた人ありがとう。
elmishと違ってUIもfsharpで書けるのね。

ちなみにUIのプロジェクトはnet475だった。netcoreappじゃないんだね。
fabulousはメジャーアップデートのpreview版リリースが続いてるみたいだけど、net5に対応するのかな

ひとまず、elmishで悩んでたことをこっちで試してみます。
2021/02/04(木) 19:38:40.95ID:4EyDekmA
F#の文法の基礎とかアプリを作るまでの流れを学びたいんだけど、お勧めはありますか?
最初はオライリー買おうかと思ったんですけど、2010年08月発行とかなってて心配です。
2021/02/04(木) 22:07:05.94ID:OLEUfSPw
どういうバックグラウンド持った人か知らないけど、ベースから固めていきたい人ならf# 入門でググった結果→必要あればdocs.microsoft.comでいいと思うよ
作りたいアプリが決まってるなら、フレームワークの使い方から学んだほうが早いんでないかな。
2021/02/04(木) 23:41:01.03ID:4EyDekmA
ありがとうございます。見てみます。
75デフォルトの名無しさん
垢版 |
2021/02/05(金) 00:52:16.10ID:dNSp3+hf
>>72
古い本だけどこれ良いと思うよ
F#を使って関数型なプログラムするのどうしたらいいかっての書かれてる
F#は3でtype providerとか大きいの入ったけどそのあとはこまめな変更入ってる感じだしこの本の内容は今も全然生きてる

https://www.manning.com/books/real-world-functional-programming
76デフォルトの名無しさん
垢版 |
2021/02/05(金) 00:53:07.00ID:dNSp3+hf
でもアプリ作る所、はあまり書いてないかも
アプリが何を指すか分からんけど
2021/02/08(月) 23:15:17.36ID:ow4Fgv7j
>>75
ありがとうございます。英語ですか・・・。

作りたいのはWindows用のGUIアプリで、
在庫管理の入力や報告書の作成とかの会社の雑務を自動化出来たらなと思ってます。

もちろんもっと相応しい言語や環境があるのは分かっています。
ただ会社に許可は貰ってますが、特に求められても急ぎでもない半分趣味なので
折角なら前から興味のあった関数型言語でやってみよう、Windowsなら.NETかなという感じです。

プログラミング経験はVBA、Python、TypeScript、PowerShellの様なスクリプト言語のしかありません・・・
GUIを作った経験はほとんどなく、基本的に開発環境から直接実行していました。

一応すごいHは読み終わっていてオブジェクト指向との違いは概ね理解しているつもりです。
78デフォルトの名無しさん
垢版 |
2021/02/09(火) 00:44:50.72ID:jXcFb3DL
>>77
日本語の本ほとんどないからねぇ…
自分はXamarinとかWindowsストアアプリでF#使ってたけどまあUIの仕組みとしてはMVVMであとはなんでもいいんじゃないですかね
Fabulous使う手もあるかもだけど
79デフォルトの名無しさん
垢版 |
2021/02/09(火) 01:03:16.55ID:jXcFb3DL
上げられたようなアプリでいいならFabulousをWPF向けに使うので間に合いそうな気はします。
MVVM使った方が堅いとは思うけれど
MVVMの場合は全部F#でもいけるけどUI側はC#でやってVMから上はF#ってした方がデザイナでIDEの手助けを得やすいとかはあると思いまうす
2021/02/15(月) 01:26:40.83ID:oA6rG6Z/
VMといえば仮想マシン

どーすればええやん?
2021/02/17(水) 23:09:09.35ID:otlYz5oY
そういえば、.net 5って、Linux上のフォームアプリって未対応なん?

期待してたんだけど
2021/03/06(土) 00:53:36.12ID:B9a8AcDd
Hakellってループすらない 腹たつのり

ところで、F#のシャドーイングって、ループのためにあんの?
83デフォルトの名無しさん
垢版 |
2021/03/06(土) 02:31:20.35ID:UCFD3nLW
関係ないでしょ
自分的にはそこ以降のスコープではそれより前にあるものをさわれなくする仕組み
2021/03/06(土) 10:37:10.03ID:B9a8AcDd
覚えているけど 名前からするとそっちかもしれんけど
でも、再代入とほぼ同じに見えるから… って思ってた

ただ、ループ中のシャドーイングやってみると、代入と違う動作だた。
最後にシャドーイングされたものが、次のループでも生きると思ってた

っていうことで、撤回
2021/03/16(火) 20:47:37.00ID:rNZytrCC
fsdn稼働してないね、やめちゃったの?便利だったんだけどな
dotnet cliしかインストールしてないせいか知らんけどFsharpApiSearch動かんし。
86デフォルトの名無しさん
垢版 |
2021/03/17(水) 00:22:11.85ID:XYPLqt0O
全然使ってなかったわ
どういう時に使うん?
2021/03/17(水) 00:29:51.51ID:BCS3Lg0C
レポジトリのreadmeにかいてあるよ
hoogleみたいなやつ
88デフォルトの名無しさん
垢版 |
2021/03/17(水) 13:51:03.97ID:XYPLqt0O
シグネチャ元に探せるってやつだよね?
どういう時にそれが便利なのかがよくわかっておらず
2021/03/17(水) 23:00:01.71ID:BCS3Lg0C
必要なapiをそらで言えれば、たいていは必要ないと思います。
自分は型でパズルしてるから使ってた。

例えばこんな問題どう?
// 改行区切りのコマンドリスト
let exec (cmdLine: string): () = pass
// 各ファイルへのコマンドを作る
let commands (filenames: string list): string =
…filenames
…|> List.map (fun n ->
………………………[
………………………Command (foo n 0)
………………………Command (bar n)
………………………Command (foo n 1)
………………………]
…|> 平たくしたいんだけどapiなんだっけ

commands |> exec
2021/03/17(水) 23:04:39.26ID:BCS3Lg0C
あぁ…推敲しきらずポストしてもうた
怪しいところは汲み取ってください
要は、欲しい型はわかるんだけどapi覚えてないってときに使ってる
91デフォルトの名無しさん
垢版 |
2021/03/18(木) 02:54:39.89ID:ijvJpcOi
なるほろ
使ってみたら便利なのかも知れるなと思いつつ今はダメなのか
2021/04/14(水) 20:36:34.77ID:hiLJJetQ
W10Wheel.NET (F# 4.1) のソースを Visual Studio 2013 (多分 F# 3.1 だよね?) でビルドすることってできないもんかね?
W10Wheel.fsproj の中の TargetFSharpCoreVersion タグの値を 4.4.1.0 から 4.3.1.0 に書き直して挑戦してみたけど、後述のエラーでとおらなかったんだわ
唯一解決できたのは「エラー FS0039: 名前空間またはモジュール 'FSharp' が定義されていません」の行の open FSharp.NativeInterop → open Microsoft.FSharp.NativeInterop の手直しだけ
他の場所も、同様に機械的な手直しで潰せるなら、方法わかる人、教えてくれたら大感謝!
--
エラー FS0039: 値またはコンストラクター 'Ok' が定義されていません
エラー FS0039: 値またはコンストラクター 'Error' が定義されていません
エラー FS0039: パターン識別子 'Ok' が定義されていません
エラー FS0039: 値、コンストラクター、名前空間、または型 'defaultValue' が定義されていません
エラー FS0039: 値、コンストラクター、名前空間、または型 'contains' が定義されていません
93デフォルトの名無しさん
垢版 |
2021/04/14(水) 23:25:34.73ID:lr6/bOW3
そこら辺4になって追加されたりしたやつだろ
エラーになってるところ変えるなり同じ挙動するもの定義したりすれば良いのでは
2021/04/15(木) 08:35:42.95ID:T0uGWzJS
うん、そこまでは想像ついてる>4系で追加
なんで、その置き換えとか、言語知識なしでも機械的にA→B的置換とかでできないもんか? という相談
95デフォルトの名無しさん
垢版 |
2021/04/15(木) 11:50:46.24ID:MvsdeY6Q
率直に無理じゃね?とは思うけど教えてエロい人
96デフォルトの名無しさん
垢版 |
2021/04/15(木) 14:55:21.89ID:Ajqhz/yy
本来の目的をはっきり汁
97デフォルトの名無しさん
垢版 |
2021/04/15(木) 17:27:52.85ID:ZJJpe5u8
追加されたものはリフレクションなりぶん回せば取れるだろうけど、中身は自分で実装しなきゃだろうし。
Fosrynとか使って中身も持ってくるかソース直接見るか
98デフォルトの名無しさん
垢版 |
2021/09/24(金) 05:39:01.80ID:Zy9h69w8
Cにとってのトライトーン
極めて不協和音である
99デフォルトの名無しさん
垢版 |
2021/09/26(日) 10:00:16.57ID:oW0BMi/Z
RustよりもF#のほうが高速らしいね。
100デフォルトの名無しさん
垢版 |
2021/09/26(日) 11:01:27.10ID:YikVAXY0
いや流石にそれはないだろw
原理的に無理では
イミュータブルでものによっては早くなるパターンがあるとかならまだわかるけど
2021/11/16(火) 08:32:41.06ID:OAnBbSI0
またまけた

意外と知らない「国民1人あたりのCO2排出量」 1位はサウジ、5位は韓国、日本は何位?
https://news.yahoo.co.jp/articles/7bb34c2df73df99608a785882a612ff49ede5ec1
2021/11/16(火) 08:33:03.57ID:OAnBbSI0
誤爆 スマホ
2022/01/25(火) 11:52:31.80ID:GfuWsBWm
まだ実用的なもの作ってないが
MSとは思えない程のエレガンス、ML系の正統な後継者だわ
2022/03/17(木) 01:30:45.63ID:MVQpL6JJ
兄弟国 といえば どこ?

しかし似てんな やることも言うことも

ロシア語表記の袋入り注射器、山形の海岸にも漂着…砂浜数百メートルに散在
https://www.yomiuri.co.jp/national/20220315-OYT1T50098/#:~:text=数百メートルに散在,-2022/03/16&text=山形県庄内総合支庁,いるが、県内では初めて。
2022/05/02(月) 21:07:24.60ID:SiE8sOFg
き・も・ち・わ・る
2022/05/11(水) 19:00:03.29ID:421S2oIL
ocamlをWindowsで使うのが辛いので、ありがたい。
107デフォルトの名無しさん
垢版 |
2022/05/11(水) 20:00:16.28ID:2rkQGcHe
vNextってもう来たんだっけ?
2022/08/28(日) 08:35:00.65ID:uKar1hpM
勉強してアプリ一つ作ってみたけど結局C#でいいやってのが感想だった
109デフォルトの名無しさん
垢版 |
2022/08/28(日) 20:37:37.60ID:IC5bQQys
まあそう思うならそれでいいんじゃね?
ワイは使えるならF#のほうが遥かにマシだけど
2022/08/28(日) 20:48:23.49ID:DhGNghcs
そう思わない人が多いからこういう状況なわけで
111デフォルトの名無しさん
垢版 |
2022/08/28(日) 21:44:52.14ID:IC5bQQys
まあF#らしい使い方しなければその恩恵は得られないんだから仕方はないだろ
テンプレの整備とかもアレだし
2022/08/28(日) 22:13:04.30ID:iJSRjwGP
F#らしい使い方をした上でC#の圧勝だった
113デフォルトの名無しさん
垢版 |
2022/08/29(月) 08:34:52.52ID:XHdEZJlH
デフォルトイミュータブルにならないしパターンマッチもよく分からん記法だし末尾最適化もないしunionがやっと来るのか来ないのかだし、何をもって圧勝と言ってるのか分からん

マジでなんで圧勝なの?
2022/08/29(月) 09:02:07.01ID:5dAad4gs
生産性
115デフォルトの名無しさん
垢版 |
2022/08/29(月) 10:28:31.35ID:z6rvOrCE
ワイはF#の方が良い(イミュータブル、REPL、簡潔な構文・型定義など)けど、まあお前が思うならそうなんだろうとしか
2022/08/29(月) 10:56:58.78ID:VGGQRoto
F#の方が良いと思う人が多ければこんな状況にはなってないよねとしか
俺はF#が良いと聞いたから勉強してアプリ1つ作り上げてやっぱC#だわと思った両方使える人なんだわ
2022/08/29(月) 10:59:51.89ID:VGGQRoto
C#でもイミュータブルやREPLは使えるしC#の方が簡潔に書けることも多いのでお前F#しか知らんだろとしか思わん
118デフォルトの名無しさん
垢版 |
2022/08/29(月) 16:51:29.00ID:Pfprq7BC
とりあえず言語の良し悪しと主流になるかは一致しねーよ
js知らねーのかアホ

部分的にC#の方が簡潔にできるところはあるが全体通してコード量が短くなる事はねーよ
とりあえずお前がろくにF#知らない低脳チンカスってのはわかったからもういいよ
119デフォルトの名無しさん
垢版 |
2022/08/29(月) 16:59:08.54ID:Pfprq7BC
まあ最近はC#触るんでもUnityがメインなんで新しいバージョンの記法は追ってないからその辺で進化してたならすまんけど

コンストラクタで渡したものメンバーに代入とかしないで使えるようにとかもうなった?union来た?
2022/08/29(月) 17:30:14.60ID:P78cDJnu
何も知らなくて草
2022/09/04(日) 08:32:04.49ID:gz8Ny9ff
F#は進化の速度が遅いしメインストリームから取り残されてるのが難点
結局C#に乗り換えなきゃいけなくなる未来が予測できるのがいや

未来というか現在のBlazorどうすんのよ
Boleroじゃ代わりになんねんだよ
2022/09/04(日) 08:35:39.92ID:gz8Ny9ff
>>119
コンストラクタに渡したものをコーディング無しでプロパティに代入したいならrecordやDIがあるから特に不便はないかな
unitは欲しいね
2022/09/04(日) 08:36:22.42ID:gz8Ny9ff
予測変換でunitになったけどunionのことね
124デフォルトの名無しさん
垢版 |
2022/09/04(日) 09:53:55.58ID:W7eXpTBn
>>121
まあそこは分かる
ライブラリーとして使う分には使えなくなる事はないのかなとは思うけれど.NET Nativeみたいにビルドから対応してないみたいのが出てくるとあれ

そこはCILとして対応し続けてほしい所だがの
125デフォルトの名無しさん
垢版 |
2022/09/04(日) 10:16:03.59ID:RQxkFcRF
正直 D より F# が永息するとは思わなかった
2022/09/07(水) 11:36:01.66ID:AY0Q59m9
>>124
F#のアセンブリは.NETと完全な互換性はないからそのうち使えなくなることはあり得る
127デフォルトの名無しさん
垢版 |
2022/09/07(水) 12:07:12.13ID:TVqoBGD1
完全互換じゃないってどういう話?
CILから外れてたらそも動かんやろ?
2022/09/07(水) 12:14:01.18ID:AY0Q59m9
>>127
F#の関数はC#から使えないこともあるって知らないか?
129デフォルトの名無しさん
垢版 |
2022/09/07(水) 15:52:29.80ID:fPcvQ9Ha
それはC#がCILを満たしていてもなんでも呼べるわけではないって話じゃないの?
C#からのF#の呼び出し、やったの前だし呼びやすい形に調整してたから全部がどうとかは知らん。
130デフォルトの名無しさん
垢版 |
2022/09/07(水) 15:53:05.62ID:fPcvQ9Ha
とりあえず具体的にこの辺の項目とか上げてくれ。完全性求められても知らん
2022/09/07(水) 15:54:26.49ID:nM+jMFuw
>>129
VBからも呼べないんだわ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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