◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

【.NET】F#について語れ3【OCAML】 YouTube動画>1本


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1567937785/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2019/09/08(日) 19:16:25.58ID:8+6E4mCC
このへん
https://fsharp.org/
2デフォルトの名無しさん
2019/09/10(火) 12:55:36.44ID:hgTjQyGg
盛り上がらないな
3デフォルトの名無しさん
2019/09/11(水) 20:16:30.45ID:44pTzGZH
F#勉強中
ocamlがいいと思ったけど uint32やuint64のデータ扱う必要があったのこっちにしてみた
4デフォルトの名無しさん
2019/09/12(木) 02:05:52.67ID:CU8j8Rlm
F#って安心のMS製おまけになんでも出来るとか
5デフォルトの名無しさん
2019/09/30(月) 11:07:10.42ID:ppsQJFSg
C#となにが違うの?
6デフォルトの名無しさん
2019/09/30(月) 14:21:21.19ID:bgqbOy9v
書き方が違う…ていうか書き方だけが違う。
どっちも共通言語基盤を記述するための.NET Core上の言語だから。
7デフォルトの名無しさん
2019/09/30(月) 14:34:31.75ID:5kDC+PfZ
>>6
そりゃちょっとザッパすぎんだろw
8デフォルトの名無しさん
2019/10/01(火) 02:03:11.22ID:lxoE+i8d
C#で使えてF#で使えないやつあるから
書き方違うだけじゃない
9デフォルトの名無しさん
2019/10/01(火) 02:24:44.86ID:jETynVdv
F#で使えてC#で使えないものどんだけあると思ってんだよw
10デフォルトの名無しさん
2019/10/01(火) 21:18:40.56ID:eUOWQYaK
そいえばF#4.7になったんだね。
nextっていわれてるのが5.0になるんですか?
11デフォルトの名無しさん
2019/10/02(水) 00:50:34.49ID:77dcouWe
の予定
1210
2019/10/03(木) 12:45:01.35ID:edCxo4vD
>>11
ありがとうございます!
13デフォルトの名無しさん
2019/10/04(金) 15:18:30.58ID:yjd2OeGw
C#使いが感動しそうな機能とかない?
ちょっと興味がある。
14デフォルトの名無しさん
2019/10/04(金) 15:39:18.69ID:WM6EHY7P
代数型全般。
型推論
デフォルトイミュータブルで副作用を起こしにくい
遥かに便利なパターンマッチ
ユニットオブメージャー
コンピュテーション式
タイププロバイダー
5からの状態マシン作成

まあC#に比べてコード量が半分以下になるのが1番の利点かな
15デフォルトの名無しさん
2019/10/04(金) 15:40:00.56ID:WM6EHY7P
REPLも使いやすいと思う。LINQPADとか使ってるならまた別かもだけど
16デフォルトの名無しさん
2019/10/04(金) 15:46:48.28ID:WM6EHY7P
地味なとこではobject式もアドホックにインターフェース実装できて便利
17デフォルトの名無しさん
2019/10/04(金) 16:19:21.79ID:yjd2OeGw
ありがとう!
思った以上に自分の知らない機能があって驚いた。
F#の勉強をしてみる!
18デフォルトの名無しさん
2019/10/13(日) 21:37:57.96ID:q9BpmSxy
https://duckduckgo.com/bang?c=Tech&;sc=Languages+(Other)
https://duckduckgo.com/bang_lite.html
DuckDuckGo !Bang > Stackoverflow
!so
https://stackoverflow.com/questions/tagged/f%23
DuckDuckGo !Bang > はてなブックマーク
!hatebu
https://b.hatena.ne.jp/search/tag?q=F%23
DuckDuckGo !Bang > Qiita
!qiita
https://qiita.com/tags/F%23
DuckDuckGo !Bang > Quora
!quora
https://www.quora.com/search?q=F+Sharp
https://www.quora.com/topic/F-programming-language
https://jp.quora.com/search?q=F%23言語
DuckDuckGo !Bang > アマゾン
!amjp
DuckDuckGo !Bang > Twitter
!tw
DuckDuckGo !Bang > Twitter Hashtags
!hashtag
https://twitter.com/hashtag/fsharp
DuckDuckGo !Bang > 5ch
!5ch
DuckDuckGo !Bang > Reddit
!r
DuckDuckGo !Bang > SlideShare
!slideshare

http://rosettacode.org/wiki/Category:Programming_Languages
http://rosettacode.org/wiki/Category:F_Sharp
https://twitter.com/5chan_nel (5ch newer account)
19デフォルトの名無しさん
2019/10/13(日) 22:19:12.13ID:q9BpmSxy
F Sharp ガイド
https://docs.microsoft.com/ja-jp/dotnet/fsharp/
Wiki
https://ja.wikipedia.org/wiki/F_Sharp
DuckDuckGo !Bang > InfoQ
!infoq
https://www.infoq.com/search.action?queryString=f%23
https://www.infoq.com/jp/search.action?queryString=F%23
DuckDuckGo !Bang > Youtube
!you
20デフォルトの名無しさん
2019/10/15(火) 00:18:20.92ID:QozgpLZ7
【.NET】F#について語れ2【OCAML】
http://2chb.net/r/tech/1304185609
21デフォルトの名無しさん
2019/11/18(月) 01:55:29.88ID:uBOMXoSe
VS2019のオプションのF# デスクトップ言語のサポートは
ネットの情報だとF#だから入れとけば的なノリのようだけど
他のツールセット→データの保存と処理
(説明:SQL Server、Azure Data Lake、Hadoop を使用してデータ ソリューションの接続、
開発、テストを行います。 )
をチェックするとこれにチェックつくんだよね
もっと詳しい説明ない?
22デフォルトの名無しさん
2019/11/18(月) 02:15:31.31ID:IN24wKUz
何が知りたいの
23デフォルトの名無しさん
2019/12/04(水) 17:42:56.12ID:oHIt+BCl
https://github.com/MailRuChamps/raic-2019/blob/7845d674826d68cf8dfd5897752062fe7e0ce1b4/clients/fsharp/Runner.fs#L53


