シェルスクリプト総合 その34

■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
2020/09/17(木) 14:32:58.85ID:+vk10SUH
> パイプでつなぐスタイルとでも書いとけば恥かかずに済んだのにね
パイプ以外も関数型にみ見られる特徴があるので
関数型スタイルでいいだろw
2020/09/17(木) 15:23:37.29ID:d9Y9RH6u
>>283
ダメ。
関数型は、結果を呼び出し側に戻すことに意義がある。
処理の流れも記述の形式も、むしろ何も似ていない。
もとの文で「特徴」と言っているが、カテゴリの基準にしていい意味ではない。

シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
2020/09/17(木) 16:19:03.20ID:kAbaS/2M
> 関数型は、結果を呼び出し側に戻すことに意義がある。

結果を呼び出し側に戻すなんて、どの言語でも同じじゃん
正しく説明することすらできない程度なら語らないようがいいよ
墓穴掘るだけだから
2020/09/17(木) 18:06:50.53ID:7lkKgDUb
その理屈で言うなら
C言語は「C言語型」だし
Elixirは「Elixir言語型」だし
F*は「F*言語型」だね。

言語使うたび,パラダイム増えるね♪
2020/09/17(木) 18:20:43.06ID:d9Y9RH6u
>>286
まともに理解することすらできない程度なんだね。w

シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
ステートレスでというほかの主張とあわせて一貫している。

うむ。
これは、たしかにわかりやすいな。
覚えておこう。
2020/09/17(木) 18:21:07.37ID:d9Y9RH6u
>>287
アホなのかな?
2020/09/17(木) 18:34:36.35ID:0NbLDZXP
>>288
> シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
> ステートレスでというほかの主張とあわせて一貫している。

まさに関数型の動作だねw

初心者でよくいるんだわ。関数を使うのが関数型だって思ってるやつ
お前がそれだな
2020/09/17(木) 19:02:35.37ID:Wtt+0SS3
シェルスクリプトは手続き型

他言語との一番の違いは処理の入力と出力が文字列に固定されていること
処理の合成を容易にした代わりに入出力に関わる部分で一般的な手続き型言語とは異なる作法が必要
その作法はプログラミングパラダイムというほど大げさなものじゃない
2020/09/17(木) 19:31:27.99ID:d9Y9RH6u
>>290
アホには通じなかったか。。。
まあ、そんでええんちゃう。w
2020/09/17(木) 21:33:54.93ID:0NbLDZXP
言い返せないでおしまい
2020/09/17(木) 22:32:05.15ID:d9Y9RH6u
>>293
理解力が足りへんもん。w
ワイはおまえの先生やないからな。
しゃあない。
2020/09/17(木) 22:33:18.53ID:0NbLDZXP
>>294
俺に説明しろって言ってないよ
他の人にわかるように説明しろと言ってる
それがないから、他の人はお前のことを○○だと思う
2020/09/17(木) 23:57:34.63ID:7k+fww17
https://wiki-dev.bash-hackers.org/syntax/basicgrammar#shell_function_definitions
$ {x}<"$x" _=${x=<(echo moo)} <&0$(cat <&"$x" >&2)
simpleとは一体
2020/09/18(金) 02:31:56.89ID:Mudt/vfl
>>295
ほかのひとてだれやねん。w
ま、アホの衆が集ったところで、知能が上がるわけやないからな。
通じひんもんは通じひん。
しゃあない。
2020/09/18(金) 04:54:45.60ID:5l49iFOd
>>296
日本語での解説
https://www.ryotosaito.com/blog/?p=366
2020/09/18(金) 21:42:27.80ID:JMG0ZHyH
pipefailってPOSIXに取り入れられるの?

https://www.mail-archive.com/dash@vger.kernel.org/msg01960.html
2020/09/18(金) 21:53:19.38ID:5l49iFOd
>>299
そこに書いてること読んだ?w
2020/09/18(金) 22:00:45.75ID:JMG0ZHyH
読んだよ?だから聞いてるんだけど
2020/09/19(土) 14:52:56.70ID:Uw1s41Nc
シェルって普通に「副作用」があるコマンドが使われてるよね
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。

mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
2020/09/19(土) 16:37:30.78ID:1l7cqS+f
今なら、プロセス置換やcoprocを使えば、テンポラリファイルなしにできることも少なくなさそう。
2020/09/19(土) 17:20:44.75ID:Uw1s41Nc
>>303
いや、たしかにそうかもしれないんだけど、
私が言いたかったのは「関数型」と名乗るには
副作用のある動作はできちゃだめなんでは
ということ。

言葉が足りず申し訳ない
2020/09/19(土) 17:25:16.15ID:VJFBPJzE
標準エラー出力を画面にそのまま表示し、同時にパイプで繋いだ先にも標準出力として出力する方法ってありませんか?

色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
2020/09/19(土) 19:23:52.66ID:1l7cqS+f
>>305
色が消えるのは、出力先がパイプだからやろ。
コマンドの--colorオプションとかで強制的に色付きにしろ。
そういうオプションがなければ残念ながら。。。
2020/09/19(土) 19:45:10.10ID:okNEuTuK
>>304
関数型言語ではファイルを作るというような
副作用があるプログラムを作ることができないとでも?
2020/09/19(土) 19:51:41.55ID:okNEuTuK
副作用がまったくないのは"純粋"関数型言語
純粋じゃない関数型言語は副作用を許容する

そして関数型スタイルという言い方なら
別に関数型言語である必要はない

https://docs.python.org/ja/3.6/howto/functional.html

> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
2020/09/19(土) 20:15:47.31ID:9OWUS6ol
初心者のうろ覚えですが、モナドというのは関係ない?
2020/09/19(土) 20:37:42.24ID:Uw1s41Nc
>>307
え,ファイル作成って副作用としてしか表現できないと思ってんの?
2020/09/19(土) 20:41:20.32ID:okNEuTuK
シェルスクリプトのファイル作成もモナドですねー
2020/09/19(土) 20:46:22.01ID:okNEuTuK
https://qastack.jp/software/369770/do-functional-programming-languages-disallow-side-effects

その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
2020/09/19(土) 20:50:25.87ID:okNEuTuK
常識で考えればわかるだろうに、関数型言語でファイルの作成ができるならそれは副作用でしか無いんだよ。
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い

知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
2020/09/19(土) 21:22:03.60ID:L0h6VTd7
>>305
scriptで実行してからtypescriptをgrepすれば?
2020/09/19(土) 21:28:34.09ID:MdHTO1xD
また延々と恥さらしなレスがはじまった
>>304は責任取って
2020/09/19(土) 21:42:31.36ID:YcZMzNxL
ステートレスなパイプでの受け渡しをする様が関数型的という表現に同意しない訳ではないが、関数が第一級オブジェクトじゃないので関数型言語ではないです
evalで取り扱うのはあくまで文字列です

まぁこれ以外にもないない尽くしだしその一点のみで関数型言語だと主張するのは無理があると思うよ

副作用云々に関しては副作用を明示する事を大事にする関数型言語が純粋関数型言語としてあるよねくらいで終わり
2020/09/19(土) 21:45:34.72ID:Uw1s41Nc
>>316
同意。
2020/09/19(土) 21:50:48.10ID:okNEuTuK
>>316
> 関数が第一級オブジェクトじゃないので関数型言語ではないです
知ってます。ってか常識です。
だから関数型スタイルって書いたんです。
考え方の話です。
2020/09/19(土) 22:21:10.97ID:YcZMzNxL
>>318
スクリプト内でコマンド列組み立てて文字列で標準出力に投げて標準入力から受け取った側がexecやevalで解釈させてってやってるなら関数型スタイルだと納得するかな
まぁスタイルってぼかされたらこれまた気持ちの問題にしかならないのでここまで

あとファイル作成をモナドとして表現することは可能だけどシェルスクリプトのファイル作成はモナドとして表現されてないからモナドじゃないよ
2020/09/19(土) 22:42:01.76ID:1l7cqS+f
「関数型スタイル」はいらん。

>>285
でええやん?
321デフォルトの名無しさん
垢版 |
2020/09/19(土) 22:50:47.80ID:VJFBPJzE
>>306
>>314
grepの--color=autoオプションでできました
ありがとうございました
2020/09/19(土) 23:02:36.62ID:okNEuTuK
>>320
> でええやん?
だめ。既存の用語を使ってないから、何の説明にもなってない

