2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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

1 :デフォルトの名無しさん:2019/09/08(日) 19:16:25.58 ID:8+6E4mCC.net
このへん
https://fsharp.org/

192 :デフォルトの名無しさん:2022/12/06(火) 22:56:03.79 ID:NXqSTiS1.net
仮引数すら拡張的な位置付けなら、λの入り込む余地なんてないわな

193 :デフォルトの名無しさん:2023/01/09(月) 22:38:07.76 ID:P8VzlMvA.net
最近独学で触り始めて面白いなーと思ってるんだけど
日本でF#の案件ってないのかな

194 :デフォルトの名無しさん:2023/01/10(火) 12:55:32.80 ID:xQ3373Gc.net
実案件にF#ぶっ込んだけど募集案件としてはたまーに見るくらいやな

195 :デフォルトの名無しさん:2023/01/23(月) 15:49:01.68 ID:vIT0tuiY.net
人気ないなあこの言語

196 :デフォルトの名無しさん:2023/01/23(月) 17:21:06.97 ID:a4EgEm41.net
>>195
んー。なんでだろうね

197 :デフォルトの名無しさん:2023/01/25(水) 09:53:51.40 ID:RZa9VHBZ.net
この言語って"知られていない"の一点に尽きる気がする
TypeScriptよりも書いていて気持ちいいと思うんだけどな

198 :デフォルトの名無しさん:2023/01/25(水) 20:02:30.86 ID:2bKf7Laz.net
MSが力入れてないのでテンプレートがないとかで使いにくいとこはあると思うけどそのほかは今でもC#より優れてるとこ多々あるとは思うよ
Unityで使えるならこっち使いたいわ

199 :デフォルトの名無しさん:2023/01/26(木) 08:47:58.88 ID:FLQwi+2l.net
>>198
F# Unityでググると、日本語の記事がいくつかヒットするけどどうなんだろ。

200 :デフォルトの名無しさん:2023/01/26(木) 09:15:28.50 ID:Jfa2YV7v.net
>>199
WindowsでIL2CPP使わないなら使えるというかF#でつくったdllの呼び出しが出来るって話だと思う。
モバイルとかはもうIL2CPP前提だから無理ぽ
無理というかタイプのネストが9以下ならいけるはずなんだけどF#じゃ軽く超えるからやはり無理ぽ

201 :デフォルトの名無しさん:2023/01/28(土) 18:25:58.60 ID:mPwfONGy.net
技術書コーナーでF#の本を見たことがない

202 :デフォルトの名無しさん:2023/01/28(土) 19:31:13.85 ID:5OMXkAmW.net
日本語の本はもう10年近く出てないだろうしな…

203 :デフォルトの名無しさん:2023/02/24(金) 18:06:03.59 ID:DO2HmvEC.net
Unityばかり使っててF#全然触ってないんだけど、ジェネリクス使おうとするとF#の楽さが身に染みる

204 :デフォルトの名無しさん:2023/06/14(水) 17:45:55.59 ID:XMqK+ap6.net
実務でF#使ってるっていう会社の面接受けてて好感触なんだが果たして本当に大丈夫なのだろうか……C#の経験しか無いんだが
まぁあとはF#みたいな割とマイナー寄りなところの経験積んでも将来なぁみたいな。F#使ってる会社ってどれくらいあるんだろう

205 :デフォルトの名無しさん:2023/06/15(木) 13:56:59.56 ID:frn/21Cm.net
正直言語なんでなんでもいいしそこで関数型やら.NETやら慣れたら他にも応用効くでしょ

206 :デフォルトの名無しさん:2023/06/15(木) 18:42:35.30 ID:pUp5jw/a.net
G--

207 :デフォルトの名無しさん:2023/06/15(木) 23:50:49.25 ID:IUPOKbhQ.net
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に似ているのかも

208 :デフォルトの名無しさん:2023/06/16(金) 21:44:52.28 ID:Ya9firZ8.net
BEAMはフレームワークじゃないだろ