このrunメンバの呼び出しには何か意味あるの?runはメソッドになってるの?
24デフォルトの名無しさん
2019/12/04(水) 18:37:03.88ID:OijTnPmZ
getterじゃない?
厳密にはILレベルではメソッドだけど
25デフォルトの名無しさん
2019/12/05(木) 01:29:25.92ID:ANh+KvYG
>>23
プロパティだけど単に実行してその結果を受け取るためのキックとして使ってるだけでプロパティかメソッドかは別に重要じゃない
26デフォルトの名無しさん
2019/12/05(木) 01:30:29.38ID:ANh+KvYG
まあコードレビューならメソッドにしろっていうかな
27デフォルトの名無しさん
2020/01/01(水) 16:27:42.86ID:0CkTsEaj
新しいF#の拡張機能が凄いって話題だけど
C#と比較して色々まさるらしい
28デフォルトの名無しさん
2020/01/01(水) 18:34:26.95ID:9brXsNcr
どんな?
29デフォルトの名無しさん
2020/01/01(水) 19:23:44.00ID:0CkTsEaj
コンビネータでの構文拡張でC#より高速なコードが出せるとか
ちょっとした革命的な部分があるとか
これらの機能拡張のおかげでF#は控えめに見て最強かもな自画自賛
C#の弱点をF#は回避できる、結果C#より実行速度の速いコードが吐ける
30デフォルトの名無しさん
2020/01/01(水) 19:31:45.81ID:0CkTsEaj
MS内でF#は使われていないとか
使われていないので積極的な開発もなくてF#は死んだとか言われてたけど
もしかして逆転満塁ホームランかな~
F#って実はなんでも出来ちゃうC#並みになんでもって言われてて
そこに今回の話題です
31デフォルトの名無しさん
2020/01/01(水) 20:14:17.60ID:a1t8oDx/
>>30
その機能の事は知ってるけどまた改めて話題になってたん?
32デフォルトの名無しさん
2020/01/02(木) 03:58:03.03ID:jhqlWV51
>>31
twitterのタイムラインで知った、なんか凄そう
33デフォルトの名無しさん
2020/01/04(土) 00:22:00.69ID:cXgkEW1h
ツイッターってこれ? https://twitter.com/fsharporg
https://twitter.com/5chan_nel (5ch newer account)
34デフォルトの名無しさん
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)
35デフォルトの名無しさん
2020/01/07(火) 12:14:05.32ID:wBFbV3xy
ごめん、フォローしてる人のツイートでした
9月30日付けの記事
F# vNext は何が "ヤバい" のか: Monadic Programming の新時代
4.3 すべてが F# になる
https://qiita.com/cannorin/items/1936faded610c3ab6c18
36デフォルトの名無しさん
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
37デフォルトの名無しさん
2020/05/18(月) 21:31:15.79ID:EHBNcla8
F#に栄光あれ
38デフォルトの名無しさん
2020/07/26(日) 23:50:10.39ID:XeHUL0wp
F#世界征服
39デフォルトの名無しさん
2020/08/05(水) 00:09:20.37ID:bjggIIig
F#とビックバン
40デフォルトの名無しさん
2020/08/10(月) 19:30:31.90ID:obUihWqz
F#はブラックホール
41デフォルトの名無しさん
2020/08/11(火) 08:55:15.85ID:YyNVoUsd
blackhole: 't -> ()
42デフォルトの名無しさん
2020/08/12(水) 00:39:53.15ID:0m+eHDtL
F#は宇宙その物なのに

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

https://www.tutorialspoint.com/fsharp/fsharp_lists.htm
46デフォルトの名無しさん
2020/08/15(土) 16:03:13.72ID:XjnR78WG
一覧性はこっちもいいですね。
サンプルコードないけど。
https://fsharp.github.io/fsharp-core-docs/reference/fsharp-core-operators.html
47デフォルトの名無しさん
2020/08/20(木) 21:16:13.93ID:F3pjFb9s
久しぶりにいじったらfsxのスクリプトとかもけっこう動作速くてビビった
HTAとかpowershellの重いやつF#でポツポツ書き直しとる
48デフォルトの名無しさん
2020/08/21(金) 00:19:46.75ID:l8mARvuP
vbsでコマンド窓出さないラッパとかも.netのほうがふつうに速いな
49デフォルトの名無しさん
2020/08/21(金) 23:07:05.50ID:8b3i3oD2
fsxって今でも実行にf#のランタイム必要?
exeにコンパイルすればstandaloneになるけど。
windowsビルトインだけでfsxが動くなら配布しやすいんだよなー
50デフォルトの名無しさん
2020/08/22(土) 01:31:15.30ID:sbTIr2Z/
ランタイムが何を指してるか知らんけどどのみちfsiがなきゃ動かんだろ
51デフォルトの名無しさん
2020/09/30(水) 20:04:31.55ID:0r1wHLnO
F#って、DBにデータが存在するとき上書き警告のポップアップをだして更新、なければ挿入、的な処理は作れるんですか?
52デフォルトの名無しさん
2020/09/30(水) 20:17:32.00ID:Q/IggaOh
何で出来ないと思うの?
53デフォルトの名無しさん
2020/09/30(水) 22:13:47.43ID:08fRNxc8
手続きも書けるのですか?
54デフォルトの名無しさん
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
デバイスドライバ
57デフォルトの名無しさん
2020/10/22(木) 10:37:14.60ID:Qlnohm+l
パイプラインも見方によれば手続きじゃん
58デフォルトの名無しさん
2020/10/22(木) 14:22:20.80ID:t1R9Kn4k
手続きは基本的に個々のステートメントでIOが入るイメージ
59デフォルトの名無しさん
2020/10/26(月) 13:50:55.24ID:d2xPz+W7
変数への代入という意味なら、λ式使うと出来るよ
Haskellのモナドはそうやってるし
60デフォルトの名無しさん
2020/10/26(月) 19:18:50.12ID:ct6e5loO
Stateモナドのことモナドって呼ぶのやめろ
61デフォルトの名無しさん
2020/10/26(月) 21:47:30.08ID:d2xPz+W7
へ? State関係ないあるよ

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

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

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

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

ひとまず、elmishで悩んでたことをこっちで試してみます。
72デフォルトの名無しさん
2021/02/04(木) 19:38:40.95ID:4EyDekmA
F#の文法の基礎とかアプリを作るまでの流れを学びたいんだけど、お勧めはありますか?
最初はオライリー買おうかと思ったんですけど、2010年08月発行とかなってて心配です。
73デフォルトの名無しさん
2021/02/04(木) 22:07:05.94ID:OLEUfSPw
どういうバックグラウンド持った人か知らないけど、ベースから固めていきたい人ならf# 入門でググった結果→必要あればdocs.microsoft.comでいいと思うよ
作りたいアプリが決まってるなら、フレームワークの使い方から学んだほうが早いんでないかな。
74デフォルトの名無しさん
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
でもアプリ作る所、はあまり書いてないかも
アプリが何を指すか分からんけど
77デフォルトの名無しさん
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の手助けを得やすいとかはあると思いまうす
80デフォルトの名無しさん
2021/02/15(月) 01:26:40.83ID:oA6rG6Z/
VMといえば仮想マシン

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

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

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

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

っていうことで、撤回
85デフォルトの名無しさん
2021/03/16(火) 20:47:37.00ID:rNZytrCC
fsdn稼働してないね、やめちゃったの?便利だったんだけどな
dotnet cliしかインストールしてないせいか知らんけどFsharpApiSearch動かんし。
86デフォルトの名無しさん
2021/03/17(水) 00:22:11.85ID:XYPLqt0O
全然使ってなかったわ
どういう時に使うん?
87デフォルトの名無しさん
2021/03/17(水) 00:29:51.51ID:BCS3Lg0C
レポジトリのreadmeにかいてあるよ
hoogleみたいなやつ
88デフォルトの名無しさん
2021/03/17(水) 13:51:03.97ID:XYPLqt0O
シグネチャ元に探せるってやつだよね?
どういう時にそれが便利なのかがよくわかっておらず
89デフォルトの名無しさん
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
90デフォルトの名無しさん
2021/03/17(水) 23:04:39.26ID:BCS3Lg0C
あぁ…推敲しきらずポストしてもうた
怪しいところは汲み取ってください
要は、欲しい型はわかるんだけどapi覚えてないってときに使ってる
91デフォルトの名無しさん
2021/03/18(木) 02:54:39.89ID:ijvJpcOi
なるほろ
使ってみたら便利なのかも知れるなと思いつつ今はダメなのか
92デフォルトの名無しさん
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になって追加されたりしたやつだろ
エラーになってるところ変えるなり同じ挙動するもの定義したりすれば良いのでは
94デフォルトの名無しさん
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
原理的に無理では
イミュータブルでものによっては早くなるパターンがあるとかならまだわかるけど
101デフォルトの名無しさん
2021/11/16(火) 08:32:41.06ID:OAnBbSI0
またまけた

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

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

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

