スレ立てるまでもない質問はここで 152匹目

■ このスレッドは過去ログ倉庫に格納されています
2019/11/08(金) 21:03:36.68ID:q9/Fdf+e
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。

前スレ
スレ立てるまでもない質問はここで 149匹目
https://mevius.5ch.net/test/read.cgi/tech/1529199088/

前々スレ
スレ立てるまでもない質問はここで 151匹目
https://mevius.5ch.net/test/read.cgi/tech/1541239698/

注意「〜と〜はどっちの方が○いですか?」みたいなのは
このスレの粘着荒らしですので無視してください
2020/03/18(水) 11:36:04.04ID:p0zSIPRj
x AND 3
762デフォルトの名無しさん
垢版 |
2020/03/18(水) 12:44:03.90ID:fwLKdVFo
>>756 >>758
わろた
引退しろ
2020/03/18(水) 12:53:47.12ID:cE9gTBUi
Vimを勉強している者です。undoのuが何度押しても一つ前の作業しかもどりません。左下にbeforeとafter が交互に表示されて一つ以上前の状態に戻ることができません。どうすると二つ以上前の状態に戻れますか。
764デフォルトの名無しさん
垢版 |
2020/03/18(水) 13:16:46.57ID:fwLKdVFo
2u
3u
4u
2020/03/18(水) 15:04:49.82ID:mQYnVt2r
>>763
Vi互換方式になってると思われる
:help undo-two-ways

あとVimのことはVimスレで聞いたほうがいいよ
Vim Part29 http://mevius.5ch.net/test/read.cgi/unix/1550073259/
2020/03/18(水) 15:35:52.59ID:cE9gTBUi
>>765
ありがとうございます
767デフォルトの名無しさん
垢版 |
2020/03/18(水) 16:34:02.38ID:X++XSFvo
C#でstaticメソッドを静的なメソッドと書いてありましたが、動的なメソッドはなんていうんですか?また、動的なクラスはなんていうんですか?
768デフォルトの名無しさん
垢版 |
2020/03/18(水) 16:39:47.43ID:X++XSFvo
だ、ダイナミックメソッド?
2020/03/18(水) 17:57:24.18ID:+gBMy8G2
>>767
単に「メソッド」、あるいは「動的メソッド」
2020/03/18(水) 18:38:55.95ID:mQYnVt2r
インスタンスメソッド
非静的クラス(non-static class)
2020/03/18(水) 19:56:36.99ID:j/xKE1i6
非静的なメソッド
静的でないメソッド

格好つけようとしないで誤解の無いように普通に書けば良い
2020/03/18(水) 23:57:13.22ID:Umd71mII
そういえばC#とJavaの静的メソッドってのは歴史的経緯を多分に含んだ微妙なネーミングかもな
対義語である動的がフィットしない時点で命名としてはアヤしい
概念的にはclass method対instance methodと呼ぶべきもの
Delphiには動的(dynamic)メソッドと静的メソッドがあってちゃんと対比になってた
2020/03/19(木) 07:37:08.10ID:Twc2892j
たしかに非対称な名前ではあるが
そもそもインスタンスが
生成されるもので動的だから
そういう名前なんだろう
2020/03/19(木) 09:22:53.40ID:PJNEdIzn
staticは未来永劫の無限でありdynamicは刹那のものである
2020/03/19(木) 09:44:49.05ID:SIWc9klw
>>774
無理に難しい言葉を使おうとして的外れなことを言っちゃうのは恥ずかしいぞ
2020/03/19(木) 13:14:52.57ID:Twc2892j
「気分はstatic」は名言
2020/03/19(木) 15:55:14.14ID:JYzTrz56
こんにちは。
ブロックソーティングのコードを書いています。
それで、だれか査読してもらえないでしょうか。

C++です。
https://ideone.com/gvJMJ5

主にデコード処理が良くわかりません。
よろしくお願いいたします。
778デフォルトの名無しさん
垢版 |
2020/03/19(木) 22:15:33.72ID:z1kM0Yoy
ソースコードのメトリクス測定で、ファンクションポイントの
統一的な計算方法ってある?