C言語を関数呼び出し型と言ってるようなもん
2020/09/19(土) 23:10:17.14ID:kGktsB/f
「なんちゃって関数型風味」を「関数型スタイル」て呼ぶなや

そんなん言い出したらなんでもありやぞ
Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
2020/09/19(土) 23:11:45.95ID:kGktsB/f
標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
2020/09/19(土) 23:43:29.10ID:okNEuTuK
> Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
何も問題ないのでは?w

> 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
何も問題ないのでは?w
2020/09/19(土) 23:44:13.39ID:okNEuTuK
C言語はオブジェクト指向言語ではないが
工夫することでオブジェクト指向スタイルのプログラミングが可能

この文章は別にどこもおかしくないしなぁ
2020/09/19(土) 23:53:41.32ID:1l7cqS+f
>>326
そら「オブジェクト指向スタイル」を、言った本人はわかってるつもりだから。w
実際にはよくわからんというか、具体的には通じないな。
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
2020/09/20(日) 00:24:20.42ID:hAWRhXL/
> 既存の用語を使ってないから、何の説明にもなってない

これに尽きる
2020/09/20(日) 00:27:06.89ID:VssaCpFN
>>327
それな

ADTって言葉を知らずオブジェクト指向もよく理解してないから
なんとなくで「オブジェクト指向スタイル」って呼んじゃうんだよね

「オレオレ定義のオブジェクト指向」をスタイルという言葉でごまかしてわかったつもりになってるからタチが悪い
2020/09/20(日) 00:29:04.06ID:Gp2XD0lD
じゃあ、C言語でオブジェクト指向スタイルで設計してる時
それを他の人になんて説明するのさ?

C言語でオブジェクト指向っぽい設計にしていますっていうの?
言い方を変えただけじゃんw
2020/09/20(日) 00:38:19.98ID:0m+KJQOi
ファイルやディレクトリみたいな外部状態に依存するものはステートフル?

常駐型のサーバープロセスとかネットワークプロトコルに使う用語なのでシェルスクリプトに対してステートレスって言うのは少し違和感ある
2020/09/20(日) 00:39:02.21ID:mlVvoUwY
>>331
ADTとは違うの?
2020/09/20(日) 00:55:42.03ID:8zr1eESi
>>332
「状態を持たない」という意味なんだから、それでもええやん。
シェルスクリプトは、あんまり内部で状態を持たずに、ただ上から下へと処理をパイプライン状に実行していく、という流れの話やろ。
2020/09/20(日) 01:20:17.18ID:Gp2XD0lD
パイプラインじゃなくてストリーミング処理と言ったほうが良いな
.NETでいえばLINQだ。LINQも関数型と言われてるな。
2020/09/20(日) 01:21:00.25ID:I6IOvHiB
ステートレスなバッチプログラムと、スステートフルなバッチプログラムって言われても違和感ない?

元記事読み返したがステートレスの使い方が定まってなくていい加減
2020/09/20(日) 01:44:09.20ID:W0vzNZm6
>>312
機械翻訳クソサイトを貼るな
2020/09/20(日) 02:00:41.31ID:Gp2XD0lD
>>337
元の英語を読めばいいと思いますよ(笑)
2020/09/20(日) 02:10:49.86ID:8zr1eESi
>>336
そういうふうに言うと、違和感がなくはないけど、そこはええがな。w
バッチ処理には、しょせんたいしたステートがないのだ、て言うてるだけやろ?
2020/09/20(日) 02:17:23.54ID:8zr1eESi
>>335
「ストリーミング」のほうがいい理由は?
ニュアンスが別すぎる印象だが。

LINQの関数型的要素は、高階関数なところやろ。
メソッドチェインなところではない。
2020/09/20(日) 02:56:29.74ID:Gp2XD0lD
> LINQの関数型的要素は、高階関数なところやろ。
シェルスクリプトの関数型的要素は、コマンドを高階関数として使うところやろ
パイプラインを複数つなげられるところではない。
2020/09/20(日) 03:59:49.76ID:0cFAZqtZ
まだやってるのか、グルー言語だろに
本来もだしほとんどの場合も。コマンドを高級関数だって。なんかPOSIXな人は言語として扱ってるような感じだが。だがawkが主だったりしたり
パイプラインもストリームの一つだろうに、開く閉じる書く読むをほとんど意識しないからパイプラインの方が適切かなあ
変なとこの自説をぶってるなあ
2020/09/20(日) 05:50:15.33ID:md9GHmZV
グルー言語だったら、その他は何にも当てはまらないとでも言うつもりだろうか?
グルー言語 かつ 関数型スタイルの言語ってだけだろ
2020/09/20(日) 05:51:02.56ID:md9GHmZV
> パイプラインもストリームの一つだろうに
変なとこの自説をぶってるなあ(笑)