マジでなんで圧勝なの?
114デフォルトの名無しさん
2022/08/29(月) 09:02:07.01ID:5dAad4gs
生産性
115デフォルトの名無しさん
2022/08/29(月) 10:28:31.35ID:z6rvOrCE
ワイはF#の方が良い(イミュータブル、REPL、簡潔な構文・型定義など)けど、まあお前が思うならそうなんだろうとしか
116デフォルトの名無しさん
2022/08/29(月) 10:56:58.78ID:VGGQRoto
F#の方が良いと思う人が多ければこんな状況にはなってないよねとしか
俺はF#が良いと聞いたから勉強してアプリ1つ作り上げてやっぱC#だわと思った両方使える人なんだわ
117デフォルトの名無しさん
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来た?
120デフォルトの名無しさん
2022/08/29(月) 17:30:14.60ID:P78cDJnu
何も知らなくて草
121デフォルトの名無しさん
2022/09/04(日) 08:32:04.49ID:gz8Ny9ff
F#は進化の速度が遅いしメインストリームから取り残されてるのが難点
結局C#に乗り換えなきゃいけなくなる未来が予測できるのがいや

未来というか現在のBlazorどうすんのよ
Boleroじゃ代わりになんねんだよ
122デフォルトの名無しさん
2022/09/04(日) 08:35:39.92ID:gz8Ny9ff
>>119
コンストラクタに渡したものをコーディング無しでプロパティに代入したいならrecordやDIがあるから特に不便はないかな
unitは欲しいね
123デフォルトの名無しさん
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# が永息するとは思わなかった
126デフォルトの名無しさん
2022/09/07(水) 11:36:01.66ID:AY0Q59m9
>>124
F#のアセンブリは.NETと完全な互換性はないからそのうち使えなくなることはあり得る
127デフォルトの名無しさん
2022/09/07(水) 12:07:12.13ID:TVqoBGD1
完全互換じゃないってどういう話?
CILから外れてたらそも動かんやろ?
128デフォルトの名無しさん
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
とりあえず具体的にこの辺の項目とか上げてくれ。完全性求められても知らん
131デフォルトの名無しさん
2022/09/07(水) 15:54:26.49ID:nM+jMFuw
>>129
VBからも呼べないんだわ
132デフォルトの名無しさん
2022/09/07(水) 15:55:02.49ID:nM+jMFuw
当然IronPythonからもな
133デフォルトの名無しさん
2022/09/07(水) 15:57:55.34ID:nM+jMFuw
CILがどうとかじゃなくF#の関数はF#が消えたら呼べなくなるからdllだけ残っても何の役にも立たんよってこと
134デフォルトの名無しさん
2022/09/07(水) 17:41:01.64ID:iZdF3GMM
internalじゃないやつは静的クラスのメソッドとして呼べるだろ?
135デフォルトの名無しさん
2022/09/07(水) 17:44:23.79ID:iZdF3GMM
その辺のF#だけからしか呼べない形態、どれがあったのか忘れた(というかあまり問題にしてなかった)けど、他から呼べるように公開したいものはそう出来て、それはCILにのっとってるんだから>>126はちょと違うんじゃ?と思った次第
136デフォルトの名無しさん
2022/09/09(金) 09:23:25.38ID:v5NOhSMN
流行らないなあ、キレイなML+標準ライブライブ超充実の、歪なようで噛み合う組み合わせがめっちゃ面白いんだけど

コミュニティには参加してないけど、むしろ面白さを重んじる俺みたいなアマチュア好みだからプロに疎まれてる感とかあるのかなって
海外とかでメイン言語として採用してる会社とかもあるしプロだから、とかは別にないでしょ

ただやはりいつまであるのかってのは客からも上がってくるからそういうのを忌避したいとことか別にC#でいいんじゃ?って思うところはあえて採用しようとはしない、って感じじゃ

自分は生産性上がっていいと思うけどね
138デフォルトの名無しさん
2022/09/09(金) 12:00:31.47ID:UNSkh5ZW
vbがどうなったか覚えてるだろ?
あのマイクロソフトの代名詞にもなったvbが切られるんだからな
C#で十分な生産性が確保できる以上、五十歩百歩のメリットしか出せない割にデメリットのでかい別言語は要らんのよ
ほとんどスタッフの趣味で続いてるようなもん
139デフォルトの名無しさん
2022/09/09(金) 13:05:55.11ID:JNXuk8tN
うんだから、お前がロクなメリットを引き出せてない話はわかったからそれはどうでもいいです
140デフォルトの名無しさん
2022/09/09(金) 13:31:54.27ID:UNSkh5ZW
引き出すも何もunionくらいだろ
些細なことよ
141デフォルトの名無しさん
2022/09/10(土) 18:54:08.21ID:Qyx+mFnV
C#のUnionはC#10に実装の話も出てたけど11にも間に合わなかったな
型制約とenumで似たようなことができるとは言えあればあったで便利だと思うんだが
142デフォルトの名無しさん
2022/09/11(日) 01:28:49.63ID:bYqWwakP
QiitaのF#を知ってほしい人もlinuxだし
M.Hiroi氏もWSLのUbuntuでF#入門やってた
windowsのVisualStudioじゃなくて
わざわざ仮想マシンやWSLのlinuxでやるのが主流なのかね
143デフォルトの名無しさん
2022/09/11(日) 13:02:27.33ID:ouHf9wOU
C#から呼び出せるとか.netライブラリ使い放題とかは正直微妙に終わったと思う
その代わりUnix系言語の1つとして認められるようになった
この板はwindows系の言語は無視される傾向にあるのでそれはよいことだ
俺みたいにwindowsのCUIでしか使ってないごく少数派からみれば微妙ではあるが

dotnetになってからコマンドラインだけでやるのはもうしんどいというか無理があるね
設定をxmlで書かないといかんし調べてもよくわからんかった
fscとfciでがんばり続けるほどのレガシーもないからいいけど
144デフォルトの名無しさん
2022/10/16(日) 18:17:06.10ID:ey6gZIQ/
Fableやろうとしたけど環境構築で死んだわ
もうちょっと情報が充実してくれると助かるんだけどねえ
145デフォルトの名無しさん
2022/10/19(水) 08:16:23.60ID:14kChQ3G
>>142
winget install dotnetなんとかsdkのコマンド一発で環境構築終わらなかったっけ

wslは知らないけど、pc向けlinuxならwingetの代わりにaptとか別のパッケマネで挿げ替えれば通った記憶があるので、linux/macOSなど若干アウェーな環境でも特に障壁はないはず

好みの問題かと
146デフォルトの名無しさん
2022/10/19(水) 09:37:27.61ID:qMrE132j
>>144
Fableで何をしようとしているかにもよるけど、SAFE stackとかは?
147デフォルトの名無しさん
2022/10/23(日) 07:42:55.15ID:Ok80kDIa
>>146
フロントエンドだけで使う想定だったんで、SAFEだとちょっと大掛かりかなと思ってた