俺が知ってるファンクションポイントはプロジェクトごとにバラバラで
はっきり言って適当な値(ポイント)を根拠にする信頼性が低い計算方法なんだが
2020/03/20(金) 09:55:51.25ID:IqcuAu3D
>>778
ファンクションポイントはソースから計算するものじゃないぞ

ソースから自動で計算するためにはすべてのコードにコメントやアノテーションでFP計算用の印を付けとかないと無理

FPは恣意性が入る余地が小さいから出来上がったシステムに対する計算結果がバラバラになるならそれはその組織の問題
2020/03/20(金) 10:09:17.83ID:u1wBzCgK
>>779
俺もそう思ってるんだけね。まあその人が書いた文章が間違ってる可能性もあるんだが
「俺はファンクションポイントを計算したい」と。
「このツールはファンクションポイントを計測できる。」と主張してる。英語だけど
英語圏だと別の意味だったりするのかなぁ
781デフォルトの名無しさん
垢版 |
2020/03/20(金) 10:46:34.33ID:nAHhYb7g
C# で string s があるとき
s.Length って何で uint じゃなくて int を返すんです?
782デフォルトの名無しさん
垢版 |
2020/03/20(金) 11:06:50.32ID:ykidNgFn
写るんです
2020/03/20(金) 11:30:21.83ID:MeN6M6dL
とりあえずintのぶっこめたほうが便利じゃん
uintのない言語だってあるんだよ
clsの仕様に依存してるせい
みたいなことをうだうだ議論してるな
https://duckduckgo.com/?q=why+c%23+string+length+is+int32+not+uint32&;ia=web
784デフォルトの名無しさん
垢版 |
2020/03/20(金) 11:35:36.07ID:nAHhYb7g
仮に uint より int の方が便利って妥協するにしても
Int32 より Int64 にしなかったのは何故なんです?
2020/03/20(金) 12:07:16.63ID:tkx4ScZk
>>784
ファイルサイズなら64bit必要になるのも当然だが、メモリ上のstringに64bit必要になるような巨大なデータを突っ込むようなバカな使い方はしないで他の方法を使えということだろう。
2020/03/20(金) 14:39:58.00ID:yNtIjzS4
業務アプリを作ってます。
画面上の項目の活性/非活性や表示/非表示の制御を保守性を高くして作りたいんですが今いちやり方が分かりません。

例えばある伝票の更新画面に、入力項目が20個あるとしてそれらの項目は各項目の入力内容によって活性状態、表示の有無が変わるとします。
上記のように様々なパターンがたある場合どのように制御すればいいのでしょうか?有名なデザインパターンみたいなものがあられば教えてください。
ちなみにフレームワークはASP.NET Webフォームになります。
2020/03/20(金) 15:45:32.24ID:tkx4ScZk
>>786
デザインパターン的なものは知らないが、表示項目をグループ化、階層化して一方通行の依存関係を木構造で表してみたら? 相互循環するような関係だと破綻しやすいけど木構造ならそんなに難しくない。
2020/03/20(金) 15:58:20.41ID:i2c+AgK7
よく例に上がるのはMediatorパターン
2020/03/20(金) 17:20:11.10ID:b2ihZgLg
>>780
少し興味があって調べてみたが手動のFPと
自動で計算するFP(AFP)は少し別物と捉えたほうがよさそう
https://www.omg.org/spec/AFP

このツールがAFPをソースから計算できると謳ってるけど精度は不明
https://www.castsoftware.com/research-labs/function-points

言語やフレームワークに応じたコードとFP要素のマッピングルールを使うっぽいけど
あんまり高い精度で計測できるとは思えないね
2020/03/20(金) 17:40:29.07ID:b2ihZgLg
>>786
各入力項目の状態のパターンとそれらが変化する条件のパターンを整理する

仮にデフォルト表示 + 活性でいけるとしたら
例えば各入力項目ごとに
非表示の条件リストと
非活性の条件リストを持てばいい
(計算量が気になる場合は条件リストをビットマスクで管理)

