【.NET】F#について語れ3【OCAML】 (249レス)
【.NET】F#について語れ3【OCAML】 http://mevius.5ch.net/test/read.cgi/tech/1567937785/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2019/09/08(日) 19:16:25.58 ID:8+6E4mCC このへん https://fsharp.org/ http://mevius.5ch.net/test/read.cgi/tech/1567937785/1
150: デフォルトの名無しさん [sage] 2022/10/24(月) 13:17:16.08 ID:CSVgb4N8 YouTube で有名な雑食系エンジニア・KENTA の動画がある EC2はもうオワコンです www.youtube.com/watch?v=G_ILES8fmf8 もう、Windows の実行環境がない。 もう、OS, AWS EC2 も使わない。管理・構築しない すべてコンテナ・Docker へ移行した。 使うのは、AWS Lambda, Fargate, Kubernetes DockerはLinuxだけの技術で、他のOSでは使えない。 Microsoft も、Linux財団に加入して開発している http://mevius.5ch.net/test/read.cgi/tech/1567937785/150
151: デフォルトの名無しさん [sage] 2022/10/24(月) 17:59:04.00 ID:8Lz7V8Tn >>149 Elmishも有れば、Felizスタイルっていう素のReactっぽい書き方も有ります。 この辺は好みで選べる感じみたい。 自分はElmishに慣れてしまったのでFelizスタイルはよく知らないっす。 http://mevius.5ch.net/test/read.cgi/tech/1567937785/151
152: デフォルトの名無しさん [] 2022/10/24(月) 18:04:04.32 ID:aCYxRFeC Felizは初めて聞いた。フロント絶対触らないぞ、と頑張ってきたけどぼちぼちやらないといけなくなってきたからちょっと見てみるわー jsでやるよりやっぱり楽かなー http://mevius.5ch.net/test/read.cgi/tech/1567937785/152
153: デフォルトの名無しさん [sage] 2022/11/02(水) 07:52:27.54 ID:lcK3s+C7 F#についてはまったくの初心者です fortran pythonをうごかしていました 質問ですがf#でコマンドラインで実行ファイル作成法がわかりません c#ですとコンソールで csc file.cs と打って 実行すれば実行ファイルを作成できます F#にもfsc.というコマンドがありますがエラーになります dotnetをつけてもだめでした visual studioでbuildをすればいいのかもしれませんが visual studio不慣れで使いたくありません f#ではコマンドラインで実行ファイルをつくることはできないのでしょうか できないならf#はあきらめc#を勉強しようと思います ご教示よろしくお願いします http://mevius.5ch.net/test/read.cgi/tech/1567937785/153
154: デフォルトの名無しさん [sage] 2022/11/02(水) 10:18:21.97 ID:VBEVpYP2 fsiでスクリプト実行じゃなくてコンパイルしたいなら、面倒だけどdotnet new --lang指定でプロジェクト作ってdotnet build http://mevius.5ch.net/test/read.cgi/tech/1567937785/154
155: デフォルトの名無しさん [sage] 2022/11/02(水) 11:13:56.52 ID: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#かな http://mevius.5ch.net/test/read.cgi/tech/1567937785/155
156: デフォルトの名無しさん [sage] 2022/11/02(水) 13:49:39.71 ID:gl9lvyny build時のデバッグ情報にfscの呼び出しあるだろ?真似ればいいんじゃね 自動で適切な引数渡してくれるのに、わざわざ自分でコンパイラオプションや必要なアセンブリ集める方がよっぽど面倒だと思うが http://mevius.5ch.net/test/read.cgi/tech/1567937785/156
157: デフォルトの名無しさん [sage] 2022/11/02(水) 14:01:10.82 ID:gl9lvyny そもそも初心者が実行時コンパイルの僅かなオーバーヘッドを気にするべきじゃないと思うんだが fsiスクリプトはほとんどの言語より高速だし、fscを触るのは本当にパフォーマンスに困ってからでいいかと http://mevius.5ch.net/test/read.cgi/tech/1567937785/157
158: デフォルトの名無しさん [sage] 2022/11/02(水) 15:04:42.18 ID:VBEVpYP2 コンパイラの仕組みに興味があるなら https://github.com/dotnet/fsharp/blob/main/docs/overview.md コマンドラインのオプション解析、parsing/lexing、参照解決、型チェック、最適化、バイナリ生成etc 全てfsharpで書かれてるので勉強にもなるし、ぶっちゃけマニュアル読むより速い http://mevius.5ch.net/test/read.cgi/tech/1567937785/158
159: デフォルトの名無しさん [sage] 2022/11/02(水) 16:40:26.11 ID:RxFRhVgo >>158 MSの長い識別子と、頑強なんだろうけどベタ書きコーディングスタイルだとC#に見えてくる yacc/lex風のDSLで文法定義してるのはF#らしいし眺める価値ある http://mevius.5ch.net/test/read.cgi/tech/1567937785/159
160: デフォルトの名無しさん [] 2022/11/02(水) 17:11:58.19 ID:Cz0q4/YM >>155 こいつみたいに勘違いして文句つける奴ほんまうざい http://mevius.5ch.net/test/read.cgi/tech/1567937785/160
161: デフォルトの名無しさん [sage] 2022/11/02(水) 17:25:00.04 ID:lcK3s+C7 >>158 ありがとうございます。 fsc.exeもfsharp(?)で書かれたテキストファイルなんですね fsc.fsを155と同じ手順でコンパイルしてみました fsc.exeはできましたが、 fsc program.fsを動かしてもprogram.exeはできません 結果を表示しますのでfsiになっているようです ソースを書き換えればいいのでしょうが、私には無理です fsharp 勉強してみます http://mevius.5ch.net/test/read.cgi/tech/1567937785/161
162: デフォルトの名無しさん [sage] 2022/11/02(水) 18:58:19.36 ID:lcK3s+C7 >>161 すこし動かしてみました 表示はどうやってもHello from F# になります。 ソースを読み直してみます http://mevius.5ch.net/test/read.cgi/tech/1567937785/162
163: デフォルトの名無しさん [sage] 2022/11/02(水) 19:28:08.88 ID:lcK3s+C7 >>163 buildしなおしましたら エラー100個でました http://mevius.5ch.net/test/read.cgi/tech/1567937785/163
164: デフォルトの名無しさん [sage] 2022/11/02(水) 20:03:48.67 ID:lcK3s+C7 どうでもいい話でおさわがせしています。 原因わかりました 対処法わかりませんが dotnet new console -lang F# -o program -f net6.0 でプロジェクトをつくると program.fsは hello worldを表示するfsをつくります ソースをかえてbuildしたつもりでしたが、 常にprogram.fsをbuildしていました ですので何をしてもhello wolrdを表示していました。 おさわがせしましてもうしわけありません。 155の流れのバッチファイルをつくればいいのかと考えています http://mevius.5ch.net/test/read.cgi/tech/1567937785/164
165: デフォルトの名無しさん [sage] 2022/11/02(水) 21:08:41.81 ID: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 みたいなコマンドを発行してはず http://mevius.5ch.net/test/read.cgi/tech/1567937785/165
166: デフォルトの名無しさん [sage] 2022/11/02(水) 21:15:42.03 ID:VBEVpYP2 というかこんな些末な事を気にする前に、とにかくfsiを立ち上げて公式チュートリアルでもこなせば http://mevius.5ch.net/test/read.cgi/tech/1567937785/166
167: デフォルトの名無しさん [sage] 2022/11/02(水) 21:24:08.66 ID:ahOvjMWx 環境構築が趣味なんだろ http://mevius.5ch.net/test/read.cgi/tech/1567937785/167
168: デフォルトの名無しさん [sage] 2022/11/02(水) 22:18:02.52 ID:Dj/Cqb/4 ビルドできてREPLも使えてるのに何が問題なんだ? 自分好みのビルドスクリプトを書きたいようだけど、使ってない言語のコンパイラオプションを適切に選べるとでも思ってるのか そんなに俺々ビルドスクリプトを書きたければ、F#で書けばいいのに batなんかよりずっと楽に書けるぞ http://mevius.5ch.net/test/read.cgi/tech/1567937785/168
169: デフォルトの名無しさん [sage] 2022/11/03(木) 07:54:33.74 ID: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#を勉強できます おさわがせしましてもうしわけありませんでした http://mevius.5ch.net/test/read.cgi/tech/1567937785/169
170: デフォルトの名無しさん [] 2022/11/03(木) 07:59:03.87 ID:sWIbv+Sc 何でわざわざexeにしてるのか意味わからん 評価したいとこ選択して評価すればいいだろ http://mevius.5ch.net/test/read.cgi/tech/1567937785/170
171: デフォルトの名無しさん [sage] 2022/11/03(木) 08:26:48.53 ID:diaW/wXZ FSI.exeが動きますので 評価はfsiでもできます ソース作ってfsiを動かすだけですので 私的にはテストを楽にできます 複数の機器でテストしたいこともありexeファイルも必要となっています。 http://mevius.5ch.net/test/read.cgi/tech/1567937785/171
172: デフォルトの名無しさん [sage] 2022/11/03(木) 15:14:32.39 ID: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を使えば動くようですが) http://mevius.5ch.net/test/read.cgi/tech/1567937785/172
173: デフォルトの名無しさん [sage] 2022/11/07(月) 10:48:53.78 ID: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 とか 途中で数式を使わないということでいいんでしょうか 面白いですが 数値解析+画像表示に使えるかどうか http://mevius.5ch.net/test/read.cgi/tech/1567937785/173
174: デフォルトの名無しさん [sage] 2022/11/07(月) 16:58:29.61 ID:tRej1mOW letで関数作るとき 改行するとpythonのように文字下げしなければならないんだね わかるまで1日かかった http://mevius.5ch.net/test/read.cgi/tech/1567937785/174
175: デフォルトの名無しさん [sage] 2022/11/08(火) 11:41:00.43 ID:TUBjjFuN ライブラリ FSharp.PowerPackを入れて複素数を計算してみようとしていますが出力方法がわかりません わかりましたら教えてください 単純化しています #r "FSharp.PowerPack.dll" let x = complex -1.0 0.0 printf (を出力) http://mevius.5ch.net/test/read.cgi/tech/1567937785/175
176: デフォルトの名無しさん [sage] 2022/11/08(火) 14:01:13.27 ID:TUBjjFuN >>175 わかりました printf "%e,%e" x.RealPart x.ImaginaryPart また1日かかってしまいました http://mevius.5ch.net/test/read.cgi/tech/1567937785/176
177: デフォルトの名無しさん [] 2022/11/08(火) 15:23:19.55 ID:OezK6zca 洋書なら比較的新しい環境構築も含めた入門書あるだろうから先にそれ読んだ方がいいんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1567937785/177
178: デフォルトの名無しさん [sage] 2022/11/08(火) 18:53:26.48 ID:ruqPIjM/ F#の情報は、まあ少ないなあ プログラミングの一般的な知識や慣習が欠けてるならPowerPackで古い日本語サイトや書籍の多いML(というかOCaml)と大体互換になるので、それも参考に http://mevius.5ch.net/test/read.cgi/tech/1567937785/178
179: デフォルトの名無しさん [sage] 2022/11/09(水) 18:04:47.14 ID:Ye9xlnfW アマゾンでは評判悪いですが やさしいF#入門 日向健二著 で勉強しています。2010年出版ですのですこし古いかもしれませんが基本は同じかと windowsアプリケーションの例題を動かしてみました オブジェ久トに関しては今から勉強です それとは別に microsoft visual F# programming www.visualfsharp.com/index.htm でsystem.drawingでのグラフィックを試しています xplotとかplotlyが必要なのかと思っていましたがどうなんでしょうか http://mevius.5ch.net/test/read.cgi/tech/1567937785/179
180: デフォルトの名無しさん [sage] 2022/11/10(木) 00:34:16.29 ID:zLzbMwRI >>173 関数型とは何か、なんて言える程偉くないのでとりあえず 処理を連ねて書き(パイプライン、|>)、抽象化できる部分に名前を付けてファクターアウト(関数合成、>>) というF#の目立つスタイルについてだけ それ自体は連鎖型言語(forth, postscript等)スタイルを型推論で補強したもの、と見ていい 名前の付け易さ=テキストとしてのコード片に意味を与えられるか グローバル状態へ(副)作用する演算子の併置のみで記述する連鎖型言語には、プログラムから任意に切り出したコード片も有効なプログラムとなる性質がある 一方でそのコード片の任意な繋ぎ合わせも有効(だけど多分無意味)という問題もある 関数型スタイルは状態を持つ事を避ける真逆の発想でロジックの分離を奨励するけど、柔軟な記法定義を許せば連鎖型風のテキスト上の切り出し性までエミュレートできる さらに型推論で無意味な貼り合わせの大半を防ぐ、というのが売り http://mevius.5ch.net/test/read.cgi/tech/1567937785/180
181: デフォルトの名無しさん [sage] 2022/11/10(木) 00:45:12.32 ID:zLzbMwRI 関数型を極端に突き詰めれば、引数に一切言及しないポイントフリースタイルに行き着くけど これは連鎖型スタイルそのもの、唯一のグローバル状態が暗黙の引数なので言及しない 当然どちらの極端も実用的でないので、名前は付けようね http://mevius.5ch.net/test/read.cgi/tech/1567937785/181
182: デフォルトの名無しさん [sage] 2022/11/10(木) 01:26:51.45 ID:OT0JIVh4 純粋なforthプログラムはコンビネータの列と見なせるし、むしろ関数型と呼んで良いのでは 括弧、というかスコープが無いのでラムダ計算との相性が悪すぎるのが難点 lispの対極 http://mevius.5ch.net/test/read.cgi/tech/1567937785/182
183: デフォルトの名無しさん [sage] 2022/11/10(木) 18:27:18.07 ID:Z9ZM7zcW コードをフラットに書ける点に着目するならML系やHaskellの自動カリー化も忘れるな lispでもやろうと思えばできるけど、()のネストでフラットには読めないし、()を除いたら自慢の一貫性のある意味論が崩壊する http://mevius.5ch.net/test/read.cgi/tech/1567937785/183
184: デフォルトの名無しさん [sage] 2022/11/11(金) 07:57:58.07 ID:9wAD6Zbc vs、vscodeを使えればわざわざやることもないのですが これらが使えないので sublime text3 でF#の実行環境をつくりました パケージのインストールに手間取りました これで、エディターだけで実行までできるようになりました http://mevius.5ch.net/test/read.cgi/tech/1567937785/184
185: デフォルトの名無しさん [sage] 2022/11/11(金) 19:22:08.65 ID:9wAD6Zbc sublimeが動きだしましたので、これまでつくったWEBアプリのサンプルをテストしてみました ウィンドウを開いて線を表示する例、 sublimeですと動きません いろいろ試してne for,rm()をnew Form(,Visible=true)にすると動きました ところが、修正したソースをコマンドラインからfsiで動かす動きません どうなってるんでしょうかね http://mevius.5ch.net/test/read.cgi/tech/1567937785/185
186: デフォルトの名無しさん [] 2022/11/11(金) 21:43:50.15 ID:bDcA3rjx 別スレ作ってそっちでやれよ http://mevius.5ch.net/test/read.cgi/tech/1567937785/186
187: デフォルトの名無しさん [sage] 2022/11/12(土) 06:48:22.30 ID:Vk5CwTlK >>185 F#で書いてるんだけど http://mevius.5ch.net/test/read.cgi/tech/1567937785/187
188: デフォルトの名無しさん [] 2022/11/16(水) 19:40:08.80 ID:+z5R74k6 Fabulousで.NET MAUIが使えるようになったらしい https://twitter.com/Tim_Lariviere/status/1592803782785892353?t=qpmQw2HsID1jAEsuOl9LBw&s=19 https://twitter.com/5chan_nel (5ch newer account) http://mevius.5ch.net/test/read.cgi/tech/1567937785/188
189: デフォルトの名無しさん [sage] 2022/12/06(火) 21:42:45.15 ID:Z/dKkADi >>182 それでなぜラムダ計算との相性が悪すぎるのか スコープって見た目の話か http://mevius.5ch.net/test/read.cgi/tech/1567937785/189
190: デフォルトの名無しさん [sage] 2022/12/06(火) 22:36:21.38 ID:QlIMbh6a >>189 おれはgforthで遊んでるくらいだけど、ラムダ計算っぽく書けないという意味ならスコープのせいだろう ローカル変数(スタック){: ... :}もANSIに入りはしたけどゴミだから俺独自の{ ... }使えって始末 forth-standard.orgで議論やってるけど、ローカル関連は炎上祭りよ そもそもの言語哲学に反してるのもある http://mevius.5ch.net/test/read.cgi/tech/1567937785/190
191: デフォルトの名無しさん [sage] 2022/12/06(火) 22:56:03.79 ID:NXqSTiS1 仮引数すら拡張的な位置付けなら、λの入り込む余地なんてないわな http://mevius.5ch.net/test/read.cgi/tech/1567937785/191
192: デフォルトの名無しさん [sage] 2023/01/09(月) 22:38:07.76 ID:P8VzlMvA 最近独学で触り始めて面白いなーと思ってるんだけど 日本でF#の案件ってないのかな http://mevius.5ch.net/test/read.cgi/tech/1567937785/192
193: デフォルトの名無しさん [] 2023/01/10(火) 12:55:32.80 ID:xQ3373Gc 実案件にF#ぶっ込んだけど募集案件としてはたまーに見るくらいやな http://mevius.5ch.net/test/read.cgi/tech/1567937785/193
194: デフォルトの名無しさん [] 2023/01/23(月) 15:49:01.68 ID:vIT0tuiY 人気ないなあこの言語 http://mevius.5ch.net/test/read.cgi/tech/1567937785/194
195: デフォルトの名無しさん [sage] 2023/01/23(月) 17:21:06.97 ID:a4EgEm41 >>194 んー。なんでだろうね http://mevius.5ch.net/test/read.cgi/tech/1567937785/195
196: デフォルトの名無しさん [] 2023/01/25(水) 09:53:51.40 ID:RZa9VHBZ この言語って"知られていない"の一点に尽きる気がする TypeScriptよりも書いていて気持ちいいと思うんだけどな http://mevius.5ch.net/test/read.cgi/tech/1567937785/196
197: デフォルトの名無しさん [] 2023/01/25(水) 20:02:30.86 ID:2bKf7Laz MSが力入れてないのでテンプレートがないとかで使いにくいとこはあると思うけどそのほかは今でもC#より優れてるとこ多々あるとは思うよ Unityで使えるならこっち使いたいわ http://mevius.5ch.net/test/read.cgi/tech/1567937785/197
198: デフォルトの名無しさん [sage] 2023/01/26(木) 08:47:58.88 ID:FLQwi+2l >>197 F# Unityでググると、日本語の記事がいくつかヒットするけどどうなんだろ。 http://mevius.5ch.net/test/read.cgi/tech/1567937785/198
199: デフォルトの名無しさん [] 2023/01/26(木) 09:15:28.50 ID:Jfa2YV7v >>198 WindowsでIL2CPP使わないなら使えるというかF#でつくったdllの呼び出しが出来るって話だと思う。 モバイルとかはもうIL2CPP前提だから無理ぽ 無理というかタイプのネストが9以下ならいけるはずなんだけどF#じゃ軽く超えるからやはり無理ぽ http://mevius.5ch.net/test/read.cgi/tech/1567937785/199
200: デフォルトの名無しさん [] 2023/01/28(土) 18:25:58.60 ID:mPwfONGy 技術書コーナーでF#の本を見たことがない http://mevius.5ch.net/test/read.cgi/tech/1567937785/200
201: デフォルトの名無しさん [] 2023/01/28(土) 19:31:13.85 ID:5OMXkAmW 日本語の本はもう10年近く出てないだろうしな… http://mevius.5ch.net/test/read.cgi/tech/1567937785/201
202: デフォルトの名無しさん [] 2023/02/24(金) 18:06:03.59 ID:DO2HmvEC Unityばかり使っててF#全然触ってないんだけど、ジェネリクス使おうとするとF#の楽さが身に染みる http://mevius.5ch.net/test/read.cgi/tech/1567937785/202
203: デフォルトの名無しさん [sage] 2023/06/14(水) 17:45:55.59 ID:XMqK+ap6 実務でF#使ってるっていう会社の面接受けてて好感触なんだが果たして本当に大丈夫なのだろうか……C#の経験しか無いんだが まぁあとはF#みたいな割とマイナー寄りなところの経験積んでも将来なぁみたいな。F#使ってる会社ってどれくらいあるんだろう http://mevius.5ch.net/test/read.cgi/tech/1567937785/203
204: デフォルトの名無しさん [] 2023/06/15(木) 13:56:59.56 ID:frn/21Cm 正直言語なんでなんでもいいしそこで関数型やら.NETやら慣れたら他にも応用効くでしょ http://mevius.5ch.net/test/read.cgi/tech/1567937785/204
205: デフォルトの名無しさん [] 2023/06/15(木) 18:42:35.30 ID:pUp5jw/a G-- http://mevius.5ch.net/test/read.cgi/tech/1567937785/205
206: デフォルトの名無しさん [sage] 2023/06/15(木) 23:50:49.25 ID: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に似ているのかも http://mevius.5ch.net/test/read.cgi/tech/1567937785/206
207: デフォルトの名無しさん [] 2023/06/16(金) 21:44:52.28 ID:Ya9firZ8 BEAMはフレームワークじゃないだろ http://mevius.5ch.net/test/read.cgi/tech/1567937785/207
208: デフォルトの名無しさん [] 2023/06/28(水) 13:30:46.03 ID:BVdlIcNn 漠∞!!!! 列∞!!!!! 廷∞!!!!!! 器∞!!!!!!! 業∞!!!!!!!! 論∞!!!!!!!!! 寿∞!!!!!!!!!! 素∞!!!!!!!!!!! http://mevius.5ch.net/test/read.cgi/tech/1567937785/208
209: デフォルトの名無しさん [sage] 2023/07/06(木) 23:12:25.30 ID:D9prSSOp >>203だけど結局会社入った F#とC#が入り乱れるフレームワークとそれによるシステムで超苦戦してる というかF#まじで分かりにくくない?let let letでもう何が何なのか区別が本当につけにくい {}の区切りも無いから巨大な1ファイルにたくさんクラスがあったりするとどっからどこまでが1クラスなのかすらよく分からない あとそもそも学習リソースが無い。英語の本やサイトくらいしか包括的に学べない 転職先選び失敗したかなぁ……1週間で早くも落ち込んでる http://mevius.5ch.net/test/read.cgi/tech/1567937785/209
210: デフォルトの名無しさん [sage] 2023/07/07(金) 07:54:48.06 ID:CjPc9ICD >>209 業務でF#使えるなんてうらやましい。 ちょっと古いけど、自分は「実践F#関数型プログラミング入門」って本で勉強したヨ。 がんばれ http://mevius.5ch.net/test/read.cgi/tech/1567937785/210
211: デフォルトの名無しさん [] 2023/07/09(日) 22:25:24.69 ID:xVwuu7Mx >>209 typeとletで普通に見分けつかん? 英語の本あれば十分なのでは…というか英語でダメならこれを機会に英語勉強しろ 翻訳するのもあり http://mevius.5ch.net/test/read.cgi/tech/1567937785/211
212: デフォルトの名無しさん [sage] 2023/07/13(木) 00:01:20.07 ID:Bgq+8lL5 F#のベストプラクティスがよく分かってないからあれなんだけど moduleはC#でいうところのstatic classみたいなもんっていうの読んであれ?って ユーティリティクラスは良くないとか言われるけどあんまstatic classにいいイメージ無くて F#だと全然そんなことないの?ガンガンmoduleに色々突っ込んじゃえみたいな感じ? >>210 注文した >>211 いやtypeとletはそりゃ区別つくけど。関数だろうと変数だろうと条件分岐だろうと全部letじゃない あとまぁpythonもそうだけどインデントで分けるのほんと分かりにくくて。カッコが無いときつい 英語割りと得意な方だけど勉強するときはやっぱり日本語のほうが頭に入る http://mevius.5ch.net/test/read.cgi/tech/1567937785/212
213: デフォルトの名無しさん [sage] 2023/07/25(火) 20:56:40.72 ID:WtO80aoG 判別共用体がよくわかりません。例えば type Shape = | Rectangle | Circle | Prism みたいな例だと最初いやお前らどこから出てきた。そんな型ないだろと思って んじゃenumみたいに0から番号振ってるのかと思ったらそうじゃないって言うし それでいきなりlet x = Rectangleみたいな使い方が出来るなんて言われてもうちんぷんかんぷん。それでxの型はShapeだっていうし RectangleだのCircleだのは識別子って言うらしいけどこいつら一体なんなんですかね。英語サイトなんかだとコンストラクタだと思えばいいよみたいなこと書いてたけど そもそもクラス定義なのにこの内のどれかってどういうことなんですかね。例えばlet y = Circleみたいにやったときxとyの違いってなんでしょう?(参照するアドレスの話ではない) 暗黙的にprivate int typeみたいなのが生成されて番号振られてるとかなら分かるんですが 今日一日ずーっとあれこれサイト巡ってchatgptとかにもお伺い立ててそれでも全然理解できませんでした 大体どの本も最初でさらっと流してるけどどうしてみんな理解できるんですか?自分の理解力の低さに悲しくなってきました http://mevius.5ch.net/test/read.cgi/tech/1567937785/213
214: デフォルトの名無しさん [sage] 2023/07/26(水) 20:16:10.29 ID:+lLvjQUw >>213 オブジェクト指向でのクラス・サブクラス関係のようなものと考えればいいんじゃないか? RectangleクラスやCircleクラスのインスタンスはShapeとして扱える、みたいな話の関数型の考え方での表現方法 http://mevius.5ch.net/test/read.cgi/tech/1567937785/214
215: デフォルトの名無しさん [sage] 2023/07/26(水) 22:00:01.17 ID:y+XWVG/2 自分は理解に困ったことなかったんで新しい知見だけど 背景知識でどう書き換えられるかを調べてみたらどうだろう。 その感じだとC#とかJavaとかのオブジェクト志向言語は使えるんでしょ ~言語で書いてみる、とかでググってみたらどうかな 番号振られてるのとコンストラクタ(≒クラス)で識別できるのはあまり変わらない気がするけども http://mevius.5ch.net/test/read.cgi/tech/1567937785/215
216: デフォルトの名無しさん [sage] 2023/07/26(水) 22:10:22.50 ID:y+XWVG/2 xとyの違いは値の違いだと思うよ どちらもShapeクラスのインスタンス C#で書くなら、Shapeクラスがpublic static readonly Shape Circle = new Shape(ShapeId.Circle)ってなやつを持ってれば、だいたい同じになりそうじゃん? これならprivate int ShapeIdで区別してるって考えられるけど。 CircleとRectangleの区別のために、実際にどう実装されてるか気にしなくてもいいと思うけどね http://mevius.5ch.net/test/read.cgi/tech/1567937785/216
217: デフォルトの名無しさん [sage] 2023/07/27(木) 20:58:49.84 ID:brQVAwIG >>213 > そもそもクラス定義なのにこの内のどれかってどういうことなんですかね。 どういうことっていうか、そもそもクラス定義じゃないので。 無理やりオブジェクト指向に当てはめるとすると、 null許容型みたいに複数の選択肢を与える型とレコード型を融合させたものと考えたらいいんじゃないですかね。 ただ例え話にも限界が有るし、素直に頭を関数型言語にシフトさせた方がいいと思います。 http://mevius.5ch.net/test/read.cgi/tech/1567937785/217
218: デフォルトの名無しさん [sage] 2023/07/27(木) 23:01:28.28 ID: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 http://mevius.5ch.net/test/read.cgi/tech/1567937785/218
219: デフォルトの名無しさん [sage] 2023/07/27(木) 23:41:44.86 ID:8hd6E7B/ >>217 あれちょっと衝撃的だったんですけどクラス定義ですよね?typeだし http://mevius.5ch.net/test/read.cgi/tech/1567937785/219
220: デフォルトの名無しさん [sage] 2023/07/28(金) 00:31:33.37 ID:335A9+o+ あーちょっと思いついて判別共用体をDLLにしてC#で呼び出して定義に移動したらC#で判別共用体がどう解釈されるかは分かりました sealed class Shape の中にstatic class Tagsが定義されてint Rectangle = 0, int Circle = 1みたいに番号振られてますね。考え方としては間違ってなかったのかな…… http://mevius.5ch.net/test/read.cgi/tech/1567937785/220
221: デフォルトの名無しさん [sage] 2023/07/31(月) 19:11:32.66 ID:ah9dO7xg returnが無いの本当にきついと思うんですけど慣れますか 最後まで関数読んでもそもそも何を返しているのかさえ分からないのが日常茶飯事なんですけど if condition then xxx, true else...みたいなのがあっては?true?なんじゃこの構文と思って散々検索した後にxxxとtrueのタプルを返してるとchatgpt先生に教えてもらったときは無理だろってなりました http://mevius.5ch.net/test/read.cgi/tech/1567937785/221
222: デフォルトの名無しさん [sage] 2023/07/31(月) 19:38:50.32 ID:ZrzF7TzQ 書かれているとおりのものが返るだけなのにreturnがあるはず(あるべき)という 思い込みのせいで分からなくなってるわけで、returnがあるはず(あるべき)という 思い込みはいつか消えますかと問われても、人によるだろと答えるしかないな http://mevius.5ch.net/test/read.cgi/tech/1567937785/222
223: デフォルトの名無しさん [sage] 2023/08/03(木) 19:15:32.83 ID:fdtnC88s 確かにオブジェクト指向とは違う表現が多いだろうけど、それ以上に面白いと思うけどなあ 特にCopilotとの相性が良すぎる http://mevius.5ch.net/test/read.cgi/tech/1567937785/223
224: デフォルトの名無しさん [sage] 2023/11/18(土) 22:09:32.82 ID:H8GQ4CWH コンピュテーション式まじでわかんねぇ…… let!とかdo!とか解説をいくら読んでも理解できん。デバッグでステップごとにやってるとlet!の次の行実行しないでいきなり波括弧終わったりするのなんでや http://mevius.5ch.net/test/read.cgi/tech/1567937785/224
225: デフォルトの名無しさん [] 2023/11/19(日) 02:44:53.10 ID:6eSmn67d コンピュテーション式の名前をはじめて知った初心者だけどステップインで実行したら1行ずつ動いて、 この記事のコメントで書いてるイメージのコールバックの動きが実感できた ttps://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 中身がコールバックだからかデバッガが上手いこと判断してくれないんかな。 http://mevius.5ch.net/test/read.cgi/tech/1567937785/225
226: デフォルトの名無しさん [sage] 2023/11/22(水) 23:34:53.49 ID:3O36evGu コンピュテーション式まじで難しい 大体公式のhttps://learn.microsoft.com/ja-jp/dotnet/fsharp/language-reference/computation-expressionsこれはなんだ。理解できる人間が存在するのか 記事とか読んでてもこういう風に自動的に変換できるんだよ簡単だねみたいな書き方してるけど変換先がもうわけわからん これを頭の中で想像できない人間は書けないのか http://mevius.5ch.net/test/read.cgi/tech/1567937785/226
227: デフォルトの名無しさん [] 2023/11/23(木) 12:25:10.81 ID:USKpqKz9 いろんなものを1つのシンプルな手法で表現できる仕組みなので、公式の説明にあるように抽象化された難しい概念なのでは シンプルというのが簡単ではなくて、難しいというのは数学とかはよくあるよね 公式ではうそや矛盾する喩えを出さないように説明するから、 一面を単純化して喩えてるような、複数の外部の記事を自分の中で抽象化することで理解が進むんじゃないかな http://mevius.5ch.net/test/read.cgi/tech/1567937785/227
228: デフォルトの名無しさん [sage] 2023/11/24(金) 14:49:40.02 ID:AooEALul 直ぐに仕組みを理解しなくても良いんでは? 仕組みを理解しなくてもある程度は使えるでしょ。 難しく考えすぎな気がする。 関数と変数と条件分岐が全部letだって、評価して何かしら結果が得られるものって思えば、全部同じでも困らないし。 http://mevius.5ch.net/test/read.cgi/tech/1567937785/228
229: デフォルトの名無しさん [sage] 2023/11/26(日) 08:28:05.33 ID:rhBBg0xx 俺もそのマイクロソフトのサイトだけではさっぱり理解不能だと思う コンピュテーション式はhaskellのdo記法を真似たものだから わからなかったらそっちを勉強するのがいいかもしれない bindの型をみて、bindがチェーンにする様子がイメージできたら なぜ展開するとああいういかつい式になるのかが理解できてくるよ http://mevius.5ch.net/test/read.cgi/tech/1567937785/229
230: デフォルトの名無しさん [sage] 2023/11/28(火) 00:02:10.45 ID: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/ http://mevius.5ch.net/test/read.cgi/tech/1567937785/230
231: デフォルトの名無しさん [] 2023/12/06(水) 04:53:42.99 ID:GpxwWfWH rわr http://mevius.5ch.net/test/read.cgi/tech/1567937785/231
232: デフォルトの名無しさん [sage] 2023/12/09(土) 12:18:29.76 ID:oBEhbSCx Haskellとかもそうだけどシンタックスシュガーの元の構文は複雑すぎるので 元の構文までしっかり理解して書けるようにするべきなのか? というのは意見分かれるだろうな 使い方だけ覚えれば手続き言語のように使えるわけだし http://mevius.5ch.net/test/read.cgi/tech/1567937785/232
233: デフォルトの名無しさん [sage] 2023/12/15(金) 20:18:00.56 ID:9Jvor+x/ https://qiita.com/262144/items/01a3023612116180278e http://mevius.5ch.net/test/read.cgi/tech/1567937785/233
234: デフォルトの名無しさん [sage] 2024/02/18(日) 11:50:06.93 ID:OiM0FtCI F#使ってる人殆といなくて悲しい http://mevius.5ch.net/test/read.cgi/tech/1567937785/234
235: デフォルトの名無しさん [sage] 2024/02/18(日) 13:02:53.69 ID:seCcpyNJ どこのサイトで情報収集してる? http://mevius.5ch.net/test/read.cgi/tech/1567937785/235
236: デフォルトの名無しさん [sage] 2024/02/18(日) 22:19:20.19 ID:d0wVXkls f#の書き方Copilotに質問したらあっさり解決した geminiは全然駄目だねコンパイル通らなかった http://mevius.5ch.net/test/read.cgi/tech/1567937785/236
237: デフォルトの名無しさん [sage] 2024/03/17(日) 01:51:00.22 ID:ER8mRT7B 既に三か月もF#の記事がない公式ブログかな https://devblogs.microsoft.com/dotnet/tag/f/ 最近ずっとAIとクラウドの話しかされてない http://mevius.5ch.net/test/read.cgi/tech/1567937785/237
238: デフォルトの名無しさん [sage] 2024/03/17(日) 01:52:34.69 ID:ER8mRT7B 公式ブログかissue ブログはもはやAIとクラウドの話しかしてない・・・ http://mevius.5ch.net/test/read.cgi/tech/1567937785/238
239: デフォルトの名無しさん [sage] 2024/03/17(日) 11:23:11.60 ID:uRPhnK4Q コミュニティベースで頑張るよって言ってるし、あまり書くこともないのかも? http://mevius.5ch.net/test/read.cgi/tech/1567937785/239
240: デフォルトの名無しさん [sage] 2024/06/25(火) 19:17:22.19 ID:D5t4IPR/ F#はどの分野でよく使われてるんだろう? web?データサイエンス? http://mevius.5ch.net/test/read.cgi/tech/1567937785/240
241: デフォルトの名無しさん [sage] 2024/09/15(日) 13:50:02.80 ID:FhbWaaUu F#は良い言語だと思うけど、 C#やTypeScriptにくらべてマイクロソフトの愛情不足だよな http://mevius.5ch.net/test/read.cgi/tech/1567937785/241
242: デフォルトの名無しさん [] 2025/01/18(土) 16:10:54.77 ID:uWCOaByE ScalaとF#の両方触ったことある人いる? もしいれば、個人的な感想で良いのでどちらが好みか聞いてみたい http://mevius.5ch.net/test/read.cgi/tech/1567937785/242
243: デフォルトの名無しさん [sage] 2025/01/19(日) 09:31:11.83 ID:fNMlPpUq 自分はScalaはちょびっとしか触ってないけど、前のScalaはScala固有の部分と、Javaを引き継いでる部分と2つにわかれてて綺麗じゃないなって感じを受けた その点F#はC#とかVBのより型が便利なバージョンって感じでこちらのほうが好み http://mevius.5ch.net/test/read.cgi/tech/1567937785/243
244: デフォルトの名無しさん [sage] 2025/01/19(日) 10:51:52.69 ID:OyE1mSX4 OCaml.NETと呼べる存在ならともかく実際はそこまで互換性ないし、どうせ.NET独自言語ならC#でいいからなあ http://mevius.5ch.net/test/read.cgi/tech/1567937785/244
245: デフォルトの名無しさん [sage] 2025/01/21(火) 20:29:20.50 ID:3ZeefpU2 scalaはオブジェクト指向側に軸足あるような雰囲気だけど それにしてはよく頑張って関数型に手を伸ばしてる感じ F#は生まれ持っての関数型ではあるけど 世間に転がってるF#のコード見ると そんなに関数型にたしなんでる人のコードじゃないのも多々見る 関数合成よりパイプラインを使ってるようなというか JavaのStreami APIみたいに、メソッドチェーンみたいにして満足してる人々を多々見る http://mevius.5ch.net/test/read.cgi/tech/1567937785/245
246: デフォルトの名無しさん [sage] 2025/01/21(火) 21:14:20.24 ID:O20/r7pR パイプラインはF#らしいコードって印象 HaskellもData.Functionに(&)が定義されてて、F#のバナナブラケットみたいな使い方が出来る http://mevius.5ch.net/test/read.cgi/tech/1567937785/246
247: デフォルトの名無しさん [sage] 2025/01/22(水) 14:27:10.61 ID:D9F/X/85 むしろこれからどんどんストリーム的なプログラミングが多くなるんじゃないか Algebra Effectsで厄介なところはhandlerに閉じ込められそうだし それはBackusのFP的になるってことだよね http://mevius.5ch.net/test/read.cgi/tech/1567937785/247
248: デフォルトの名無しさん [sage] 2025/01/22(水) 14:43:36.01 ID:D9F/X/85 F#は利用者が少な過ぎんじゃないかな 処理系やライブラリにバグがあると手こずるよ でもF#駄目でもOCamlに行けるというのはメリットかも http://mevius.5ch.net/test/read.cgi/tech/1567937785/248
249: デフォルトの名無しさん [] 2025/07/04(金) 15:27:24.17 ID:rrB9liNl OCaml、C#, VB.NET→F# と遍歴してきたけど Ocaml.Netという造語?は誠にその通りだと思いますわ http://mevius.5ch.net/test/read.cgi/tech/1567937785/249
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s