ちなみに原因はFableじゃなくnode.jsの依存関係にあった
npm installした後にnpm audit fixコマンドで脆弱性潰せみたいなメッセージが出るけど、
このコマンドを実行したせいで依存関係がめちゃくちゃになったらしい
無視したら普通にnpm startでコンパイル成功した
148デフォルトの名無しさん
2022/10/24(月) 00:50:34.52ID:8Lz7V8Tn
>>147
なるほど。まぁ解決してるようなので良かったです。

Fableは日本語の情報が少ないので苦労するよね。

最近は個人的にFable.Litがお気に入り。
149デフォルトの名無しさん
2022/10/24(月) 10:05:32.79ID:aCYxRFeC
Fableも最近はElmぽくしてるやつが主流?
150デフォルトの名無しさん
2022/10/24(月) 13:17:16.08ID:CSVgb4N8
YouTube で有名な雑食系エンジニア・KENTA の動画がある

EC2はもうオワコンです


もう、Windows の実行環境がない。
もう、OS, AWS EC2 も使わない。管理・構築しない

すべてコンテナ・Docker へ移行した。
使うのは、AWS Lambda, Fargate, Kubernetes

DockerはLinuxだけの技術で、他のOSでは使えない。
Microsoft も、Linux財団に加入して開発している
151デフォルトの名無しさん
2022/10/24(月) 17:59:04.00ID:8Lz7V8Tn
>>149
Elmishも有れば、Felizスタイルっていう素のReactっぽい書き方も有ります。

この辺は好みで選べる感じみたい。

自分はElmishに慣れてしまったのでFelizスタイルはよく知らないっす。
152デフォルトの名無しさん
2022/10/24(月) 18:04:04.32ID:aCYxRFeC
Felizは初めて聞いた。フロント絶対触らないぞ、と頑張ってきたけどぼちぼちやらないといけなくなってきたからちょっと見てみるわー

jsでやるよりやっぱり楽かなー
153デフォルトの名無しさん
2022/11/02(水) 07:52:27.54ID:lcK3s+C7
F#についてはまったくの初心者です
fortran pythonをうごかしていました
質問ですがf#でコマンドラインで実行ファイル作成法がわかりません
c#ですとコンソールで
csc file.cs と打って
実行すれば実行ファイルを作成できます
F#にもfsc.というコマンドがありますがエラーになります
dotnetをつけてもだめでした
visual studioでbuildをすればいいのかもしれませんが
visual studio不慣れで使いたくありません

f#ではコマンドラインで実行ファイルをつくることはできないのでしょうか
できないならf#はあきらめc#を勉強しようと思います

ご教示よろしくお願いします
154デフォルトの名無しさん
2022/11/02(水) 10:18:21.97ID:VBEVpYP2
fsiでスクリプト実行じゃなくてコンパイルしたいなら、面倒だけどdotnet new --lang指定でプロジェクト作ってdotnet build
155デフォルトの名無しさん
2022/11/02(水) 11:13:56.52ID:lcK3s+C7
>>154
ありがとうございます
以下を実行しました
program.fsを作成
dotnet new console -lang F# -o program -f net6.0
cd program
dotnet build
cd bin/bpc/debug/net6.0
program.exe

実行ファイルはできましたが
ソースひとつごとにプロジェクトを作成して
実行ファイルはソースと別のディレクトリにできる
ということになりますね

fsiを動かすにしても1ソース1プロジェクトのようですし
これで作業は効率的なんでしょうか
visual studioを使えっていうことでしょうかね

これまで
editorでrソース作って コンパイルして実行という手順に慣れている者にとっては面倒ですね

fsc.exeはいつ使うんでしょうかね
やはり C#かな
156デフォルトの名無しさん
2022/11/02(水) 13:49:39.71ID:gl9lvyny
build時のデバッグ情報にfscの呼び出しあるだろ?真似ればいいんじゃね
自動で適切な引数渡してくれるのに、わざわざ自分でコンパイラオプションや必要なアセンブリ集める方がよっぽど面倒だと思うが
157デフォルトの名無しさん
2022/11/02(水) 14:01:10.82ID:gl9lvyny
そもそも初心者が実行時コンパイルの僅かなオーバーヘッドを気にするべきじゃないと思うんだが
fsiスクリプトはほとんどの言語より高速だし、fscを触るのは本当にパフォーマンスに困ってからでいいかと
158デフォルトの名無しさん
2022/11/02(水) 15:04:42.18ID:VBEVpYP2
コンパイラの仕組みに興味があるなら
https://github.com/dotnet/fsharp/blob/main/docs/overview.md

コマンドラインのオプション解析、parsing/lexing、参照解決、型チェック、最適化、バイナリ生成etc
全てfsharpで書かれてるので勉強にもなるし、ぶっちゃけマニュアル読むより速い
159デフォルトの名無しさん
2022/11/02(水) 16:40:26.11ID:RxFRhVgo
>>158
MSの長い識別子と、頑強なんだろうけどベタ書きコーディングスタイルだとC#に見えてくる

yacc/lex風のDSLで文法定義してるのはF#らしいし眺める価値ある
160デフォルトの名無しさん
2022/11/02(水) 17:11:58.19ID:Cz0q4/YM
>>155
こいつみたいに勘違いして文句つける奴ほんまうざい
161デフォルトの名無しさん
2022/11/02(水) 17:25:00.04ID:lcK3s+C7
>>158
ありがとうございます。
fsc.exeもfsharp(?)で書かれたテキストファイルなんですね
fsc.fsを155と同じ手順でコンパイルしてみました
fsc.exeはできましたが、
fsc program.fsを動かしてもprogram.exeはできません
結果を表示しますのでfsiになっているようです

ソースを書き換えればいいのでしょうが、私には無理です
fsharp 勉強してみます
162デフォルトの名無しさん
2022/11/02(水) 18:58:19.36ID:lcK3s+C7
>>161
すこし動かしてみました 
表示はどうやってもHello from F#
になります。
ソースを読み直してみます
163デフォルトの名無しさん
2022/11/02(水) 19:28:08.88ID:lcK3s+C7
>>163
buildしなおしましたら エラー100個でました
164デフォルトの名無しさん
2022/11/02(水) 20:03:48.67ID:lcK3s+C7
どうでもいい話でおさわがせしています。
原因わかりました 対処法わかりませんが
dotnet new console -lang F# -o program -f net6.0
でプロジェクトをつくると
program.fsは hello worldを表示するfsをつくります
ソースをかえてbuildしたつもりでしたが、
常にprogram.fsをbuildしていました
ですので何をしてもhello wolrdを表示していました。

おさわがせしましてもうしわけありません。
155の流れのバッチファイルをつくればいいのかと考えています
165デフォルトの名無しさん
2022/11/02(水) 21:08:41.81ID:VBEVpYP2
>>161
ごめんよくわからない、>>158のfscコンパイラのソースをコンパイルしたの?
fsc(.exe, dll etc)がそれだから持ってるなら必要ないよ
引数に何を与えるべきかドキュメント読んで分からないなら、>>158のコードは参考になるけど

dotnetのプロジェクト管理が嫌なだけなら、>>156の出力をコピペ&好きに改竄して、ps1でもbatでもshでもnmakeでもmakeでも好きな方法で呼べばいい
dotnet build -v d (-verbosity detaildの略)ね