関数型スタイルでいいだろ
パイプラインだーって自説をぶるなよ(笑)
2020/09/20(日) 07:53:20.99ID:qcN7Nyvi
関数型スタイルという表現すらも自説のぶん回しだと気づいていらっしゃらない……?

コマンドが高階関数なら >>319 にあるように受け取ったコマンド列文字列を適用するとかそういう扱い方をすることになるんだけど本当に意味分かってて使ってる?

もし本当なら書いてるシェルスクリプトなり任意の関数型言語のコードを見てみたいものだ
2020/09/20(日) 07:55:14.75ID:gYz9ZwfZ
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
なんで埋まってないのにここ使ってるの?
2020/09/20(日) 08:01:49.26ID:1uipuJDZ
ろくろ回し好きそう
2020/09/20(日) 08:39:31.58ID:OYShpTRx
ストリーミング君はいろいろ詳しくは知らない漠然とした知識と他は妄想からの思い込みで言っているだけだな
初歩的なコンピュータサイエンスの知識さえ怪しい。端々にポロポロ出てるのに自覚ないからな
2020/09/20(日) 09:14:06.85ID:I6IOvHiB
高階関数すら理解してなかったかぁ

>もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提

それでよくこんなこと言えたねぇ
シェルスクリプトのスタイルは関数型ww
大前提www
2020/09/20(日) 11:23:53.54ID:55J7R452
>>349
ほらね、反論なしだね
それが答えだよ
結局、違う気がするけど言い返せないと
お前は言ってるんだよ
2020/09/20(日) 11:24:41.19ID:55J7R452
>>345
> 関数型スタイルという表現すらも自説のぶん回しだと気づいていらっしゃらない……?

自説のぶん回しで何が悪いのか?
自説のぶん回しで何が悪いといい出したのはお前じゃん
しかも理由もなしで
2020/09/20(日) 11:25:23.93ID:55J7R452
自説のぶん回しにたいして、自説のぶん回しを持ってきても何の反論にもなってないし
反論せずに、wwwだけ並べても反論にはならない
2020/09/20(日) 11:57:32.48ID:qcN7Nyvi
>>351
あらごめんこれは私が読み間違えてた
そこに関しては自分の言葉だと分かった上で発言してるようだし、撤回するし謝るわ

ただ私は >>342 ではないので後半には答えようがない

敢えて答えるならその定義を認めるか認めないかの話になってしまっているので、不毛な議論である点は問題かなぁ
悪であるとか間違いであるという意味の問題ではなく、理解を得る納得してもらう認めさせるという目標に対して困難さがあるという意味での問題ね
2020/09/20(日) 12:03:08.73ID:55J7R452
これが結論

https://qiita.com/piroor/items/77233173707a0baa6360

ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14

そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。


14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
2020/09/20(日) 12:43:51.66ID:8zr1eESi
>>352
そういうときは、広く通じたり受け入れられたりしたもののほうが、そうでないものよりも正しいんやで。
声がでかくしつこいほうの勝ちではない。
2020/09/20(日) 12:53:30.22ID:55J7R452
>>355
「〇〇じゃないかもしれない」は反論じゃないんやで
「○○じゃないと思ってるが反論できない(じゃあ正解なのでは?)」という意味なんやでw
2020/09/20(日) 13:59:08.57ID:5WkIzV16
>シェルスクリプトに適しているのは〜 フィルタ的な働きが求められる種類の仕事にも適しています
ってあるじゃん、そもそもそういうものでしかなく(それを実現してるのはパイプ=シンプルなプロセス間通信というUNIXらしいシことで実現)、関数型言語として作られてもいないし発展も変化もしてない
シェルスクリプトに適しているのはフィルタ以外のは単なるジョブらしいぞ