非表示と非活性のどちらを優先するかみたいなルールは
全体で共通化しておくか入力項目ごとに優先順リストを設定する
2020/03/20(金) 18:51:09.69ID:UyuV1c/9
C言語からやってる腐れた老害の私なんかは最初に意味/使い方が違うので混乱したけど
C言語のStaticは「静的」っていうより「固定的」って意味で使っていたので定数を表して
たんだけど、オブジェクト指向言語になってから意味論的に正しいような「const(constant)」を
定数に使うようになったのね
で、staticは「静的」=最初から定義されているって意味で使われるようになったので静的
○○って表現になった
なので静的メソッドだと動的メソッドって何ってなるけど、プログラムの中で固定的(静的)に
確保されているオブジェクトをすべて静的○○、それ以外のインスタンスで動的に作り出す
オブジェクトを便宜的に動的○○みたいな表現をしてるって感じかな
>>781
色々それっぽい理由があるのかもしれないけど、一番大きいのは古い言語では整数型は
何でもint、uintを使うならば意図して宣言しなさいみたいな仕組みだったし、特に昔からの
実装(文字列変数とか配列の要素数の表し方)と変える必然性も感じなかったってことじゃ
ないかな
>>784
>>785のいうこともあるかもしれないけど、今の所はまだ32ビットOSも存在するのでInt64
縛りにすると64ビットOS用のプログラムしか作れなくて困るんじゃないかな
2020/03/20(金) 19:55:35.89ID:DCIcgxM7
>>791
Cのstaticは定数じゃないよ
ローカル変数をstaticとした場合は前回関数呼び出し時の値を維持する変数になる
メモリ確保的にはstaticという、Low LevelなCにとっては自然な名称
static変数の対義語はauto変数
2020/03/20(金) 20:13:20.27ID:9Rt28RNw
>>792
static:静的データ領域に確保、値を保持
auto:動的データ領域のスタック領域に確保、自動で破棄
malloc:動的データ領域のピープ領域に確保、手動で破棄

趣味でC言語勉強して簡単なWindowsアプリ作ってた時は
こういうイメージだったわ
間違ってるかもしれんけど
2020/03/20(金) 20:26:21.40ID:ZXXcV+N/
>>791
8-bit CPUでも16ビットの整数が扱えるCPUは多い。32ビットでもそうだ。
2020/03/20(金) 20:27:53.15ID:feIbI0/r
CPUが扱ってるわけじゃなく
コンパイラが扱ってるんだよ
2020/03/20(金) 22:55:10.84ID:m/hAjemf
どういうことなの
2020/03/20(金) 23:22:36.99ID:0fz/cNnU
低能は語の日常的な意味やイメージに引きずられる
そういうのはマには向かない

とにかく仕様を100%理解しろ
必要なのはそれだけだ
2020/03/21(土) 01:05:04.87ID:bp4+w47a
32bitOSとかいう時のbit数はアドレス空間の大きさ
言語に64bit整数型があるかどうかとは関係ない

z80ターゲットのcコンパイラでもlongやdoubleが使えるのもある
2020/03/21(土) 05:07:59.52ID:aSsBDGSZ
アドレス空間じゃなくてCPUモードやろ
16bit OSだったら、アドレス空間は16bitなんか?
2020/03/21(土) 07:44:09.58ID:4LIxTLDC
なんかずれてきたな

32bit環境でも64bit整数を扱えるのは
コンパイラ(やライブラリ)が32bit命令を組み合わせて64bit演算を実現してるから

複数の命令を組み合わせてるので
低速でしか動かない
2020/03/21(土) 09:26:29.49ID:Nklv0DXu
結合と記憶域期間

static は静的記憶域期間
auto は自動記憶域期間