ホスト、ターゲット、動的/静的リンク諸々全て環境依存だけど
dotnet path/to/fsc.dll -o:path/to/fsharp.dll \
-g --debug:portable --noframework \
--define:TRACE -define:NET6_0 \
...
-optimize- --tailcalls-
-r:path/to/dlls \
...
--target:exe --nocopyfsharpcore ... Program.fs
みたいなコマンドを発行してはず
166デフォルトの名無しさん
2022/11/02(水) 21:15:42.03ID:VBEVpYP2
というかこんな些末な事を気にする前に、とにかくfsiを立ち上げて公式チュートリアルでもこなせば
167デフォルトの名無しさん
2022/11/02(水) 21:24:08.66ID:ahOvjMWx
環境構築が趣味なんだろ
168デフォルトの名無しさん
2022/11/02(水) 22:18:02.52ID:Dj/Cqb/4
ビルドできてREPLも使えてるのに何が問題なんだ?
自分好みのビルドスクリプトを書きたいようだけど、使ってない言語のコンパイラオプションを適切に選べるとでも思ってるのか

そんなに俺々ビルドスクリプトを書きたければ、F#で書けばいいのに
batなんかよりずっと楽に書けるぞ
169デフォルトの名無しさん
2022/11/03(木) 07:54:33.74ID:diaW/wXZ
もう一度 fsc.exeを探しましたら 見つかりました
おそらく visual studioをインストールしたときにできたものと思います
場所は
c:\program file (x86)\Microsoft Sdks\F#\4.0\Framework\v4.0
コマンドプロンプト画面で
fsc program.fsxと打つと
program.exeができました
fsi program.fsx
でhello world
も表示できました

editor+コンソールでの作業に慣れていますので
これで心置きなくF#を勉強できます

おさわがせしましてもうしわけありませんでした
170デフォルトの名無しさん
2022/11/03(木) 07:59:03.87ID:sWIbv+Sc
何でわざわざexeにしてるのか意味わからん
評価したいとこ選択して評価すればいいだろ
171デフォルトの名無しさん
2022/11/03(木) 08:26:48.53ID:diaW/wXZ
FSI.exeが動きますので
評価はfsiでもできます
ソース作ってfsiを動かすだけですので
私的にはテストを楽にできます

複数の機器でテストしたいこともありexeファイルも必要となっています。
172デフォルトの名無しさん
2022/11/03(木) 15:14:32.39ID:diaW/wXZ
visual studioをインストールしなくとも
Visual F# Tools 4.0 RTM
https://www.microsoft.com/en-us/download/details.aspx?id=48179
をダウンロード、インストールすれば
f#のコンパイル環境をつくれました。
VS2022はwindows32ビットに対応していなかったのですが、これでF#をテストできます
(dotnetを使えば動くようですが)
173デフォルトの名無しさん
2022/11/07(月) 10:48:53.78ID:tRej1mOW
vscodeで動かそうとしましたがデバッグの環境をうまく設定できず
コマンドラインでうごかしています
バージョンが古いせいかときどきエラーでとまります
たとえば
printfn "%s %s %s %s" names.[0] names[1] names[2] names[3]

Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized

printfn "%s, %s, %s, %s" names.[0] names[1] names[2] names[3]
にして動きました

また、小文字、大文字を区別しているんですね しばらくエラーがでて考えてしまいました

関数型とは なんでも名前をつけるということなんでしうか
例えば  a+bはadd とか
途中で数式を使わないということでいいんでしょうか

面白いですが
数値解析+画像表示に使えるかどうか
174デフォルトの名無しさん
2022/11/07(月) 16:58:29.61ID:tRej1mOW
letで関数作るとき
改行するとpythonのように文字下げしなければならないんだね
わかるまで1日かかった
175デフォルトの名無しさん
2022/11/08(火) 11:41:00.43ID:TUBjjFuN
ライブラリ FSharp.PowerPackを入れて複素数を計算してみようとしていますが出力方法がわかりません
わかりましたら教えてください 
単純化しています 

#r "FSharp.PowerPack.dll"
let x = complex -1.0 0.0
printf  (を出力)
176デフォルトの名無しさん
2022/11/08(火) 14:01:13.27ID:TUBjjFuN
>>175
わかりました
printf "%e,%e" x.RealPart x.ImaginaryPart

また1日かかってしまいました
177デフォルトの名無しさん
2022/11/08(火) 15:23:19.55ID:OezK6zca
洋書なら比較的新しい環境構築も含めた入門書あるだろうから先にそれ読んだ方がいいんじゃないの
178デフォルトの名無しさん
2022/11/08(火) 18:53:26.48ID:ruqPIjM/
F#の情報は、まあ少ないなあ

プログラミングの一般的な知識や慣習が欠けてるならPowerPackで古い日本語サイトや書籍の多いML(というかOCaml)と大体互換になるので、それも参考に
179デフォルトの名無しさん
2022/11/09(水) 18:04:47.14ID:Ye9xlnfW
アマゾンでは評判悪いですが
やさしいF#入門 日向健二著
で勉強しています。2010年出版ですのですこし古いかもしれませんが基本は同じかと
windowsアプリケーションの例題を動かしてみました
オブジェ久トに関しては今から勉強です

それとは別に
microsoft visual F# programming
www.visualfsharp.com/index.htm
でsystem.drawingでのグラフィックを試しています
xplotとかplotlyが必要なのかと思っていましたがどうなんでしょうか
180デフォルトの名無しさん
2022/11/10(木) 00:34:16.29ID:zLzbMwRI
>>173
関数型とは何か、なんて言える程偉くないのでとりあえず
処理を連ねて書き(パイプライン、|>)、抽象化できる部分に名前を付けてファクターアウト(関数合成、>>)
というF#の目立つスタイルについてだけ

それ自体は連鎖型言語(forth, postscript等)スタイルを型推論で補強したもの、と見ていい
名前の付け易さ=テキストとしてのコード片に意味を与えられるか

グローバル状態へ(副)作用する演算子の併置のみで記述する連鎖型言語には、プログラムから任意に切り出したコード片も有効なプログラムとなる性質がある
一方でそのコード片の任意な繋ぎ合わせも有効(だけど多分無意味)という問題もある

関数型スタイルは状態を持つ事を避ける真逆の発想でロジックの分離を奨励するけど、柔軟な記法定義を許せば連鎖型風のテキスト上の切り出し性までエミュレートできる
さらに型推論で無意味な貼り合わせの大半を防ぐ、というのが売り
181デフォルトの名無しさん
2022/11/10(木) 00:45:12.32ID:zLzbMwRI
関数型を極端に突き詰めれば、引数に一切言及しないポイントフリースタイルに行き着くけど
これは連鎖型スタイルそのもの、唯一のグローバル状態が暗黙の引数なので言及しない

当然どちらの極端も実用的でないので、名前は付けようね
182デフォルトの名無しさん
2022/11/10(木) 01:26:51.45ID:OT0JIVh4
純粋なforthプログラムはコンビネータの列と見なせるし、むしろ関数型と呼んで良いのでは
括弧、というかスコープが無いのでラムダ計算との相性が悪すぎるのが難点
lispの対極
183デフォルトの名無しさん
2022/11/10(木) 18:27:18.07ID:Z9ZM7zcW
コードをフラットに書ける点に着目するならML系やHaskellの自動カリー化も忘れるな
lispでもやろうと思えばできるけど、()のネストでフラットには読めないし、()を除いたら自慢の一貫性のある意味論が崩壊する
184デフォルトの名無しさん
2022/11/11(金) 07:57:58.07ID:9wAD6Zbc
vs、vscodeを使えればわざわざやることもないのですが
これらが使えないので
sublime text3 でF#の実行環境をつくりました
パケージのインストールに手間取りました

