質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
前スレ
スレ立てるまでもない質問はここで 150匹目
https://mevius.5ch.net/test/read.cgi/tech/1537176309/
注意「〜と〜はどっちの方が○いですか?」みたいなのは
このスレの粘着荒らしですので無視してください
探検
スレ立てるまでもない質問はここで 151匹目
レス数が1000を超えています。これ以上書き込みはできません。
2018/11/03(土) 19:08:18.89ID:nx8/6O0X
970デフォルトの名無しさん
2019/05/03(金) 15:06:25.51ID:ZByh2Qvf >>969
参考書で勉強するような概念じゃない
参考書で勉強するような概念じゃない
971デフォルトの名無しさん
2019/05/03(金) 21:00:57.78ID:zOIXy+Gc972デフォルトの名無しさん
2019/05/03(金) 22:00:50.02ID:4DzoaGjH 関数型プログラミングでは副作用はどう表現するのですか?
ファイルのIOやprintfは必要だと思うのですが。。。
ファイルのIOやprintfは必要だと思うのですが。。。
973デフォルトの名無しさん
2019/05/04(土) 09:12:23.39ID:S+NYX3By >>972
関数型言語のスレの方が良い気がするけど。。。
感覚的で良ければ。
圏論では変数も引数のない関数と見なすので、例えばgetLineみたいな副作用のある関数も一種の変数(外部からの入力が入っている変数)と見なします。
n = 1 ― 変数であり、引数なしの関数
入力
↓
getLine ― 副作用関数であり、入力が入っている変数
ただ、入力を通常の値と同じにすると参照透明性が破れるので、IO Stringの様に別の型にして、>>=からしか値が取り出せない様にします。
(逆に通常の型にIOを付けたい場合はreturnを使います)
そうする事で、副作用のある関数は普通の関数も使えるけど、逆は無い事が保証されます。
ぶっちゃけ、純粋関数型言語にも副作用はあると言えますが
(無いと主張するなら虚数の掛け算みたいな感覚。実数に対して90度の回転みたいに、虚空からの値の変数への束縛。
ただしその変数は常に部分適用で見た目が隠されている。みたいな)、
参照透明性が破られることは無い。と言うのが純粋関数型言語の特徴ですね。
関数型言語のスレの方が良い気がするけど。。。
感覚的で良ければ。
圏論では変数も引数のない関数と見なすので、例えばgetLineみたいな副作用のある関数も一種の変数(外部からの入力が入っている変数)と見なします。
n = 1 ― 変数であり、引数なしの関数
入力
↓
getLine ― 副作用関数であり、入力が入っている変数
ただ、入力を通常の値と同じにすると参照透明性が破れるので、IO Stringの様に別の型にして、>>=からしか値が取り出せない様にします。
(逆に通常の型にIOを付けたい場合はreturnを使います)
そうする事で、副作用のある関数は普通の関数も使えるけど、逆は無い事が保証されます。
ぶっちゃけ、純粋関数型言語にも副作用はあると言えますが
(無いと主張するなら虚数の掛け算みたいな感覚。実数に対して90度の回転みたいに、虚空からの値の変数への束縛。
ただしその変数は常に部分適用で見た目が隠されている。みたいな)、
参照透明性が破られることは無い。と言うのが純粋関数型言語の特徴ですね。
974デフォルトの名無しさん
2019/05/04(土) 09:14:58.80ID:S+NYX3By こう言う書き方はできない
(この場合、putStrLnはString->IO (), getLineはIO String)
main = putStrLn getLine ― 型が違うのでエラー。
これならおk
main = getLine >>= putStrLn ― 入力(ランダムも)したものの加工や出力は必ず>>=の後になる。
(getLine >>= \str -> putStrLn str を部分適用した)
or
main = do str <- getLine
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapMやmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
(この場合、putStrLnはString->IO (), getLineはIO String)
main = putStrLn getLine ― 型が違うのでエラー。
これならおk
main = getLine >>= putStrLn ― 入力(ランダムも)したものの加工や出力は必ず>>=の後になる。
(getLine >>= \str -> putStrLn str を部分適用した)
or
main = do str <- getLine
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapMやmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
975デフォルトの名無しさん
2019/05/04(土) 09:16:00.91ID:S+NYX3By 制限に引っかかった。。。
main = do str <- getLine
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapMやmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
main = do str <- getLine
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapMやmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
976デフォルトの名無しさん
2019/05/04(土) 09:29:06.06ID:vdfWhHEk main = do str <- getLine
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapM(値を返す)やmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapM(値を返す)やmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
977デフォルトの名無しさん
2019/05/04(土) 09:31:47.15ID:vdfWhHEk main = do str <- getLine
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapM(値を返す)やmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
putStrLn str
出力に対しても、出力関数が左端になる事を保証します。
(普通の関数との合成なども出来るが、普通の関数が左端に来る関数に出力関数が引数になったり、合成されることは無い)
main = map print [1..3] ― 型エラー。
main = mapM_ print [1..3] ― IOモナド用のmapM(値を返す)やmapM_(値を捨てる)ならおk
main = print.length [1..10] ― 出力関数が左端に来るなら、普通の関数と関数合成可能。
main = mapM (\_ -> getLine) [1..3] >>= mapM_ (print.length) ― 結局、型が合えば動くと言う点では普通の関数と同じ。
978デフォルトの名無しさん
2019/05/04(土) 15:52:20.32ID:adnCRUw6 オープンソースだとソースコードをチェックできるからセキュアだ、
というような言説がありますが、
例えばgithubでソースコードと実行可能バイナリが公開されていたとして、
本当にその実行可能バイナリがそのソースコードからビルドされたのか
分からないんじゃないですか?
何か簡単に確かめる方法はありますか?
というような言説がありますが、
例えばgithubでソースコードと実行可能バイナリが公開されていたとして、
本当にその実行可能バイナリがそのソースコードからビルドされたのか
分からないんじゃないですか?
何か簡単に確かめる方法はありますか?
979デフォルトの名無しさん
2019/05/04(土) 15:53:47.87ID:z6rpqItx ソースあるなら自分でビルドするから
980デフォルトの名無しさん
2019/05/04(土) 16:01:13.99ID:xRy8GHS2 オプソの開発者にも同じこと思ってる人は居てreproducible buildsみたいなプロジェクトもあるっちゃある
981デフォルトの名無しさん
2019/05/04(土) 16:11:09.41ID:t4zJt5DP バイナリに電子署名付けて私がビルドしましたって証明するのが限界で
元のソースを辿るのは無理だと思う
元のソースを辿るのは無理だと思う
982デフォルトの名無しさん
2019/05/04(土) 16:11:46.40ID:eyQzK648 このビルドはワシが育てた。
983デフォルトの名無しさん
2019/05/05(日) 01:22:11.46ID:kL93aIfd >>978
ソースからビルドしたものとサイズを比較する。
ソースからビルドしたものとサイズを比較する。
984デフォルトの名無しさん
2019/05/05(日) 01:44:58.76ID:fizRIu1X985デフォルトの名無しさん
2019/05/05(日) 09:46:43.61ID:OAMUtfzX 同じツールセットと設定でビルドすればバイナリの差分確認くらいできる。
タイムスタンプとか差分の出るところはわかってるんだから。
プロジェクトによってはちゃんと複数人でそれぞれビルドして同じソースからビルドしたバイナリなのを確認したりする。
タイムスタンプとか差分の出るところはわかってるんだから。
プロジェクトによってはちゃんと複数人でそれぞれビルドして同じソースからビルドしたバイナリなのを確認したりする。
986デフォルトの名無しさん
2019/05/05(日) 10:51:39.58ID:VtQYfSta >>985
なに全時代的なことしてるんだ?w
ビルドはCIによって自動的に行われ、ビルド手順は
ソースコードと同じようにバージョン管理されるんだから
そんな無意味で時間がかかる=コストがかかる馬鹿げた方法をやる必要はない
なに全時代的なことしてるんだ?w
ビルドはCIによって自動的に行われ、ビルド手順は
ソースコードと同じようにバージョン管理されるんだから
そんな無意味で時間がかかる=コストがかかる馬鹿げた方法をやる必要はない
987デフォルトの名無しさん
2019/05/05(日) 10:51:59.45ID:VtQYfSta × 全時代
○ 前時代
○ 前時代
988デフォルトの名無しさん
2019/05/05(日) 13:13:33.44ID:ptHRpxR9 >>984
簡易チェックとしては定石だけどな。
簡易チェックとしては定石だけどな。
989デフォルトの名無しさん
2019/05/05(日) 13:22:15.36ID:2252L+7N VSでC#をビルドすると同じソースでもハッシュ変わるし改変してもバイナリサイズ同じとか普通にあるから困る
990デフォルトの名無しさん
2019/05/06(月) 11:31:21.72ID:fIiGJlWA VS2017でC#使ってFramework4.6.1でやってるんですが
PrintDocumentで、デバイスとプリンターにあるFaxに出力をかけると
普通は宛先情報の入力画面が表示されると思うんですが
PrintDocumentの方で何か情報をインプットするなりして
宛先入力画面を表示させない方法とか無いですか?
PrintDocumentで、デバイスとプリンターにあるFaxに出力をかけると
普通は宛先情報の入力画面が表示されると思うんですが
PrintDocumentの方で何か情報をインプットするなりして
宛先入力画面を表示させない方法とか無いですか?
991デフォルトの名無しさん
2019/05/06(月) 16:24:52.13ID:inXvnXa3992デフォルトの名無しさん
2019/05/06(月) 23:19:25.93ID:w/vwmWEJ >>990
入力画面が表示されるのは普通じゃないだろw
入力画面が表示されるのは普通じゃないだろw
993デフォルトの名無しさん
2019/05/07(火) 08:46:11.21ID:dYmQvrG6994さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/05/07(火) 08:51:09.03ID:fgAbOfTE そろそろ次スレ
995デフォルトの名無しさん
2019/05/07(火) 09:21:04.78ID:7undKR/x996デフォルトの名無しさん
2019/05/07(火) 19:45:31.20ID:5Jh8r5ay >>993
だから情報が足らない状態で印刷しようとするからそうなる。
だから情報が足らない状態で印刷しようとするからそうなる。
997デフォルトの名無しさん
2019/05/07(火) 19:51:59.86ID:dGHDXi4W >>993
PrintDocumentは印刷のためのもので宛名聞いてきているのはFaxの方じゃない?
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/printdocument-component-overview-windows-forms
PrintDocumentは印刷のためのもので宛名聞いてきているのはFaxの方じゃない?
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/printdocument-component-overview-windows-forms
998デフォルトの名無しさん
2019/05/08(水) 09:00:56.82ID:a9venIhx javaって有料化するんじゃなかったっけ
999デフォルトの名無しさん
2019/05/08(水) 10:56:42.82ID:I87+V7H7 Javaは有料化しないんじゃないの
OracleJDKは有料化するけど、他に無料のJDKが数種ある
OracleJDKは有料化するけど、他に無料のJDKが数種ある
1000デフォルトの名無しさん
2019/05/08(水) 11:03:11.96ID:OXX01uLM return
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 185日 15時間 54分 54秒
新しいスレッドを立ててください。
life time: 185日 15時間 54分 54秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 ★6 [お断り★]
- 【サッカー】Jリーグ、43億円の赤字予算を承認 ★2 [鉄チーズ烏★]
- 「レーダー照射」なぜ中国は素直に謝罪しないのか 非を認めず反論、逆ギレ「ごめんなさい」と言えない国情★3 [七波羅探題★]
- 松村沙友理、スタバは好きだけど「やっぱコーヒーに700円800円が…」「家でお湯わかしてやったらタダやん」 [muffin★]
- 40代教員、1億8600万円分の暗号資産だまし取られる 「警察手帳のような物」見せられ−滋賀県草津市 [蚤の市★]
- コンビニの鮭おにぎり、価格にネット衝撃!「これはキツい…」「日本人を殺しに来てる」 YouTuber吉田製作所の投稿に驚き続々 [冬月記者★]
- 日本を破壊している高市を支持している国民は75%。この国、異常すぎるだろ [805596214]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- 🏡←これ立ってなくて草wwwwww
- ブレイキングダウンの試合前挑発タイムでくも膜下出血 朝倉未来の責任は [279254606]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★6
- お前らこんな気分で明日仕事行ける?