static は内部結合
extern は外部結合
802デフォルトの名無しさん
垢版 |
2020/03/21(土) 09:32:34.39ID:y3JTYFkb
sexは性器結合
kissは口結合
2020/03/21(土) 09:40:18.90ID:2ItZ3kvH
>>607
もう解決してれば無視してほしいが、そのコントローラー、xinput対応じゃないの?
2020/03/21(土) 10:27:17.97ID:3uF/mjPQ
さらにずれるけど、32ビットCPUでもMMXやSIMDの類いなら64ビットの値をCPUが扱ってるは真だよな
2020/03/21(土) 10:46:21.12ID:KiByXfYX
staticやintの話題には無駄に食いつく一方、>>786のような設計に関わる話題には食いつかない

この板の住人の層がよく分かる流れ
2020/03/21(土) 11:15:25.41ID:Nklv0DXu
>>786
画面に、10項目ぐらい並んでいて、
上から順に、入力項目がValidate されるのは、

Ruby on Rails でも、ごく普通のこと
2020/03/21(土) 11:17:39.24ID:dXZm5L8S
805に反応して書き込みしたんだろうけど、答えになってないよね
2020/03/21(土) 11:19:34.97ID:KiByXfYX
>>806
validationの話ではないぞ
2020/03/21(土) 11:21:33.56ID:tuOdrSqm
それ、いつものRuby君だろう
810デフォルトの名無しさん
垢版 |
2020/03/21(土) 11:23:36.45ID:YRhZ58G9
大阪で1番の恥さらしな男、最低中の最低のゴキブリ男が書いた渾身の力作!!
ノンフィクション自叙伝
【ゴミと呼ばれて刑務所の中の落ちこぼれ】
中学2年の時に覚醒剤を覚え、17歳から45歳まで【少年院1回、刑務所8回、合計20年】獄中生活を繰り返した男だったが、ある女性との出合いで生き方を180度変えて鉄の信念で、見事に更生した奇跡の一冊!!
楽天ブックス、アマゾンなら送料無料
811デフォルトの名無しさん
垢版 |
2020/03/21(土) 13:02:29.67ID:Svr31MZC
デザインパターンはfluxでいんじゃね
2020/03/21(土) 13:44:43.61ID:Ibv/iLyj
あ 宣言的UI & fluxか
react/reduxのパターンを言いたい
調べたらasp.netでもreact使えるみたい
813786
垢版 |
2020/03/21(土) 18:24:39.20ID:lHraNEN7
皆様アドバイスありがとうございました!
いくつか検討したところMediatorパターンが有用そうだったのでこちらにチャレンジしてみます!
814デフォルトの名無しさん
垢版 |
2020/03/21(土) 21:23:54.82ID:Qk9e/W2u
コーディング案件でBootstrapでのコーディング断られることある?
2020/03/22(日) 04:45:36.88ID:HpFFHFhU
Bootstrap 禁止なら、レスポンシブ対応できないだけw
自分で、ライブラリ相当のものを書ける香具師は、いないだろw

自作すれば、価格が10倍以上になるw
816デフォルトの名無しさん
垢版 |
2020/03/22(日) 07:30:12.22ID:yEtJlPNr
香具師とは?かぐし?
2020/03/22(日) 07:52:35.61ID:PzgFCfSU
>>816
やし
818デフォルトの名無しさん
垢版 |
2020/03/22(日) 10:23:03.83ID:yEtJlPNr
JavaScriptで
「関数というのはオブジェクトの一種ですから、プロパティーを持つことができます。」
と書いてた。
どういうこと?
オブジェクトの中にプロパティと関数があるのではないの?
819デフォルトの名無しさん
垢版 |
2020/03/22(日) 10:24:41.96ID:yEtJlPNr
>>817
漢字3文字、ひらがな2文字でおかしいぞ。
そんなかなり特殊な読み方ってあるのか?
学校で習ってないぞ。
2020/03/22(日) 10:28:23.56ID:ZXA28Lms
>>818
ややこしいけど「関数オブジェクト」というのもある
2020/03/22(日) 10:37:43.02ID:VphPQW8g
関数型とオブジェクト指向に折り合いをつけようとすると、そう言うしか無くなる
「JavaScriptでは関数はオブジェクトの一種であり、プロパティを持つことができるように作ってある」程度に読み換えとけ
2020/03/22(日) 11:24:05.98ID:I5Su+SV6
>>818
オブジェクトはプロパティの集まり
プロパティの値としてプリミティブ(string, number, bool等)やオブジェクト(関数, 配列, その他オブジェクト)を持つことができる