これで、エディターだけで実行までできるようになりました
185デフォルトの名無しさん
2022/11/11(金) 19:22:08.65ID:9wAD6Zbc
sublimeが動きだしましたので、これまでつくったWEBアプリのサンプルをテストしてみました
ウィンドウを開いて線を表示する例、 sublimeですと動きません
いろいろ試してne for,rm()をnew Form(,Visible=true)にすると動きました
ところが、修正したソースをコマンドラインからfsiで動かす動きません

どうなってるんでしょうかね
186デフォルトの名無しさん
2022/11/11(金) 21:43:50.15ID:bDcA3rjx
別スレ作ってそっちでやれよ
187デフォルトの名無しさん
2022/11/12(土) 06:48:22.30ID:Vk5CwTlK
>>185
F#で書いてるんだけど
188デフォルトの名無しさん
2022/11/16(水) 19:40:08.80ID:+z5R74k6
Fabulousで.NET MAUIが使えるようになったらしい
https://twitter.com/Tim_Lariviere/status/1592803782785892353?t=qpmQw2HsID1jAEsuOl9LBw&s=19
https://twitter.com/5chan_nel (5ch newer account)
189デフォルトの名無しさん
2022/12/06(火) 21:42:45.15ID:Z/dKkADi
>>182
それでなぜラムダ計算との相性が悪すぎるのか
スコープって見た目の話か
190デフォルトの名無しさん
2022/12/06(火) 22:36:21.38ID:QlIMbh6a
>>189
おれはgforthで遊んでるくらいだけど、ラムダ計算っぽく書けないという意味ならスコープのせいだろう
ローカル変数(スタック){: ... :}もANSIに入りはしたけどゴミだから俺独自の{ ... }使えって始末
forth-standard.orgで議論やってるけど、ローカル関連は炎上祭りよ
そもそもの言語哲学に反してるのもある
191デフォルトの名無しさん
2022/12/06(火) 22:56:03.79ID:NXqSTiS1
仮引数すら拡張的な位置付けなら、λの入り込む余地なんてないわな
192デフォルトの名無しさん
2023/01/09(月) 22:38:07.76ID:P8VzlMvA
最近独学で触り始めて面白いなーと思ってるんだけど
日本でF#の案件ってないのかな
193デフォルトの名無しさん
2023/01/10(火) 12:55:32.80ID:xQ3373Gc
実案件にF#ぶっ込んだけど募集案件としてはたまーに見るくらいやな
194デフォルトの名無しさん
2023/01/23(月) 15:49:01.68ID:vIT0tuiY
人気ないなあこの言語
195デフォルトの名無しさん
2023/01/23(月) 17:21:06.97ID:a4EgEm41
>>194
んー。なんでだろうね
196デフォルトの名無しさん
2023/01/25(水) 09:53:51.40ID:RZa9VHBZ
この言語って"知られていない"の一点に尽きる気がする
TypeScriptよりも書いていて気持ちいいと思うんだけどな
197デフォルトの名無しさん
2023/01/25(水) 20:02:30.86ID:2bKf7Laz
MSが力入れてないのでテンプレートがないとかで使いにくいとこはあると思うけどそのほかは今でもC#より優れてるとこ多々あるとは思うよ
Unityで使えるならこっち使いたいわ
198デフォルトの名無しさん
2023/01/26(木) 08:47:58.88ID:FLQwi+2l
>>197
F# Unityでググると、日本語の記事がいくつかヒットするけどどうなんだろ。
199デフォルトの名無しさん
2023/01/26(木) 09:15:28.50ID:Jfa2YV7v
>>198
WindowsでIL2CPP使わないなら使えるというかF#でつくったdllの呼び出しが出来るって話だと思う。
モバイルとかはもうIL2CPP前提だから無理ぽ
無理というかタイプのネストが9以下ならいけるはずなんだけどF#じゃ軽く超えるからやはり無理ぽ
200デフォルトの名無しさん
2023/01/28(土) 18:25:58.60ID:mPwfONGy
技術書コーナーでF#の本を見たことがない
201デフォルトの名無しさん
2023/01/28(土) 19:31:13.85ID:5OMXkAmW
日本語の本はもう10年近く出てないだろうしな…
202デフォルトの名無しさん
2023/02/24(金) 18:06:03.59ID:DO2HmvEC
Unityばかり使っててF#全然触ってないんだけど、ジェネリクス使おうとするとF#の楽さが身に染みる
203デフォルトの名無しさん
2023/06/14(水) 17:45:55.59ID:XMqK+ap6
実務でF#使ってるっていう会社の面接受けてて好感触なんだが果たして本当に大丈夫なのだろうか……C#の経験しか無いんだが
まぁあとはF#みたいな割とマイナー寄りなところの経験積んでも将来なぁみたいな。F#使ってる会社ってどれくらいあるんだろう
204デフォルトの名無しさん
2023/06/15(木) 13:56:59.56ID:frn/21Cm
正直言語なんでなんでもいいしそこで関数型やら.NETやら慣れたら他にも応用効くでしょ
205デフォルトの名無しさん
2023/06/15(木) 18:42:35.30ID:pUp5jw/a
G--
206デフォルトの名無しさん
2023/06/15(木) 23:50:49.25ID:IUPOKbhQ
Elixir の方が良い。
Ruby っぽくて可読性も高い

スクエニでも使っているらしいし、
Ruby on Rails の本も出している、黒田努の本も出た

Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11

Phoenix, BEAM というフレームワークもある

YouTube で有名な雑食系エンジニア・KENTA は、
Phoenixでポートフォリオを作った。
Railsに似ているのかも
207デフォルトの名無しさん
2023/06/16(金) 21:44:52.28ID:Ya9firZ8
BEAMはフレームワークじゃないだろ
208デフォルトの名無しさん
2023/06/28(水) 13:30:46.03ID:BVdlIcNn
漠∞!!!!
列∞!!!!!
廷∞!!!!!!
器∞!!!!!!!
業∞!!!!!!!!
論∞!!!!!!!!!
寿∞!!!!!!!!!!
素∞!!!!!!!!!!!
209デフォルトの名無しさん
2023/07/06(木) 23:12:25.30ID:D9prSSOp
>>203だけど結局会社入った
F#とC#が入り乱れるフレームワークとそれによるシステムで超苦戦してる
というかF#まじで分かりにくくない?let let letでもう何が何なのか区別が本当につけにくい
{}の区切りも無いから巨大な1ファイルにたくさんクラスがあったりするとどっからどこまでが1クラスなのかすらよく分からない
あとそもそも学習リソースが無い。英語の本やサイトくらいしか包括的に学べない

転職先選び失敗したかなぁ……1週間で早くも落ち込んでる
210デフォルトの名無しさん
2023/07/07(金) 07:54:48.06ID:CjPc9ICD
>>209
業務でF#使えるなんてうらやましい。

ちょっと古いけど、自分は「実践F#関数型プログラミング入門」って本で勉強したヨ。

