シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
301デフォルトの名無しさん
2020/09/18(金) 22:00:45.75ID:JMG0ZHyH 読んだよ?だから聞いてるんだけど
302デフォルトの名無しさん
2020/09/19(土) 14:52:56.70ID:Uw1s41Nc シェルって普通に「副作用」があるコマンドが使われてるよね
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。
mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。
mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
303デフォルトの名無しさん
2020/09/19(土) 16:37:30.78ID:1l7cqS+f 今なら、プロセス置換やcoprocを使えば、テンポラリファイルなしにできることも少なくなさそう。
304デフォルトの名無しさん
2020/09/19(土) 17:20:44.75ID:Uw1s41Nc305デフォルトの名無しさん
2020/09/19(土) 17:25:16.15ID:VJFBPJzE 標準エラー出力を画面にそのまま表示し、同時にパイプで繋いだ先にも標準出力として出力する方法ってありませんか?
色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
306デフォルトの名無しさん
2020/09/19(土) 19:23:52.66ID:1l7cqS+f307デフォルトの名無しさん
2020/09/19(土) 19:45:10.10ID:okNEuTuK308デフォルトの名無しさん
2020/09/19(土) 19:51:41.55ID:okNEuTuK 副作用がまったくないのは"純粋"関数型言語
純粋じゃない関数型言語は副作用を許容する
そして関数型スタイルという言い方なら
別に関数型言語である必要はない
https://docs.python.org/ja/3.6/howto/functional.html
> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
純粋じゃない関数型言語は副作用を許容する
そして関数型スタイルという言い方なら
別に関数型言語である必要はない
https://docs.python.org/ja/3.6/howto/functional.html
> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
309デフォルトの名無しさん
2020/09/19(土) 20:15:47.31ID:9OWUS6ol 初心者のうろ覚えですが、モナドというのは関係ない?
310デフォルトの名無しさん
2020/09/19(土) 20:37:42.24ID:Uw1s41Nc >>307
え,ファイル作成って副作用としてしか表現できないと思ってんの?
え,ファイル作成って副作用としてしか表現できないと思ってんの?
311デフォルトの名無しさん
2020/09/19(土) 20:41:20.32ID:okNEuTuK シェルスクリプトのファイル作成もモナドですねー
312デフォルトの名無しさん
2020/09/19(土) 20:46:22.01ID:okNEuTuK https://qastack.jp/software/369770/do-functional-programming-languages-disallow-side-effects
その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
313デフォルトの名無しさん
2020/09/19(土) 20:50:25.87ID:okNEuTuK 常識で考えればわかるだろうに、関数型言語でファイルの作成ができるならそれは副作用でしか無いんだよ。
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い
知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い
知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
314デフォルトの名無しさん
2020/09/19(土) 21:22:03.60ID:L0h6VTd7 >>305
scriptで実行してからtypescriptをgrepすれば?
scriptで実行してからtypescriptをgrepすれば?
315デフォルトの名無しさん
2020/09/19(土) 21:28:34.09ID:MdHTO1xD また延々と恥さらしなレスがはじまった
>>304は責任取って
>>304は責任取って
316デフォルトの名無しさん
2020/09/19(土) 21:42:31.36ID:YcZMzNxL ステートレスなパイプでの受け渡しをする様が関数型的という表現に同意しない訳ではないが、関数が第一級オブジェクトじゃないので関数型言語ではないです
evalで取り扱うのはあくまで文字列です
まぁこれ以外にもないない尽くしだしその一点のみで関数型言語だと主張するのは無理があると思うよ
副作用云々に関しては副作用を明示する事を大事にする関数型言語が純粋関数型言語としてあるよねくらいで終わり
evalで取り扱うのはあくまで文字列です
まぁこれ以外にもないない尽くしだしその一点のみで関数型言語だと主張するのは無理があると思うよ
副作用云々に関しては副作用を明示する事を大事にする関数型言語が純粋関数型言語としてあるよねくらいで終わり
317デフォルトの名無しさん
2020/09/19(土) 21:45:34.72ID:Uw1s41Nc >>316
同意。
同意。
318デフォルトの名無しさん
2020/09/19(土) 21:50:48.10ID:okNEuTuK319デフォルトの名無しさん
2020/09/19(土) 22:21:10.97ID:YcZMzNxL >>318
スクリプト内でコマンド列組み立てて文字列で標準出力に投げて標準入力から受け取った側がexecやevalで解釈させてってやってるなら関数型スタイルだと納得するかな
まぁスタイルってぼかされたらこれまた気持ちの問題にしかならないのでここまで
あとファイル作成をモナドとして表現することは可能だけどシェルスクリプトのファイル作成はモナドとして表現されてないからモナドじゃないよ
スクリプト内でコマンド列組み立てて文字列で標準出力に投げて標準入力から受け取った側がexecやevalで解釈させてってやってるなら関数型スタイルだと納得するかな
まぁスタイルってぼかされたらこれまた気持ちの問題にしかならないのでここまで
あとファイル作成をモナドとして表現することは可能だけどシェルスクリプトのファイル作成はモナドとして表現されてないからモナドじゃないよ
320デフォルトの名無しさん
2020/09/19(土) 22:42:01.76ID:1l7cqS+f321デフォルトの名無しさん
2020/09/19(土) 22:50:47.80ID:VJFBPJzE322デフォルトの名無しさん
2020/09/19(土) 23:02:36.62ID:okNEuTuK323デフォルトの名無しさん
2020/09/19(土) 23:10:17.14ID:kGktsB/f 「なんちゃって関数型風味」を「関数型スタイル」て呼ぶなや
そんなん言い出したらなんでもありやぞ
Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
そんなん言い出したらなんでもありやぞ
Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
324デフォルトの名無しさん
2020/09/19(土) 23:11:45.95ID:kGktsB/f 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
325デフォルトの名無しさん
2020/09/19(土) 23:43:29.10ID:okNEuTuK > Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
何も問題ないのでは?w
> 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
何も問題ないのでは?w
何も問題ないのでは?w
> 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
何も問題ないのでは?w
326デフォルトの名無しさん
2020/09/19(土) 23:44:13.39ID:okNEuTuK C言語はオブジェクト指向言語ではないが
工夫することでオブジェクト指向スタイルのプログラミングが可能
この文章は別にどこもおかしくないしなぁ
工夫することでオブジェクト指向スタイルのプログラミングが可能
この文章は別にどこもおかしくないしなぁ
327デフォルトの名無しさん
2020/09/19(土) 23:53:41.32ID:1l7cqS+f328デフォルトの名無しさん
2020/09/20(日) 00:06:05.33ID:ylbIOeZ5 >>321
Windows 10, WSL, Ubuntu 18.04 の、.bashrc には、以下のように書いてある
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
Windows 10, WSL, Ubuntu 18.04 の、.bashrc には、以下のように書いてある
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
329デフォルトの名無しさん
2020/09/20(日) 00:24:20.42ID:hAWRhXL/ > 既存の用語を使ってないから、何の説明にもなってない
これに尽きる
これに尽きる
330デフォルトの名無しさん
2020/09/20(日) 00:27:06.89ID:VssaCpFN >>327
それな
ADTって言葉を知らずオブジェクト指向もよく理解してないから
なんとなくで「オブジェクト指向スタイル」って呼んじゃうんだよね
「オレオレ定義のオブジェクト指向」をスタイルという言葉でごまかしてわかったつもりになってるからタチが悪い
それな
ADTって言葉を知らずオブジェクト指向もよく理解してないから
なんとなくで「オブジェクト指向スタイル」って呼んじゃうんだよね
「オレオレ定義のオブジェクト指向」をスタイルという言葉でごまかしてわかったつもりになってるからタチが悪い
331デフォルトの名無しさん
2020/09/20(日) 00:29:04.06ID:Gp2XD0lD じゃあ、C言語でオブジェクト指向スタイルで設計してる時
それを他の人になんて説明するのさ?
C言語でオブジェクト指向っぽい設計にしていますっていうの?
言い方を変えただけじゃんw
それを他の人になんて説明するのさ?
C言語でオブジェクト指向っぽい設計にしていますっていうの?
言い方を変えただけじゃんw
332デフォルトの名無しさん
2020/09/20(日) 00:38:19.98ID:0m+KJQOi ファイルやディレクトリみたいな外部状態に依存するものはステートフル?
常駐型のサーバープロセスとかネットワークプロトコルに使う用語なのでシェルスクリプトに対してステートレスって言うのは少し違和感ある
常駐型のサーバープロセスとかネットワークプロトコルに使う用語なのでシェルスクリプトに対してステートレスって言うのは少し違和感ある
333デフォルトの名無しさん
2020/09/20(日) 00:39:02.21ID:mlVvoUwY >>331
ADTとは違うの?
ADTとは違うの?
334デフォルトの名無しさん
2020/09/20(日) 00:55:42.03ID:8zr1eESi335デフォルトの名無しさん
2020/09/20(日) 01:20:17.18ID:Gp2XD0lD パイプラインじゃなくてストリーミング処理と言ったほうが良いな
.NETでいえばLINQだ。LINQも関数型と言われてるな。
.NETでいえばLINQだ。LINQも関数型と言われてるな。
336デフォルトの名無しさん
2020/09/20(日) 01:21:00.25ID:I6IOvHiB ステートレスなバッチプログラムと、スステートフルなバッチプログラムって言われても違和感ない?
元記事読み返したがステートレスの使い方が定まってなくていい加減
元記事読み返したがステートレスの使い方が定まってなくていい加減
337デフォルトの名無しさん
2020/09/20(日) 01:44:09.20ID:W0vzNZm6 >>312
機械翻訳クソサイトを貼るな
機械翻訳クソサイトを貼るな
338デフォルトの名無しさん
2020/09/20(日) 02:00:41.31ID:Gp2XD0lD >>337
元の英語を読めばいいと思いますよ(笑)
元の英語を読めばいいと思いますよ(笑)
339デフォルトの名無しさん
2020/09/20(日) 02:10:49.86ID:8zr1eESi340デフォルトの名無しさん
2020/09/20(日) 02:17:23.54ID:8zr1eESi341デフォルトの名無しさん
2020/09/20(日) 02:56:29.74ID:Gp2XD0lD > LINQの関数型的要素は、高階関数なところやろ。
シェルスクリプトの関数型的要素は、コマンドを高階関数として使うところやろ
パイプラインを複数つなげられるところではない。
シェルスクリプトの関数型的要素は、コマンドを高階関数として使うところやろ
パイプラインを複数つなげられるところではない。
342デフォルトの名無しさん
2020/09/20(日) 03:59:49.76ID:0cFAZqtZ まだやってるのか、グルー言語だろに
本来もだしほとんどの場合も。コマンドを高級関数だって。なんかPOSIXな人は言語として扱ってるような感じだが。だがawkが主だったりしたり
パイプラインもストリームの一つだろうに、開く閉じる書く読むをほとんど意識しないからパイプラインの方が適切かなあ
変なとこの自説をぶってるなあ
本来もだしほとんどの場合も。コマンドを高級関数だって。なんかPOSIXな人は言語として扱ってるような感じだが。だがawkが主だったりしたり
パイプラインもストリームの一つだろうに、開く閉じる書く読むをほとんど意識しないからパイプラインの方が適切かなあ
変なとこの自説をぶってるなあ
343デフォルトの名無しさん
2020/09/20(日) 05:50:15.33ID:md9GHmZV グルー言語だったら、その他は何にも当てはまらないとでも言うつもりだろうか?
グルー言語 かつ 関数型スタイルの言語ってだけだろ
グルー言語 かつ 関数型スタイルの言語ってだけだろ
344デフォルトの名無しさん
2020/09/20(日) 05:51:02.56ID:md9GHmZV > パイプラインもストリームの一つだろうに
変なとこの自説をぶってるなあ(笑)
関数型スタイルでいいだろ
パイプラインだーって自説をぶるなよ(笑)
変なとこの自説をぶってるなあ(笑)
関数型スタイルでいいだろ
パイプラインだーって自説をぶるなよ(笑)
345デフォルトの名無しさん
2020/09/20(日) 07:53:20.99ID:qcN7Nyvi 関数型スタイルという表現すらも自説のぶん回しだと気づいていらっしゃらない……?
コマンドが高階関数なら >>319 にあるように受け取ったコマンド列文字列を適用するとかそういう扱い方をすることになるんだけど本当に意味分かってて使ってる?
もし本当なら書いてるシェルスクリプトなり任意の関数型言語のコードを見てみたいものだ
コマンドが高階関数なら >>319 にあるように受け取ったコマンド列文字列を適用するとかそういう扱い方をすることになるんだけど本当に意味分かってて使ってる?
もし本当なら書いてるシェルスクリプトなり任意の関数型言語のコードを見てみたいものだ
346デフォルトの名無しさん
2020/09/20(日) 07:55:14.75ID:gYz9ZwfZ347デフォルトの名無しさん
2020/09/20(日) 08:01:49.26ID:1uipuJDZ ろくろ回し好きそう
348デフォルトの名無しさん
2020/09/20(日) 08:39:31.58ID:OYShpTRx ストリーミング君はいろいろ詳しくは知らない漠然とした知識と他は妄想からの思い込みで言っているだけだな
初歩的なコンピュータサイエンスの知識さえ怪しい。端々にポロポロ出てるのに自覚ないからな
初歩的なコンピュータサイエンスの知識さえ怪しい。端々にポロポロ出てるのに自覚ないからな
349デフォルトの名無しさん
2020/09/20(日) 09:14:06.85ID:I6IOvHiB 高階関数すら理解してなかったかぁ
>もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提
それでよくこんなこと言えたねぇ
シェルスクリプトのスタイルは関数型ww
大前提www
>もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提
それでよくこんなこと言えたねぇ
シェルスクリプトのスタイルは関数型ww
大前提www
350デフォルトの名無しさん
2020/09/20(日) 11:23:53.54ID:55J7R452351デフォルトの名無しさん
2020/09/20(日) 11:24:41.19ID:55J7R452352デフォルトの名無しさん
2020/09/20(日) 11:25:23.93ID:55J7R452 自説のぶん回しにたいして、自説のぶん回しを持ってきても何の反論にもなってないし
反論せずに、wwwだけ並べても反論にはならない
反論せずに、wwwだけ並べても反論にはならない
353デフォルトの名無しさん
2020/09/20(日) 11:57:32.48ID:qcN7Nyvi354デフォルトの名無しさん
2020/09/20(日) 12:03:08.73ID:55J7R452 これが結論
https://qiita.com/piroor/items/77233173707a0baa6360
ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14
そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。
14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
https://qiita.com/piroor/items/77233173707a0baa6360
ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14
そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。
14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
355デフォルトの名無しさん
2020/09/20(日) 12:43:51.66ID:8zr1eESi356デフォルトの名無しさん
2020/09/20(日) 12:53:30.22ID:55J7R452357デフォルトの名無しさん
2020/09/20(日) 13:59:08.57ID:5WkIzV16 >シェルスクリプトに適しているのは〜 フィルタ的な働きが求められる種類の仕事にも適しています
ってあるじゃん、そもそもそういうものでしかなく(それを実現してるのはパイプ=シンプルなプロセス間通信というUNIXらしいシことで実現)、関数型言語として作られてもいないし発展も変化もしてない
シェルスクリプトに適しているのはフィルタ以外のは単なるジョブらしいぞ
似てる部分があるだけで関数型とするのは無理がありすぎ
単にフィルタの段々ができるってだけでいいのに、なんで関数型と言いたいのか
今までのコメからはなんかそれで一人悦に入りたいらしいけど目的がわからんな
ってあるじゃん、そもそもそういうものでしかなく(それを実現してるのはパイプ=シンプルなプロセス間通信というUNIXらしいシことで実現)、関数型言語として作られてもいないし発展も変化もしてない
シェルスクリプトに適しているのはフィルタ以外のは単なるジョブらしいぞ
似てる部分があるだけで関数型とするのは無理がありすぎ
単にフィルタの段々ができるってだけでいいのに、なんで関数型と言いたいのか
今までのコメからはなんかそれで一人悦に入りたいらしいけど目的がわからんな
358デフォルトの名無しさん
2020/09/20(日) 14:30:46.33ID:V1UjDwA2 >>357
>なんで関数型と言いたいの
これは自分が使ってる道具が古臭くないぞ、最近流行してる機能を昔から実現してるんだぞと主張することで
自分自身が古臭い老害じゃないぞ、新しい技術だって知ってるんだぞ、優秀なんだぞと暗に主張したいから
老害多めのレガシーな言語スレでよく見られる現象
>なんで関数型と言いたいの
これは自分が使ってる道具が古臭くないぞ、最近流行してる機能を昔から実現してるんだぞと主張することで
自分自身が古臭い老害じゃないぞ、新しい技術だって知ってるんだぞ、優秀なんだぞと暗に主張したいから
老害多めのレガシーな言語スレでよく見られる現象
359デフォルトの名無しさん
2020/09/20(日) 14:36:18.77ID:55J7R452 >>357
> 関数型言語として作られてもいないし
まーた「関数型言語」って妄想してる
だーれもシェルスクリプトが「関数型言語」なんていってない
「関数型スタイル」って言ってんの
何回言えばお前が戦ってる相手が
お前の妄想の中の架空の人物だって理解すんの?
> 関数型言語として作られてもいないし
まーた「関数型言語」って妄想してる
だーれもシェルスクリプトが「関数型言語」なんていってない
「関数型スタイル」って言ってんの
何回言えばお前が戦ってる相手が
お前の妄想の中の架空の人物だって理解すんの?
360デフォルトの名無しさん
2020/09/20(日) 14:36:32.46ID:5WkIzV16 シングルタスク、プログラムを一つ起動して終わって次なしかできない環境では、
command1 > foo.txt
command2 < foo.txt > bar.txt
command3 < bar.txt > foo.txt
command4 < foo.txt
とか、一時ファイルに逐次書いて読んでだろうが。もちろん、面倒くさがりが多いこの業界ではこんなのやってられない繋げてしまえと思うのはいたって普通
関数型なんて関係ない、ただそれだけだろな
前プロセスの標準出力を次(フィルタ)プロセスの標準入力に繋げるというシンプルな仕組みだからスクリプト内でも他の形態でも使えるが、ベースは同じ
確かMS-DOSはパイプもどきを実現してるが(一時ファイルに書き出してって上記のを逐一ってのを実際はやって実現してたはず)、
表記的表記的には同じようにステートレスとやらになるが MS-DOS batch fileも関数型の親戚か?
>>358
そうはっきり言わなくてもw
そんなの透けて見えてるけど、自問させてみようかなと
逆に全然優秀に見えないのはなんでだろうなあ
command1 > foo.txt
command2 < foo.txt > bar.txt
command3 < bar.txt > foo.txt
command4 < foo.txt
とか、一時ファイルに逐次書いて読んでだろうが。もちろん、面倒くさがりが多いこの業界ではこんなのやってられない繋げてしまえと思うのはいたって普通
関数型なんて関係ない、ただそれだけだろな
前プロセスの標準出力を次(フィルタ)プロセスの標準入力に繋げるというシンプルな仕組みだからスクリプト内でも他の形態でも使えるが、ベースは同じ
確かMS-DOSはパイプもどきを実現してるが(一時ファイルに書き出してって上記のを逐一ってのを実際はやって実現してたはず)、
表記的表記的には同じようにステートレスとやらになるが MS-DOS batch fileも関数型の親戚か?
>>358
そうはっきり言わなくてもw
そんなの透けて見えてるけど、自問させてみようかなと
逆に全然優秀に見えないのはなんでだろうなあ
361デフォルトの名無しさん
2020/09/20(日) 14:37:24.66ID:55J7R452362デフォルトの名無しさん
2020/09/20(日) 14:38:40.31ID:5WkIzV16363デフォルトの名無しさん
2020/09/20(日) 14:41:37.03ID:5WkIzV16364デフォルトの名無しさん
2020/09/20(日) 14:41:52.86ID:55J7R452 ふむ。あってるよな
https://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E
最初の関数型言語といわれてるLISPは1958年、Haskellは1990年
https://en.wikipedia.org/wiki/Bourne_shell
Bourne shellは1976年、POSIX shellはksh88として1988年
関数型が新しい技術???
https://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E
最初の関数型言語といわれてるLISPは1958年、Haskellは1990年
https://en.wikipedia.org/wiki/Bourne_shell
Bourne shellは1976年、POSIX shellはksh88として1988年
関数型が新しい技術???
365デフォルトの名無しさん
2020/09/20(日) 14:42:43.83ID:55J7R452 >>363
お前は世間のブームが基準なのかよw
お前は世間のブームが基準なのかよw
366デフォルトの名無しさん
2020/09/20(日) 14:47:03.43ID:5WkIzV16 自分であんなサイトを自慢げに貼って何を言っているのかな?
そんな古く周知されてるなら、あんなサイトを持ち出さなくてもいいし、一人延々と自説を唱えることはないわな
表記的表記的には同じようにステートレスとやらになるが MS-DOS batch fileも関数型の親戚か?
で結論は出ているから、もうおしまい
そんな古く周知されてるなら、あんなサイトを持ち出さなくてもいいし、一人延々と自説を唱えることはないわな
表記的表記的には同じようにステートレスとやらになるが MS-DOS batch fileも関数型の親戚か?
で結論は出ているから、もうおしまい
367デフォルトの名無しさん
2020/09/20(日) 14:47:47.68ID:55J7R452 自分であんなサイトを自慢げってなんのこと?w
ググって出てきたものを貼ってるだけなんだけど
記事の内容じゃなくて、サイトを批判してるようじゃぁ
説得力ゼロですなぁ
ググって出てきたものを貼ってるだけなんだけど
記事の内容じゃなくて、サイトを批判してるようじゃぁ
説得力ゼロですなぁ
368デフォルトの名無しさん
2020/09/20(日) 14:51:24.36ID:55J7R452 >>366
> MS-DOS batch fileも関数型の親戚か?
ぜんぜん違う
コマンドを実行してみりゃわかることだがWindowsのコマンドは対話型
実行したら「○○を処理しました。」とか標準出力に表示されたりして
ストリーミング処理できるように設計されていない
もちろん並列処理が行われないなどという点もあるがそれ以前の問題
お前はパイプラインの有無で判断しているからバッチファイルも同じだと
考えているようだが、パイプラインは関係ないと最初から言っている
> MS-DOS batch fileも関数型の親戚か?
ぜんぜん違う
コマンドを実行してみりゃわかることだがWindowsのコマンドは対話型
実行したら「○○を処理しました。」とか標準出力に表示されたりして
ストリーミング処理できるように設計されていない
もちろん並列処理が行われないなどという点もあるがそれ以前の問題
お前はパイプラインの有無で判断しているからバッチファイルも同じだと
考えているようだが、パイプラインは関係ないと最初から言っている
369デフォルトの名無しさん
2020/09/20(日) 14:56:03.76ID:5WkIzV16370デフォルトの名無しさん
2020/09/20(日) 14:59:06.57ID:55J7R452 > あなたがシェルスクリプトを関数型と根拠にしたのはパイプで繋げるだからな
別の人と勘違いしてるねw
パイプラインとか言い出したのはこいつ(>>285)
> シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
別の人と勘違いしてるねw
パイプラインとか言い出したのはこいつ(>>285)
> シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
371デフォルトの名無しさん
2020/09/20(日) 15:00:06.11ID:55J7R452 重要なのはパイプラインではなく、ストリーミングであるという所だ。
つまり1行1データになってないといけない
MS-DOSはそうなってないので全く的外れ
つまり1行1データになってないといけない
MS-DOSはそうなってないので全く的外れ
372デフォルトの名無しさん
2020/09/20(日) 15:10:50.29ID:5WkIzV16 >>354 って自分で書いたくせに何をおっしゃってるのだが
まさかググっただけ中はよく読んでない、都合の良さげの文があったのでというのか?
ちゃんと自分で改めてあのサイトの内容を見てから言いなさいな、まさしくパイプで繋げることしか書いてないから=それが関数型に似てるだけだから
なんだか知らんが俺が決める仕様なのか、関数型とやらは。誰も納得しないだろうな、その俺が決める仕様なら
まさかググっただけ中はよく読んでない、都合の良さげの文があったのでというのか?
ちゃんと自分で改めてあのサイトの内容を見てから言いなさいな、まさしくパイプで繋げることしか書いてないから=それが関数型に似てるだけだから
なんだか知らんが俺が決める仕様なのか、関数型とやらは。誰も納得しないだろうな、その俺が決める仕様なら
373デフォルトの名無しさん
2020/09/20(日) 15:29:06.24ID:55J7R452 > >>354 って自分で書いたくせに何をおっしゃってるのだが
354にはパイプラインなんて出てきてませんねぇw
> ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
> 「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
> 関数型言語にも見られる特徴です。14
354にはパイプラインなんて出てきてませんねぇw
> ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
> 「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
> 関数型言語にも見られる特徴です。14
374デフォルトの名無しさん
2020/09/20(日) 15:30:01.00ID:55J7R452 なんつーか、設計方針を理解してないみたいだな
「パイプ」があれば、設計が同じだと思ってしまう
その程度の理解力なんでしょうね
「パイプ」があれば、設計が同じだと思ってしまう
その程度の理解力なんでしょうね
375デフォルトの名無しさん
2020/09/20(日) 15:38:04.31ID:5WkIzV16 自分では「パイプ」とは書いてない、抽出した先で抽出した文がパイプだけのことをを指してあっても、自分は書いてないからかあ
どういう思考してるのか理解できないな
>>374
ますます自分の都合の良い捻じ曲げ方してますねえ
自分で抽出した先でそのことだけを言及して、それを自分で開陳してるなら、抽出した先でパイプで繋げることしかなら同じだろうという、いたって単純な結論になるのは当たり前
しかも「これが結論」って自分で書いてらっしゃるんですけど
ちなみに、よく読めばわかるだろうと思うのだが、あれを書いた人もそんな設計方針が必要なほどのことはシェルスクリプトで書かないよ、そう書いてあるでしょう
どういう思考してるのか理解できないな
>>374
ますます自分の都合の良い捻じ曲げ方してますねえ
自分で抽出した先でそのことだけを言及して、それを自分で開陳してるなら、抽出した先でパイプで繋げることしかなら同じだろうという、いたって単純な結論になるのは当たり前
しかも「これが結論」って自分で書いてらっしゃるんですけど
ちなみに、よく読めばわかるだろうと思うのだが、あれを書いた人もそんな設計方針が必要なほどのことはシェルスクリプトで書かないよ、そう書いてあるでしょう
376デフォルトの名無しさん
2020/09/20(日) 16:04:51.92ID:8zr1eESi ストリーミンガーには、まず「関数型スタイル」というものをあきらかにしてほしい。今さらだけど。
ところで、あのWebページのひと、なんかかわいそう。。。
シェルスクリプトには関数型的な特徴がある、ふつうのスクリプト言語とはちょっと違うような、と言っただけなのに、針小棒大にネタにされて。
ところで、あのWebページのひと、なんかかわいそう。。。
シェルスクリプトには関数型的な特徴がある、ふつうのスクリプト言語とはちょっと違うような、と言っただけなのに、針小棒大にネタにされて。
377デフォルトの名無しさん
2020/09/20(日) 17:23:12.71ID:55J7R452 > 抽出した先で抽出した文がパイプだけのことをを指してあっても
ストリーミングと書いてますが?
ストリーミングと書いてますが?
378デフォルトの名無しさん
2020/09/20(日) 17:24:34.33ID:55J7R452 シェルスクリプトには関数型的な特徴がある、
シェルスクリプトには関数型スタイルである、
同じことを言ってますねw
シェルスクリプトには関数型スタイルである、
同じことを言ってますねw
379デフォルトの名無しさん
2020/09/20(日) 18:33:36.30ID:8zr1eESi >>378
なるほど、話が通じない理由がわかった。
それが同じことだと本当に思っているなら、コンピュータのこと以前に、まず国語を勉強する必要がある。
たまたま似た特徴があるとしても、全体がかなり違っていれば、ふつうは同じものと見なさない。
「スタイル」という言葉は、一部に似た特徴がある程度のものを統合しない。
なるほど、話が通じない理由がわかった。
それが同じことだと本当に思っているなら、コンピュータのこと以前に、まず国語を勉強する必要がある。
たまたま似た特徴があるとしても、全体がかなり違っていれば、ふつうは同じものと見なさない。
「スタイル」という言葉は、一部に似た特徴がある程度のものを統合しない。
380デフォルトの名無しさん
2020/09/20(日) 18:47:56.61ID:55J7R452 > 「スタイル」という言葉は、一部に似た特徴がある程度のものを統合しない。
それはどこの誰の定義ですか?
https://docs.python.org/ja/3/howto/functional.html
この文書では、関数型スタイルでプログラムを実装するのにピッタリな Python の機能を見てまわることにしましょう。
関数型スタイルにおいては、内部状態を変えてしまったり、返り値に現れない変更をしたりといった副作用のある関数はやめるように言われています。
関数型スタイルで書いた Python プログラムはふつう、I/O や代入を完全になくすといった極端なところまでは行かずに、
関数型っぽく見えるインタフェースを提供しつつも内部では非関数型の機能を使います。
まずは関数型スタイルのプログラムを書く際の基礎となる重要な Python 機能から見ていきましょう: イテレータです。
これらの章内の多くのデザインアプローチは関数スタイルな Python コードにも適用できます。
それはどこの誰の定義ですか?
https://docs.python.org/ja/3/howto/functional.html
この文書では、関数型スタイルでプログラムを実装するのにピッタリな Python の機能を見てまわることにしましょう。
関数型スタイルにおいては、内部状態を変えてしまったり、返り値に現れない変更をしたりといった副作用のある関数はやめるように言われています。
関数型スタイルで書いた Python プログラムはふつう、I/O や代入を完全になくすといった極端なところまでは行かずに、
関数型っぽく見えるインタフェースを提供しつつも内部では非関数型の機能を使います。
まずは関数型スタイルのプログラムを書く際の基礎となる重要な Python 機能から見ていきましょう: イテレータです。
これらの章内の多くのデザインアプローチは関数スタイルな Python コードにも適用できます。
381デフォルトの名無しさん
2020/09/20(日) 19:17:05.28ID:77Xtdks6 こいつって前からいるけど致命的に日本語を読めないな
382デフォルトの名無しさん
2020/09/20(日) 19:28:01.14ID:55J7R452 とまあ、こういうふうに悪口しか言えないわけでw
383デフォルトの名無しさん
2020/09/20(日) 19:36:37.16ID:77Xtdks6 今までので何も読めてないのは確かだな。誰もお前と話が通じてないからな
>>380も読めてないお前にしか見えない何かがお前にだけ見えるだけ
>>380も読めてないお前にしか見えない何かがお前にだけ見えるだけ
384デフォルトの名無しさん
2020/09/20(日) 19:41:15.67ID:8zr1eESi >>380
その引用文はどこもおかしくない。
だが、おまえの話はおかしい。
全然関係ない文をもってくるな。
あのね、たとえ話をするね。
カタコトの日本語をしゃべる人がいたとしても、その人が日本人かどうかはわからないのね。
まったく別のところから、きれいな日本語をしゃべる人を連れてきたとしても、カタコトの日本語をしゃべる人とはあくまで他人なので、なにかがわかるわけではないのね。
そして、きれいな日本語をしゃべる人も、結局、日本人かどうかはわからないのね。
要するに、しっかり理屈でしゃべれ!
その引用文はどこもおかしくない。
だが、おまえの話はおかしい。
全然関係ない文をもってくるな。
あのね、たとえ話をするね。
カタコトの日本語をしゃべる人がいたとしても、その人が日本人かどうかはわからないのね。
まったく別のところから、きれいな日本語をしゃべる人を連れてきたとしても、カタコトの日本語をしゃべる人とはあくまで他人なので、なにかがわかるわけではないのね。
そして、きれいな日本語をしゃべる人も、結局、日本人かどうかはわからないのね。
要するに、しっかり理屈でしゃべれ!
385デフォルトの名無しさん
2020/09/20(日) 20:50:37.14ID:55J7R452 おや?またシェルスクリプトとは関係ない話で終りですか?(笑)
内容に対してのコメントはないのに、レスだけはしたいんですね。
内容に対してのコメントはないのに、レスだけはしたいんですね。
386デフォルトの名無しさん
2020/09/20(日) 21:11:26.77ID:i6/MN77q コミュニケーションに問題があるということを言うことは
コミュニケーションの場で言うことには何も問題ではない
内容以前の話。内容が無茶振りな理屈でこいつの頭の中でしか通らないからな
そしてすぐにくだらない言い逃れに走るしなw
コミュニケーションの場で言うことには何も問題ではない
内容以前の話。内容が無茶振りな理屈でこいつの頭の中でしか通らないからな
そしてすぐにくだらない言い逃れに走るしなw
387デフォルトの名無しさん
2020/09/20(日) 21:34:50.84ID:qcN7Nyvi ここが匿名の場なので仕方ないんだけど、シェルスクリプトのファイル作成はモナドって言う人やコマンドは高階関数って言う人が、シェルスクリプトは関数型ないし関数型スタイルだと言いがち(だし他には散々レスがなされているのに、そこの指摘に対して何の反論もなく、意図的にスルーしていると言われても仕方がないような立ち回りをしている)ので信用が得られていないというのはあるかもね
認めようとさせるなら、例えば「awkやsedの文字列でコマンドを渡すのが無名リテラルとしてのラムダ式に相当してる」とか、「while readによる標準入力受け取りイディオムによってスクリプトがfunctor/mappableになるのだ」とか言いくるめないと
認めようとさせるなら、例えば「awkやsedの文字列でコマンドを渡すのが無名リテラルとしてのラムダ式に相当してる」とか、「while readによる標準入力受け取りイディオムによってスクリプトがfunctor/mappableになるのだ」とか言いくるめないと
388デフォルトの名無しさん
2020/09/20(日) 21:38:30.85ID:8zr1eESi389デフォルトの名無しさん
2020/09/20(日) 21:48:53.60ID:55J7R452 だから意味不明な理由を言えばいいだろw
言い訳ばっかりだな
言い訳ばっかりだな
390デフォルトの名無しさん
2020/09/20(日) 22:04:58.48ID:GOdQy7G8 そろそろ次スレ立てましょうか?
391デフォルトの名無しさん
2020/09/20(日) 22:41:23.61ID:8zr1eESi392デフォルトの名無しさん
2020/09/20(日) 22:50:20.84ID:55J7R452 はいまたシェルスクリプトと関係ないレスをしました
393デフォルトの名無しさん
2020/09/20(日) 23:41:44.50ID:8zr1eESi394デフォルトの名無しさん
2020/09/21(月) 08:20:34.71ID:0WrTUa3Q もう少し推敲しなよお客さん
395デフォルトの名無しさん
2020/09/21(月) 11:57:46.54ID:249hXDDO >>394
シェルスクリプトと関係ないレス。w
シェルスクリプトと関係ないレス。w
396デフォルトの名無しさん
2020/09/21(月) 19:00:59.34ID:OB+sYWJW あの〜。なんでみなさん「個人の感性」を根拠にできるんですかね。
この世界では学者はそんなに重要じゃないのかな。
そんなことないと思うけど……。
この世界では学者はそんなに重要じゃないのかな。
そんなことないと思うけど……。
397デフォルトの名無しさん
2020/09/21(月) 19:36:50.17ID:dSuXtJgv 個人の感性以上でも以下でもない話題だからじゃないですかね
398デフォルトの名無しさん
2020/09/21(月) 19:55:48.18ID:GxzcHgtD 個人の感性ですかねぇ?
シェルスクリプトはreturnで数字以外返せない。返すには標準出力を使う。
つまり a=$(hoge) とか hoge | other_command とかするしか無い。
そうすると前者はサブシェルになるから変数、つまり状態を書き換えられない。
正確には書き換えられるけど破棄される。後者もサブシェルだから同様。
前者はストリーミング処理ではないが、大量のデータを扱う場合は遅くなるので推奨されない
しかしこれを改善するつもりはないだろう。なぜなら大量のデータを扱う場合は後者の書き方を使えばいいからだ。
後者の書き方は関数型が得意とするストリーミング処理。
シェルスクリプトで遅くならない書き方をすると自然とストリーミング処理になり
変数が書き換わることもない。そしてパイプラインは並列処理が行われる。
ここも並列処理が得意な関数型の特徴と似ている。
これらの事実はシェルスクリプトが関数型として設計されているとみなすには十分な理由だろう。
シェルスクリプトはreturnで数字以外返せない。返すには標準出力を使う。
つまり a=$(hoge) とか hoge | other_command とかするしか無い。
そうすると前者はサブシェルになるから変数、つまり状態を書き換えられない。
正確には書き換えられるけど破棄される。後者もサブシェルだから同様。
前者はストリーミング処理ではないが、大量のデータを扱う場合は遅くなるので推奨されない
しかしこれを改善するつもりはないだろう。なぜなら大量のデータを扱う場合は後者の書き方を使えばいいからだ。
後者の書き方は関数型が得意とするストリーミング処理。
シェルスクリプトで遅くならない書き方をすると自然とストリーミング処理になり
変数が書き換わることもない。そしてパイプラインは並列処理が行われる。
ここも並列処理が得意な関数型の特徴と似ている。
これらの事実はシェルスクリプトが関数型として設計されているとみなすには十分な理由だろう。
399デフォルトの名無しさん
2020/09/21(月) 20:28:55.67ID:249hXDDO400デフォルトの名無しさん
2020/09/21(月) 20:43:06.20ID:GxzcHgtD な?ちゃんと書いた所でまともな反論が返ってこないんだもんな。
自分で「シェルスクリプトと関係ないレス。w」と言っておきながら
それをすぐ自分でやっちゃうわけだ。
そういうことを自分がしているという自覚がない証拠。
自分で「シェルスクリプトと関係ないレス。w」と言っておきながら
それをすぐ自分でやっちゃうわけだ。
そういうことを自分がしているという自覚がない証拠。
401デフォルトの名無しさん
2020/09/21(月) 20:54:42.96ID:249hXDDO■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実 [七波羅探題★]
- カードじゃなくて「紙」が活躍中…健康保険の「資格確認書」 大きすぎて困惑する人も [蚤の市★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★9 [ぐれ★]
- 「5人が抱き合う遺体発見」香港高層火災、150人安否不明 警察はボランティア警戒 [蚤の市★]
- 【野球】菅野智之 WBC出場熱望 取り戻したい8年前の“忘れ物” 36歳全力「ラストチャンス」 現在はFA「無職」 [ぐれ★]
- ガザの死者7万人超える 停戦後も止まらないイスラエル軍の攻撃 [蚤の市★]
- 公務員、町の関連団体の口座から570万円横領して懲戒免職。「FXにつぎ込みました。マイナスで、サラ金に借りたけど足りなくて」 [389326466]
- ミュージシャン「こんなバカが国のトップなの」→「馬鹿と言ったのは稚拙だった。中国政府を擁護する意図はない」と釈明 [313077826]
- デブってたのに急に痩せ始めてワロタwwwwww
- 日本人の世論「中国で商売してるおまえが悪い」 イベント中止ミュージシャンに対する意見が形成される [279254606]
- 🏡
- トリッカルもちもちほっぺ大作戦やろうぜ