関数のプロパティを使うよくある例(class構文が出来たから使うケース減ってるかもしれないけど)
function Foo(bar){
this.bar= bar;
}
Foo.prototype.baz= function(){…} //<=ココ

ライブラリを作ってるんじゃなければ関数に独自のプロパティを追加して使うケースは少ないと思う
2020/03/22(日) 11:33:35.10ID:nwybfWiz
>>819
百舌鳥(もず)
山毛欅(ぶな)
似而非(えせ)
日本語には明日(きのう)とか昨日(あした)とか、漢字と読みがなが1対1で対応しない語がたくさんあって、そういうのを熟字訓という
2020/03/22(日) 11:35:41.10ID:nwybfWiz
きのうとあしたが逆になってキモい文にしまった…
2020/03/22(日) 12:15:40.38ID:I5Su+SV6
>>822
よく考えたらthis.bar = bar;が
関数に独自プロパティを設定してるケースだったわw
826デフォルトの名無しさん
垢版 |
2020/03/22(日) 12:33:25.21ID:F4lre3ad
天照大神(アマテラスオオミカミ)
2020/03/22(日) 16:39:18.89ID:c5TE3idF
頭照らす多い髪
2020/03/22(日) 19:28:18.63ID:wPnS/MwM
熟字訓というのか知らなんだ
2020/03/23(月) 02:14:27.47ID:7lDoSnDw
2chやっててヤシしらない奴がニワカなんだよ
10年ROMってろ
830デフォルトの名無しさん
垢版 |
2020/03/23(月) 02:31:41.27ID:GxUVH+Vx
ハゲ照らすツルッ髪
2020/03/23(月) 03:21:21.88ID:9M8EaqlK
mongodbで複合インデックス使ってるときに、一定期間経過したらドキュメントを削除する方法ってないでしょうか?
832デフォルトの名無しさん
垢版 |
2020/03/24(火) 00:49:57.81ID:/ZNMWK8v
以前インフラ系の仕事してたんだが、ちょっとした興味でプログラミング系のことで
ググったら検索結果が一般的にキュレーションと呼ばれるサイトに占領されてた。
非常に調べにくい。
インフラ系のサイトまでこうなってしまわないか心配
2020/03/24(火) 01:04:05.74ID:K9RNtuKk
グーグルはウェブ検索の予算打ち切ってるから近い将来みんなそうなるよ
834デフォルトの名無しさん
垢版 |
2020/03/24(火) 11:39:42.46ID:JQ7YmFwi
s●juku とか te●atail とか ●hoochie遅れ とか消えて良いわ
835デフォルトの名無しさん
垢版 |
2020/03/24(火) 19:22:40.33ID:dWari+Ko
組み込み開発の基本的理解を確認したいんだけど
組み込みでは場合によって特殊なCPUが使われるから
ClangとかLuaとかC++が使えない場合があるという理解であってるだろうか?
そのせいでCしか使えない場合がある
836デフォルトの名無しさん
垢版 |
2020/03/24(火) 19:24:31.78ID:dWari+Ko
あ、CLangでCへトランスパイルすれば
Cコンパイラがある環境なら使えるのか?
2020/03/24(火) 19:58:36.80ID:sD3dLiow
PIC10F200で組んでみると色々とわかる
2020/03/24(火) 20:45:05.52ID:KtfI6cNR
>>836
>Cへトランスパイル
そんなことが可能だと、どこで聞いてきたのか?
839デフォルトの名無しさん
垢版 |
2020/03/24(火) 23:10:51.39ID:VEXVTjKb
【1400万円】ルイ・ヴィトン × シュプリームのトランク&スケボー開封!
https://www.youtube.com/watch?v=9ePCkAXXTtI
【総額500万超え!?】ルイ・ヴィトン × ヴァージル・アブロー第1弾アイテム購入品紹介!
https://www.youtube.com/watch?v=4FY4dshSD9c
ヒカキン、人生で最大の買い物をする 【1500万円】
https://www.youtube.com/watch?v=cQ9kGR8Mq0M
【◯◯◯万円!?】店のもの全部下さいって言ったら超大変なことになった…
https://www.youtube.com/watch?v=UmgiPORUg5g
【総額800万円!?】新居に家具一気に買ってみた!【家具家電紹介】
https://www.youtube.com/watch?v=zFLb7FJB9i8
【絶望】1900万円の時計買って8時間で終了…【悲報】
https://www.youtube.com/watch?v=h-7ySacMrR8
400万円の純金ハンドスピナー買ったらヤバすぎたwww【金の延べ棒】
https://www.youtube.com/watch?v=So1uRLXRf84
【貴族の遊び】超高級純金トランプ家中にバラまいてみたwww
https://www.youtube.com/watch?v=6tlSt-_BdQY
840デフォルトの名無しさん
垢版 |
2020/03/25(水) 09:40:04.03ID:k6zngd1F
>>838
できないの?LLVMでできるからできるのかと
2020/03/25(水) 20:02:03.02ID:NhhL8cnU
>>840
LLVM だからといってトランスパイルできるとでも?
2020/03/25(水) 20:10:35.33ID:mDQN7f94
自分はwindowsで開発しているのですが、iPhone+safari環境から来たバグの報告が手元で再現できません。
windows上でiPhone+safariに近い環境をシミュレートするとするならばどのような方法があるでしょうか
2020/03/25(水) 21:05:09.90ID:jyRX1sVI
中古ででもiPhone買ってくる。それ以外は時間の無駄。
844デフォルトの名無しさん
垢版 |
2020/03/25(水) 21:15:41.27ID:k6zngd1F
>>841
あれ?できないのか。確かに検索してみてもトランスパイルのためにいちいち何か作ってるみたいだな。
各言語からLLVM IRを作れるから、
LLVM IRからCへのトランスパイラが一度実装されれば
LLVM対応の全言語からCにトランスパイルできるのかと思ってた。
2020/03/25(水) 22:37:05.36ID:NhhL8cnU
>>844
>LLVM IRからCへのトランスパイラ
そんなものがホイホイ出てくるとでも?
846デフォルトの名無しさん
垢版 |
2020/03/25(水) 23:01:36.49ID:k6zngd1F
IRの仕様が安定してるなら、誰かが1回作ればずっと使えるでしょ
何で誰も作らないの
LLVMの標準機能としてあってもいいはず
2020/03/25(水) 23:12:14.95ID:qvXjJ9lz
一枚噛ますくらいだったら最初からgcc通せばいいじゃん