209 :デフォルトの名無しさん:2023/06/28(水) 13:30:46.03 ID:BVdlIcNn.net
漠∞!!!!
列∞!!!!!
廷∞!!!!!!
器∞!!!!!!!
業∞!!!!!!!!
論∞!!!!!!!!!
寿∞!!!!!!!!!!
素∞!!!!!!!!!!!

210 :デフォルトの名無しさん:2023/07/06(木) 23:12:25.30 ID:D9prSSOp.net
>>204だけど結局会社入った
F#とC#が入り乱れるフレームワークとそれによるシステムで超苦戦してる
というかF#まじで分かりにくくない?let let letでもう何が何なのか区別が本当につけにくい
{}の区切りも無いから巨大な1ファイルにたくさんクラスがあったりするとどっからどこまでが1クラスなのかすらよく分からない
あとそもそも学習リソースが無い。英語の本やサイトくらいしか包括的に学べない

転職先選び失敗したかなぁ……1週間で早くも落ち込んでる

211 :デフォルトの名無しさん:2023/07/07(金) 07:54:48.06 ID:CjPc9ICD.net
>>210
業務でF#使えるなんてうらやましい。

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

がんばれ

212 :デフォルトの名無しさん:2023/07/09(日) 22:25:24.69 ID:xVwuu7Mx.net
>>210
typeとletで普通に見分けつかん?
英語の本あれば十分なのでは…というか英語でダメならこれを機会に英語勉強しろ
翻訳するのもあり

213 :デフォルトの名無しさん:2023/07/13(木) 00:01:20.07 ID:Bgq+8lL5.net
F#のベストプラクティスがよく分かってないからあれなんだけど
moduleはC#でいうところのstatic classみたいなもんっていうの読んであれ?って
ユーティリティクラスは良くないとか言われるけどあんまstatic classにいいイメージ無くて
F#だと全然そんなことないの?ガンガンmoduleに色々突っ込んじゃえみたいな感じ?

>>211
注文した

>>212
いやtypeとletはそりゃ区別つくけど。関数だろうと変数だろうと条件分岐だろうと全部letじゃない
あとまぁpythonもそうだけどインデントで分けるのほんと分かりにくくて。カッコが無いときつい
英語割りと得意な方だけど勉強するときはやっぱり日本語のほうが頭に入る

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

今日一日ずーっとあれこれサイト巡ってchatgptとかにもお伺い立ててそれでも全然理解できませんでした
大体どの本も最初でさらっと流してるけどどうしてみんな理解できるんですか?自分の理解力の低さに悲しくなってきました

215 :デフォルトの名無しさん:2023/07/26(水) 20:16:10.29 ID:+lLvjQUw.net
>>214
オブジェクト指向でのクラス・サブクラス関係のようなものと考えればいいんじゃないか?
RectangleクラスやCircleクラスのインスタンスはShapeとして扱える、みたいな話の関数型の考え方での表現方法

216 :デフォルトの名無しさん:2023/07/26(水) 22:00:01.17 ID:y+XWVG/2.net
自分は理解に困ったことなかったんで新しい知見だけど
背景知識でどう書き換えられるかを調べてみたらどうだろう。
その感じだとC#とかJavaとかのオブジェクト志向言語は使えるんでしょ
~言語で書いてみる、とかでググってみたらどうかな

番号振られてるのとコンストラクタ(≒クラス)で識別できるのはあまり変わらない気がするけども

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

CircleとRectangleの区別のために、実際にどう実装されてるか気にしなくてもいいと思うけどね

218 :デフォルトの名無しさん:2023/07/27(木) 20:58:49.84 ID:brQVAwIG.net
>>214
> そもそもクラス定義なのにこの内のどれかってどういうことなんですかね。

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

無理やりオブジェクト指向に当てはめるとすると、
null許容型みたいに複数の選択肢を与える型とレコード型を融合させたものと考えたらいいんじゃないですかね。
ただ例え話にも限界が有るし、素直に頭を関数型言語にシフトさせた方がいいと思います。

219 :デフォルトの名無しさん:2023/07/27(木) 23:01:28.28 ID:xZLsmpVc.net
>>214
その例だと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を継承している >>215