がんばれ
211デフォルトの名無しさん
2023/07/09(日) 22:25:24.69ID:xVwuu7Mx
>>209
typeとletで普通に見分けつかん?
英語の本あれば十分なのでは…というか英語でダメならこれを機会に英語勉強しろ
翻訳するのもあり
212デフォルトの名無しさん
2023/07/13(木) 00:01:20.07ID:Bgq+8lL5
F#のベストプラクティスがよく分かってないからあれなんだけど
moduleはC#でいうところのstatic classみたいなもんっていうの読んであれ?って
ユーティリティクラスは良くないとか言われるけどあんまstatic classにいいイメージ無くて
F#だと全然そんなことないの?ガンガンmoduleに色々突っ込んじゃえみたいな感じ?

>>210
注文した

>>211
いやtypeとletはそりゃ区別つくけど。関数だろうと変数だろうと条件分岐だろうと全部letじゃない
あとまぁpythonもそうだけどインデントで分けるのほんと分かりにくくて。カッコが無いときつい
英語割りと得意な方だけど勉強するときはやっぱり日本語のほうが頭に入る
213デフォルトの名無しさん
2023/07/25(火) 20:56:40.72ID:WtO80aoG
判別共用体がよくわかりません。例えば
type Shape =
| Rectangle
| Circle
| Prism
みたいな例だと最初いやお前らどこから出てきた。そんな型ないだろと思って
んじゃenumみたいに0から番号振ってるのかと思ったらそうじゃないって言うし
それでいきなりlet x = Rectangleみたいな使い方が出来るなんて言われてもうちんぷんかんぷん。それでxの型はShapeだっていうし
RectangleだのCircleだのは識別子って言うらしいけどこいつら一体なんなんですかね。英語サイトなんかだとコンストラクタだと思えばいいよみたいなこと書いてたけど
そもそもクラス定義なのにこの内のどれかってどういうことなんですかね。例えばlet y = Circleみたいにやったときxとyの違いってなんでしょう?(参照するアドレスの話ではない)
暗黙的にprivate int typeみたいなのが生成されて番号振られてるとかなら分かるんですが

今日一日ずーっとあれこれサイト巡ってchatgptとかにもお伺い立ててそれでも全然理解できませんでした
大体どの本も最初でさらっと流してるけどどうしてみんな理解できるんですか?自分の理解力の低さに悲しくなってきました
214デフォルトの名無しさん
2023/07/26(水) 20:16:10.29ID:+lLvjQUw
>>213
オブジェクト指向でのクラス・サブクラス関係のようなものと考えればいいんじゃないか?
RectangleクラスやCircleクラスのインスタンスはShapeとして扱える、みたいな話の関数型の考え方での表現方法
215デフォルトの名無しさん
2023/07/26(水) 22:00:01.17ID:y+XWVG/2
自分は理解に困ったことなかったんで新しい知見だけど
背景知識でどう書き換えられるかを調べてみたらどうだろう。
その感じだとC#とかJavaとかのオブジェクト志向言語は使えるんでしょ
~言語で書いてみる、とかでググってみたらどうかな

番号振られてるのとコンストラクタ(≒クラス)で識別できるのはあまり変わらない気がするけども
216デフォルトの名無しさん
2023/07/26(水) 22:10:22.50ID:y+XWVG/2
xとyの違いは値の違いだと思うよ
どちらもShapeクラスのインスタンス
C#で書くなら、Shapeクラスがpublic static readonly Shape Circle = new Shape(ShapeId.Circle)ってなやつを持ってれば、だいたい同じになりそうじゃん?
これならprivate int ShapeIdで区別してるって考えられるけど。

CircleとRectangleの区別のために、実際にどう実装されてるか気にしなくてもいいと思うけどね
217デフォルトの名無しさん
2023/07/27(木) 20:58:49.84ID:brQVAwIG
>>213
> そもそもクラス定義なのにこの内のどれかってどういうことなんですかね。

どういうことっていうか、そもそもクラス定義じゃないので。

無理やりオブジェクト指向に当てはめるとすると、
null許容型みたいに複数の選択肢を与える型とレコード型を融合させたものと考えたらいいんじゃないですかね。
ただ例え話にも限界が有るし、素直に頭を関数型言語にシフトさせた方がいいと思います。
218デフォルトの名無しさん
2023/07/27(木) 23:01:28.28ID:xZLsmpVc
>>213
その例だとRectangle、Circle、Prismは中身がないから
単なる番号と考えることもできるだろうけど
中身がある場合はそうもいかないでしょ
learn.microsoft.com/ja-jp/dotnet/fsharp/language-reference/discriminated-unions

Haskellにも同様のものがあるし
www.letitride.jp/entry/2020/05/05/092738
Scalaにも同様のものがある
zenn.dev/mossan_hoshi/articles/20230417_scala

ScalaではF#のinterfaceのようなものであるtraitと
こうした目的のための特別なclass定義 case classがあり
CircleやRectangleの定義でShapeを継承している >>214
219デフォルトの名無しさん
2023/07/27(木) 23:41:44.86ID:8hd6E7B/
>>217
あれちょっと衝撃的だったんですけどクラス定義ですよね?typeだし
220デフォルトの名無しさん
2023/07/28(金) 00:31:33.37ID:335A9+o+
あーちょっと思いついて判別共用体をDLLにしてC#で呼び出して定義に移動したらC#で判別共用体がどう解釈されるかは分かりました
sealed class Shape の中にstatic class Tagsが定義されてint Rectangle = 0, int Circle = 1みたいに番号振られてますね。考え方としては間違ってなかったのかな……
221デフォルトの名無しさん
2023/07/31(月) 19:11:32.66ID:ah9dO7xg
returnが無いの本当にきついと思うんですけど慣れますか
最後まで関数読んでもそもそも何を返しているのかさえ分からないのが日常茶飯事なんですけど
if condition then xxx, true else...みたいなのがあっては?true?なんじゃこの構文と思って散々検索した後にxxxとtrueのタプルを返してるとchatgpt先生に教えてもらったときは無理だろってなりました
222デフォルトの名無しさん
2023/07/31(月) 19:38:50.32ID:ZrzF7TzQ
書かれているとおりのものが返るだけなのにreturnがあるはず(あるべき)という
思い込みのせいで分からなくなってるわけで、returnがあるはず(あるべき)という
思い込みはいつか消えますかと問われても、人によるだろと答えるしかないな
223デフォルトの名無しさん
2023/08/03(木) 19:15:32.83ID:fdtnC88s
確かにオブジェクト指向とは違う表現が多いだろうけど、それ以上に面白いと思うけどなあ
特にCopilotとの相性が良すぎる
224デフォルトの名無しさん
2023/11/18(土) 22:09:32.82ID:H8GQ4CWH
コンピュテーション式まじでわかんねぇ……
let!とかdo!とか解説をいくら読んでも理解できん。デバッグでステップごとにやってるとlet!の次の行実行しないでいきなり波括弧終わったりするのなんでや
225デフォルトの名無しさん
2023/11/19(日) 02:44:53.10ID:6eSmn67d
コンピュテーション式の名前をはじめて知った初心者だけどステップインで実行したら1行ずつ動いて、
この記事のコメントで書いてるイメージのコールバックの動きが実感できた
https://zenn.dev/zecl/articles/a330820e9277cf#option%E3%83%A2%E3%83%8A%E3%83%89%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%BC%8F