それに C言語→LLVM→IR→トランスパイラ→C言語 で、ほぼほぼもとに戻るっていうのが欲しいんでしょ
二村射影じゃねえの
2020/03/26(木) 00:04:28.57ID:8/yZHzko
>>847
>C言語→LLVM→IR→トランスパイラ→C言語 で、ほぼほぼもとに戻る
あなた、土台無理無体なものをいけしゃあしゃあと言いますな…
849デフォルトの名無しさん
垢版 |
2020/03/26(木) 00:51:32.32ID:e0+FyfEU
最適化の前にどんなコードだったか分からないしほぼ元通りではなくとも
同等な処理をするようにはできるのでは?
2020/03/26(木) 07:25:38.23ID:Xv2xNFci
VPSを借りてSSHをインストール
自宅→VPS→会社
のようにVPSを踏み台に会社に接続(対話型ログイン、ポートフォワード)

この場合、会社から自宅のIPは見えているのでしょうか?
自宅のIPを会社に晒したくないので回避したいです
851デフォルトの名無しさん
垢版 |
2020/03/26(木) 10:18:11.76ID:CZRmHBwj
>>849
原理的に例えばpythonで描いたものは単純にCに置き換えが出来るが
そうやって出来たCのコードは君が期待している(かもしれない)ようなCの速度は出ないぞ
852デフォルトの名無しさん
垢版 |
2020/03/26(木) 17:05:04.44ID:e0+FyfEU
モナドについて調べてたんだけど
Maybeモナドでnullチェック無くせるらしいけど
try catchをちゃんと使えばnullチェック要らんでしょ。
というかMaybeモナドでもNothing返すわけだけど
Nothingを受け取ったところはどうするのっていう
「もしNothingだったらこの処理」みたいな条件分岐がどこかに入るんじゃないの?