220 :デフォルトの名無しさん:2023/07/27(木) 23:41:44.86 ID:8hd6E7B/.net
>>218
あれちょっと衝撃的だったんですけどクラス定義ですよね?typeだし

221 :デフォルトの名無しさん:2023/07/28(金) 00:31:33.37 ID:335A9+o+.net
あーちょっと思いついて判別共用体をDLLにしてC#で呼び出して定義に移動したらC#で判別共用体がどう解釈されるかは分かりました
sealed class Shape の中にstatic class Tagsが定義されてint Rectangle = 0, int Circle = 1みたいに番号振られてますね。考え方としては間違ってなかったのかな……

222 :デフォルトの名無しさん:2023/07/31(月) 19:11:32.66 ID:ah9dO7xg.net
returnが無いの本当にきついと思うんですけど慣れますか
最後まで関数読んでもそもそも何を返しているのかさえ分からないのが日常茶飯事なんですけど
if condition then xxx, true else...みたいなのがあっては?true?なんじゃこの構文と思って散々検索した後にxxxとtrueのタプルを返してるとchatgpt先生に教えてもらったときは無理だろってなりました

223 :デフォルトの名無しさん:2023/07/31(月) 19:38:50.32 ID:ZrzF7TzQ.net
書かれているとおりのものが返るだけなのにreturnがあるはず(あるべき)という
思い込みのせいで分からなくなってるわけで、returnがあるはず(あるべき)という
思い込みはいつか消えますかと問われても、人によるだろと答えるしかないな

224 :デフォルトの名無しさん:2023/08/03(木) 19:15:32.83 ID:fdtnC88s.net
確かにオブジェクト指向とは違う表現が多いだろうけど、それ以上に面白いと思うけどなあ
特にCopilotとの相性が良すぎる

225 :デフォルトの名無しさん:2023/08/06(日) 05:56:54.37 ID:IaLldYqqA
岸田異次元増税憲法ガン無視地球破壞軍国主義文雄のデ夕ラメっぷりか゛炸裂してるな、孑と゛も真ん中社会か゛嘘ハ百なんて孑どもでも分かるわな
カによる−方的な現状変更によって都心まで数珠つなぎて゛鉄道のз〇倍以上もの莫大な温室効果カ゛スまき散らすクソ航空機倍増させて、騷音で
勉強妨害して気侯変動させて地球破壞して孑と゛もの未来を暗黒の世界にして熱中症で殺害,世界最惡の脱炭素拒否テ口國家に送られる化石賞を
連続受賞していながら.私利私欲のために莫大な税金泥棒して,莫大な温室効果カ゛スまき散らしてクソ航空機を乗り倒して世界中に脱炭素カ゛―
た゛の嘘ハ百ほさ゛いてバ力晒して.白々しくマッチポンプ丸出しで災害対策た゛のとバ力の壁やら日本中コンクリ−トまみれにして子どもの遊び場
破壊して溺死連発.利権倍増に増税,氣侯変動て゛あらゆるウイルス蔓延させて人殺して鷄卵価格やら物価暴騰.莫大な石油無駄に燃やす航空機
全廃すれは゛余裕で原発全廃できるものを原發稼働して全國放射能まみれを目指し,隣国挑發.軍事利権倍増.航空騷音で知的産業壊滅してる中
アプリのひとつも作れない分際て゛マイナンバカ−ト゛推し進めて個人情報漏洩しまくり,漏洩した個人情報に━生害を受け続けるのが今の孑と゛も

創価学会員は,何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ−が囗をきけて容認するとか本気て゛思ってるとしたら侮辱にもほどがあるぞ!
hТтPs://i、imgur.сom/hnli1ga.jpeg

226 :デフォルトの名無しさん:2023/11/18(土) 22:09:32.82 ID:H8GQ4CWH.net
コンピュテーション式まじでわかんねぇ……
let!とかdo!とか解説をいくら読んでも理解できん。デバッグでステップごとにやってるとlet!の次の行実行しないでいきなり波括弧終わったりするのなんでや

227 :デフォルトの名無しさん:2023/11/19(日) 02:44:53.10 ID:6eSmn67d.net
コンピュテーション式の名前をはじめて知った初心者だけどステップインで実行したら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