似てる部分があるだけで関数型とするのは無理がありすぎ
単にフィルタの段々ができるってだけでいいのに、なんで関数型と言いたいのか
今までのコメからはなんかそれで一人悦に入りたいらしいけど目的がわからんな
2020/09/20(日) 14:30:46.33ID:V1UjDwA2
>>357
>なんで関数型と言いたいの
これは自分が使ってる道具が古臭くないぞ、最近流行してる機能を昔から実現してるんだぞと主張することで
自分自身が古臭い老害じゃないぞ、新しい技術だって知ってるんだぞ、優秀なんだぞと暗に主張したいから

老害多めのレガシーな言語スレでよく見られる現象
2020/09/20(日) 14:36:18.77ID:55J7R452
>>357
> 関数型言語として作られてもいないし

まーた「関数型言語」って妄想してる
だーれもシェルスクリプトが「関数型言語」なんていってない
「関数型スタイル」って言ってんの

何回言えばお前が戦ってる相手が
お前の妄想の中の架空の人物だって理解すんの?
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
そんなの透けて見えてるけど、自問させてみようかなと
逆に全然優秀に見えないのはなんでだろうなあ
2020/09/20(日) 14:37:24.66ID:55J7R452
>>358
え?関数型って新しいんでしたっけ?w
シェルスクリプトと同じぐらい古いものだと思ってるんですがー?
2020/09/20(日) 14:38:40.31ID:5WkIzV16
>>359
関数型スタイルでもない、「関数型」なんて意識してないのが明らか
勝手に間違った造語作って偉そうにされても困る
2020/09/20(日) 14:41:37.03ID:5WkIzV16
>>361
古くからあるらしいが、そんなの世間に出てもてはやされたのは最近って話だろうに
それはあんなサイトを貼ってるので証明してる

優秀なんだぞと暗に主張したいんだったら、少しは他社の目ももとうな
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年

関数型が新しい技術???
2020/09/20(日) 14:42:43.83ID:55J7R452
>>363
お前は世間のブームが基準なのかよw
2020/09/20(日) 14:47:03.43ID:5WkIzV16
自分であんなサイトを自慢げに貼って何を言っているのかな?
そんな古く周知されてるなら、あんなサイトを持ち出さなくてもいいし、一人延々と自説を唱えることはないわな

表記的表記的には同じようにステートレスとやらになるが MS-DOS batch fileも関数型の親戚か?
で結論は出ているから、もうおしまい
2020/09/20(日) 14:47:47.68ID:55J7R452
自分であんなサイトを自慢げってなんのこと?w
ググって出てきたものを貼ってるだけなんだけど

記事の内容じゃなくて、サイトを批判してるようじゃぁ
説得力ゼロですなぁ
2020/09/20(日) 14:51:24.36ID:55J7R452
>>366
> MS-DOS batch fileも関数型の親戚か?
ぜんぜん違う

コマンドを実行してみりゃわかることだがWindowsのコマンドは対話型
実行したら「○○を処理しました。」とか標準出力に表示されたりして
ストリーミング処理できるように設計されていない

もちろん並列処理が行われないなどという点もあるがそれ以前の問題
お前はパイプラインの有無で判断しているからバッチファイルも同じだと
考えているようだが、パイプラインは関係ないと最初から言っている
2020/09/20(日) 14:56:03.76ID:5WkIzV16
ググる必要もないだろうにって話だが?>>361の反論からは
あんなサイトっていうのは別に書いたのがあなたというわけではないよ

というか>>361以下の反論が反論になってないな、散々反論反論言っていたんだから、自分でちゃんとした反論をしなさいよ

>>368
全然読めてないな、あのサイトも>>360
あなたがシェルスクリプトを関数型と根拠にしたのはパイプで繋げるだからな、あのサイトの抽出したのもそこだろう、MS-DOSでもそこは表記的表面的には同じ
2020/09/20(日) 14:59:06.57ID:55J7R452
> あなたがシェルスクリプトを関数型と根拠にしたのはパイプで繋げるだからな
別の人と勘違いしてるねw