なんか関数型はo.method1().method2().method3()みたいに
パイプラインっぽく書くことに拘ってる気がするんだけど
そのメリットはなんなの?
853デフォルトの名無しさん
垢版 |
2020/03/26(木) 17:17:24.01ID:e0+FyfEU
empty, nothing, nullみたいな値は常に「処理を終了させるもの」
それ以外の有効な値が「処理を継続させるもの」

という世界観を置いてしまってる感じがする。モナドとやらは。
「nullの場合にも正常系の処理がある」という考えが無くなっている。

例えばMapに「特定のデータが無い事をチェックする」場合、
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Map.html#get-java.lang.Object-
こういうのを使って「nullが返った事を確認して、だからこそ正常系の処理を続行する」
という場合があるけど、たぶんモナドの世界ではnullは常に異常系でなければならない。

まあMapにifPresentがあるからnullに依存しない書き方も可能ではあるけど。
2020/03/26(木) 22:41:27.89ID:5np4UAxw
>>852
>パイプラインっぽく書くことに拘ってる気がするんだけど
>そのメリットはなんなの?
関数の合成

プログラムの基本は入力 -> 処理 -> 出力
この処理が一つの関数だけど
それを複数の関数に分解して合成することでプログラムを作ってるよね?

関数の合成可能性(composability)が高ければ
再利用しやすい、パターン化しやすい、一つの関数をシンプルにしやすい、テストやメンテがしやすい等のメリットがある
2020/03/26(木) 22:52:22.75ID:5np4UAxw
>>852
比較的馴染みのある言語で
関数型の考え方を取り入れてる機能を調べてみると
何がうれしいのか分かりやすいんじゃないかと思う

SwiftのOptional型とOptional Chaining
KotlinのNullable型とSafe Calls
C#のNullable型とNull Conditional Operator
など
2020/03/27(金) 05:25:50.59ID:QZ/xTJoy
>>852
パイプラインや関数型言語の明確なメリットとして並列化のしやすさがある
ムーアの法則が崩れた今マルチコアCPUを活用せざるを得ないからな
古典的なforを書けばその順に逐次処理をするという意味にしかならない一方
関数でマッピングやフィルタリングを書いた場合は集合から集合への変換が欲しいという書き方になり
もし順序を問わない変換なら簡単に逐次処理から並列処理にできる
手続き指向からより目的指向の書き方になるとも言える
でも分岐やエラー処理だけは古典的な書き方が必要なんですとなるとそこで並列化の可能性が途切れるので一貫する必要がある
2020/03/27(金) 07:10:50.03ID:3wjnzokm
>>856
> もし順序を問わない変換なら簡単に逐次処理から並列処理にできる
そりゃそういう処理なら手続き型でもたいした手間なしに並列処理にできるよ…
2020/03/27(金) 09:02:24.46ID:QZ/xTJoy
>>857
たいした手間というのの程度問題だな
Powershell 7やJava、C#のストリーム処理ならそのままpalallelという一語を足すだけで逐次処理が並列処理に変わる
859雑談
垢版 |
2020/03/27(金) 12:48:05.59ID:VF7rXgN0
>>858
いつから順序を問う処理が並列化可能になったのか
SlideShowだかで並列化可能の条件を読んで納得していたのは古い常識なのか?
2020/03/27(金) 14:54:15.60ID:zkz45zzz
>>859
複数ストリームで並列に処理するって話じゃね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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