中身がコールバックだからかデバッガが上手いこと判断してくれないんかな。

228 :デフォルトの名無しさん:2023/11/22(水) 23:34:53.49 ID:3O36evGu.net
コンピュテーション式まじで難しい
大体公式のhttps://learn.microsoft.com/ja-jp/dotnet/fsharp/language-reference/computation-expressionsこれはなんだ。理解できる人間が存在するのか
記事とか読んでてもこういう風に自動的に変換できるんだよ簡単だねみたいな書き方してるけど変換先がもうわけわからん
これを頭の中で想像できない人間は書けないのか

229 :デフォルトの名無しさん:2023/11/23(木) 12:25:10.81 ID:USKpqKz9.net
いろんなものを1つのシンプルな手法で表現できる仕組みなので、公式の説明にあるように抽象化された難しい概念なのでは
シンプルというのが簡単ではなくて、難しいというのは数学とかはよくあるよね

公式ではうそや矛盾する喩えを出さないように説明するから、
一面を単純化して喩えてるような、複数の外部の記事を自分の中で抽象化することで理解が進むんじゃないかな

230 :デフォルトの名無しさん:2023/11/24(金) 14:49:40.02 ID:AooEALul.net
直ぐに仕組みを理解しなくても良いんでは?
仕組みを理解しなくてもある程度は使えるでしょ。
難しく考えすぎな気がする。

関数と変数と条件分岐が全部letだって、評価して何かしら結果が得られるものって思えば、全部同じでも困らないし。

231 :デフォルトの名無しさん:2023/11/26(日) 08:28:05.33 ID:rhBBg0xx.net
俺もそのマイクロソフトのサイトだけではさっぱり理解不能だと思う

コンピュテーション式はhaskellのdo記法を真似たものだから
わからなかったらそっちを勉強するのがいいかもしれない
bindの型をみて、bindがチェーンにする様子がイメージできたら
なぜ展開するとああいういかつい式になるのかが理解できてくるよ

232 :デフォルトの名無しさん:2023/11/28(火) 00:02:10.45 ID:kveRhAUs.net
この表はよく見返して、型に合わせてパズルするよ。
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/

233 :デフォルトの名無しさん:2023/12/06(水) 04:53:42.99 ID:GpxwWfWH.net
rわr

234 :デフォルトの名無しさん:2023/12/09(土) 12:18:29.76 ID:oBEhbSCx.net
Haskellとかもそうだけどシンタックスシュガーの元の構文は複雑すぎるので
元の構文までしっかり理解して書けるようにするべきなのか?
というのは意見分かれるだろうな
使い方だけ覚えれば手続き言語のように使えるわけだし

235 :デフォルトの名無しさん:2023/12/15(金) 20:18:00.56 ID:9Jvor+x/.net
https://qiita.com/262144/items/01a3023612116180278e

236 :デフォルトの名無しさん:2024/02/18(日) 11:50:06.93 ID:OiM0FtCI.net
F#使ってる人殆といなくて悲しい

237 :デフォルトの名無しさん:2024/02/18(日) 13:02:53.69 ID:seCcpyNJ.net
どこのサイトで情報収集してる?

238 :デフォルトの名無しさん:2024/02/18(日) 22:19:20.19 ID:d0wVXkls.net
f#の書き方Copilotに質問したらあっさり解決した
geminiは全然駄目だねコンパイル通らなかった

239 :デフォルトの名無しさん:2024/03/17(日) 01:51:00.22 ID:ER8mRT7B.net
既に三か月もF#の記事がない公式ブログかな
https://devblogs.microsoft.com/dotnet/tag/f/

最近ずっとAIとクラウドの話しかされてない

240 :デフォルトの名無しさん:2024/03/17(日) 01:52:34.69 ID:ER8mRT7B.net
公式ブログかissue
ブログはもはやAIとクラウドの話しかしてない・・・

241 :デフォルトの名無しさん:2024/03/17(日) 11:23:11.60 ID:uRPhnK4Q.net
コミュニティベースで頑張るよって言ってるし、あまり書くこともないのかも?

66 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★