パイプラインとか言い出したのはこいつ(>>285
> シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
2020/09/20(日) 15:00:06.11ID:55J7R452
重要なのはパイプラインではなく、ストリーミングであるという所だ。
つまり1行1データになってないといけない
MS-DOSはそうなってないので全く的外れ
2020/09/20(日) 15:10:50.29ID:5WkIzV16
>>354 って自分で書いたくせに何をおっしゃってるのだが
まさかググっただけ中はよく読んでない、都合の良さげの文があったのでというのか?
ちゃんと自分で改めてあのサイトの内容を見てから言いなさいな、まさしくパイプで繋げることしか書いてないから=それが関数型に似てるだけだから

なんだか知らんが俺が決める仕様なのか、関数型とやらは。誰も納得しないだろうな、その俺が決める仕様なら
2020/09/20(日) 15:29:06.24ID:55J7R452
> >>354 って自分で書いたくせに何をおっしゃってるのだが

354にはパイプラインなんて出てきてませんねぇw

> ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
> 「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
> 関数型言語にも見られる特徴です。14
2020/09/20(日) 15:30:01.00ID:55J7R452
なんつーか、設計方針を理解してないみたいだな
「パイプ」があれば、設計が同じだと思ってしまう
その程度の理解力なんでしょうね
2020/09/20(日) 15:38:04.31ID:5WkIzV16
自分では「パイプ」とは書いてない、抽出した先で抽出した文がパイプだけのことをを指してあっても、自分は書いてないからかあ
どういう思考してるのか理解できないな

>>374
ますます自分の都合の良い捻じ曲げ方してますねえ
自分で抽出した先でそのことだけを言及して、それを自分で開陳してるなら、抽出した先でパイプで繋げることしかなら同じだろうという、いたって単純な結論になるのは当たり前

しかも「これが結論」って自分で書いてらっしゃるんですけど
ちなみに、よく読めばわかるだろうと思うのだが、あれを書いた人もそんな設計方針が必要なほどのことはシェルスクリプトで書かないよ、そう書いてあるでしょう
2020/09/20(日) 16:04:51.92ID:8zr1eESi
ストリーミンガーには、まず「関数型スタイル」というものをあきらかにしてほしい。今さらだけど。

ところで、あのWebページのひと、なんかかわいそう。。。
シェルスクリプトには関数型的な特徴がある、ふつうのスクリプト言語とはちょっと違うような、と言っただけなのに、針小棒大にネタにされて。
2020/09/20(日) 17:23:12.71ID:55J7R452
> 抽出した先で抽出した文がパイプだけのことをを指してあっても
ストリーミングと書いてますが?
2020/09/20(日) 17:24:34.33ID:55J7R452
シェルスクリプトには関数型的な特徴がある、
シェルスクリプトには関数型スタイルである、

同じことを言ってますねw
2020/09/20(日) 18:33:36.30ID:8zr1eESi
>>378
なるほど、話が通じない理由がわかった。
それが同じことだと本当に思っているなら、コンピュータのこと以前に、まず国語を勉強する必要がある。

たまたま似た特徴があるとしても、全体がかなり違っていれば、ふつうは同じものと見なさない。
「スタイル」という言葉は、一部に似た特徴がある程度のものを統合しない。
2020/09/20(日) 18:47:56.61ID:55J7R452
> 「スタイル」という言葉は、一部に似た特徴がある程度のものを統合しない。

それはどこの誰の定義ですか?


https://docs.python.org/ja/3/howto/functional.html
この文書では、関数型スタイルでプログラムを実装するのにピッタリな Python の機能を見てまわることにしましょう。
関数型スタイルにおいては、内部状態を変えてしまったり、返り値に現れない変更をしたりといった副作用のある関数はやめるように言われています。
関数型スタイルで書いた Python プログラムはふつう、I/O や代入を完全になくすといった極端なところまでは行かずに、
関数型っぽく見えるインタフェースを提供しつつも内部では非関数型の機能を使います。
まずは関数型スタイルのプログラムを書く際の基礎となる重要な Python 機能から見ていきましょう: イテレータです。
これらの章内の多くのデザインアプローチは関数スタイルな Python コードにも適用できます。
2020/09/20(日) 19:17:05.28ID:77Xtdks6
こいつって前からいるけど致命的に日本語を読めないな
2020/09/20(日) 19:28:01.14ID:55J7R452
とまあ、こういうふうに悪口しか言えないわけでw
2020/09/20(日) 19:36:37.16ID:77Xtdks6
今までので何も読めてないのは確かだな。誰もお前と話が通じてないからな
>>380も読めてないお前にしか見えない何かがお前にだけ見えるだけ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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