中身がコールバックだからかデバッガが上手いこと判断してくれないんかな。
226デフォルトの名無しさん
2023/11/22(水) 23:34:53.49ID:3O36evGu
コンピュテーション式まじで難しい
大体公式のhttps://learn.microsoft.com/ja-jp/dotnet/fsharp/language-reference/computation-expressionsこれはなんだ。理解できる人間が存在するのか
記事とか読んでてもこういう風に自動的に変換できるんだよ簡単だねみたいな書き方してるけど変換先がもうわけわからん
これを頭の中で想像できない人間は書けないのか
227デフォルトの名無しさん
2023/11/23(木) 12:25:10.81ID:USKpqKz9
いろんなものを1つのシンプルな手法で表現できる仕組みなので、公式の説明にあるように抽象化された難しい概念なのでは
シンプルというのが簡単ではなくて、難しいというのは数学とかはよくあるよね

公式ではうそや矛盾する喩えを出さないように説明するから、
一面を単純化して喩えてるような、複数の外部の記事を自分の中で抽象化することで理解が進むんじゃないかな
228デフォルトの名無しさん
2023/11/24(金) 14:49:40.02ID:AooEALul
直ぐに仕組みを理解しなくても良いんでは?
仕組みを理解しなくてもある程度は使えるでしょ。
難しく考えすぎな気がする。

関数と変数と条件分岐が全部letだって、評価して何かしら結果が得られるものって思えば、全部同じでも困らないし。
229デフォルトの名無しさん
2023/11/26(日) 08:28:05.33ID:rhBBg0xx
俺もそのマイクロソフトのサイトだけではさっぱり理解不能だと思う

コンピュテーション式はhaskellのdo記法を真似たものだから
わからなかったらそっちを勉強するのがいいかもしれない
bindの型をみて、bindがチェーンにする様子がイメージできたら
なぜ展開するとああいういかつい式になるのかが理解できてくるよ
230デフォルトの名無しさん
2023/11/28(火) 00:02:10.45ID:kveRhAUs
この表はよく見返して、型に合わせてパズルするよ。
https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/computation-expressions#creating-a-new-type-of-computation-expression

コンピュテーション式がなぜ必要なのかとか、どう置き換えればいいのかはここを読むといいかも
https://fsharpforfunandprofit.com/posts/computation-expressions-intro/
231デフォルトの名無しさん
2023/12/06(水) 04:53:42.99ID:GpxwWfWH
rわr
232デフォルトの名無しさん
2023/12/09(土) 12:18:29.76ID:oBEhbSCx
Haskellとかもそうだけどシンタックスシュガーの元の構文は複雑すぎるので
元の構文までしっかり理解して書けるようにするべきなのか?
というのは意見分かれるだろうな
使い方だけ覚えれば手続き言語のように使えるわけだし
233デフォルトの名無しさん
2023/12/15(金) 20:18:00.56ID:9Jvor+x/
https://qiita.com/262144/items/01a3023612116180278e
234デフォルトの名無しさん
2024/02/18(日) 11:50:06.93ID:OiM0FtCI
F#使ってる人殆といなくて悲しい
235デフォルトの名無しさん
2024/02/18(日) 13:02:53.69ID:seCcpyNJ
どこのサイトで情報収集してる?
236デフォルトの名無しさん
2024/02/18(日) 22:19:20.19ID:d0wVXkls
f#の書き方Copilotに質問したらあっさり解決した
geminiは全然駄目だねコンパイル通らなかった
237デフォルトの名無しさん
2024/03/17(日) 01:51:00.22ID:ER8mRT7B
既に三か月もF#の記事がない公式ブログかな
https://devblogs.microsoft.com/dotnet/tag/f/

最近ずっとAIとクラウドの話しかされてない
238デフォルトの名無しさん
2024/03/17(日) 01:52:34.69ID:ER8mRT7B
公式ブログかissue
ブログはもはやAIとクラウドの話しかしてない・・・
239デフォルトの名無しさん
2024/03/17(日) 11:23:11.60ID:uRPhnK4Q
コミュニティベースで頑張るよって言ってるし、あまり書くこともないのかも?
240デフォルトの名無しさん
2024/06/25(火) 19:17:22.19ID:D5t4IPR/
F#はどの分野でよく使われてるんだろう?
web?データサイエンス?
241デフォルトの名無しさん
2024/09/15(日) 13:50:02.80ID:FhbWaaUu
F#は良い言語だと思うけど、
C#やTypeScriptにくらべてマイクロソフトの愛情不足だよな
242デフォルトの名無しさん
2025/01/18(土) 16:10:54.77ID:uWCOaByE
ScalaとF#の両方触ったことある人いる?
もしいれば、個人的な感想で良いのでどちらが好みか聞いてみたい
243デフォルトの名無しさん
2025/01/19(日) 09:31:11.83ID:fNMlPpUq
自分はScalaはちょびっとしか触ってないけど、前のScalaはScala固有の部分と、Javaを引き継いでる部分と2つにわかれてて綺麗じゃないなって感じを受けた
その点F#はC#とかVBのより型が便利なバージョンって感じでこちらのほうが好み
244デフォルトの名無しさん
2025/01/19(日) 10:51:52.69ID:OyE1mSX4
OCaml.NETと呼べる存在ならともかく実際はそこまで互換性ないし、どうせ.NET独自言語ならC#でいいからなあ
245デフォルトの名無しさん
2025/01/21(火) 20:29:20.50ID:3ZeefpU2
scalaはオブジェクト指向側に軸足あるような雰囲気だけど
それにしてはよく頑張って関数型に手を伸ばしてる感じ

F#は生まれ持っての関数型ではあるけど
世間に転がってるF#のコード見ると
そんなに関数型にたしなんでる人のコードじゃないのも多々見る
関数合成よりパイプラインを使ってるようなというか
JavaのStreami APIみたいに、メソッドチェーンみたいにして満足してる人々を多々見る
246デフォルトの名無しさん
2025/01/21(火) 21:14:20.24ID:O20/r7pR
パイプラインはF#らしいコードって印象
HaskellもData.Functionに(&)が定義されてて、F#のバナナブラケットみたいな使い方が出来る
247デフォルトの名無しさん
2025/01/22(水) 14:27:10.61ID:D9F/X/85
むしろこれからどんどんストリーム的なプログラミングが多くなるんじゃないか
Algebra Effectsで厄介なところはhandlerに閉じ込められそうだし
それはBackusのFP的になるってことだよね
248デフォルトの名無しさん
2025/01/22(水) 14:43:36.01ID:D9F/X/85
F#は利用者が少な過ぎんじゃないかな
処理系やライブラリにバグがあると手こずるよ
でもF#駄目でもOCamlに行けるというのはメリットかも

lud20250612061617
このスレへの固定リンク: http://5chb.net/r/tech/1567937785/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「【.NET】F#について語れ3【OCAML】 YouTube動画>1本 」を見た人も見ています:
テスト
a
空牙
.
J
a
k
h
)
.
テスト
o

d

1
b


毒芋
t
報告

_
阪神
n
ほれ
報告

報告

ω
浅野
^
-
会7
@
阪神
報告

d
 
交流会
7


|

y
^
阪神
.
.
N
^

e
報告


AA
47
金蹴り
#
目薬
03:20:11 up 64 days, 4:18, 0 users, load average: 8.62, 9.28, 9.48

in 0.030988216400146 sec @0.030988216400146@0b7 on 062016