+ JavaScript の質問用スレッド vol.121 +at TECH
+ JavaScript の質問用スレッド vol.121 + - 暇つぶし2ch2:デフォルトの名無しさん
16/07/10 22:47:33.04 ZmdhimD5.net
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 URLリンク(jsdo.it) URLリンク(jsbin.com) URLリンク(jsfiddle.net) URLリンク(ideone.com)
■前スレ
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]c2ch.net
スレリンク(tech板)
■過去スレ全集
URLリンク(www2.atpages.jp)
URLリンク(usamimi.info) (閲覧のみ)
■テンプレ案
URLリンク(fiddle.jshell.net)
■関連スレ
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
スレリンク(hp板)
JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]c2ch.net
スレリンク(hp板)
【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]c2ch.net
スレリンク(tech板)
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
スレリンク(hp板)
Canvasについて語ろう
スレリンク(hp板)

3:デフォルトの名無しさん
16/07/10 22:48:09.96 ZmdhimD5.net
■FAQ
URLリンク(fiddle.jshell.net)
◆開発者ツール(Developer Tools)の基本的な使い方 (全部はURLリンク(fiddle.jshell.net) )
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  URLリンク(developer.apple.com)
 ▼要素を検証
 1. ページ上で右クリックして [要素を検証]
 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
 3. 右側のサイドバーから知りたいステータス名のタブを選択する
   - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
   - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
   - [Properties] タブ … 選択したDOMノードのプロパティを表示
 ▼コンソール
 1. JavaScript コード上で console.log('Hello, World!'); と入力
 2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
 3. [Console] パネルに "Hello, World!" と表示される
 (※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)

4:デフォルトの名無しさん
16/07/10 22:48:26.99 ZmdhimD5.net
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に URLリンク(jsperf.com) にコードをUPしてブラウザ毎に速度計測する事を推奨します。
例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。
■各種仕様 ( URLリンク(fiddle.jshell.net) も参照 )
◆ Standard ECMA-262
URLリンク(bclary.com) (ECMAScript 3 HTML版)
URLリンク(www2u.biglobe.ne.jp) (ECMAScript 3 和訳)
URLリンク(www.ecma-international.org) (ECMAScript 5.1 HTML版)
URLリンク(tsofthome.appspot.com) (ECMAScript 5.1 和訳)
URLリンク(www.ecma-international.org) (ECMAScript 6 / ECMAScript 2015)
URLリンク(kangax.github.io) (ECMAScript 5 compatibility table)
URLリンク(kangax.github.io) (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
URLリンク(www.whatwg.org)
URLリンク(momdo.s35.xrea.com) (HTML5.1 部分訳)
URLリンク(www.hcn.zaq.ne.jp) (Web Storage 和訳)

5:デフォルトの名無しさん
16/07/10 22:49:02.01 ZmdhimD5.net
■各種仕様 (続き)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
URLリンク(www.hcn.zaq.ne.jp) (DOM Standard (DOM4) 和訳)
URLリンク(www.w3.org) (DOM3 Events)
URLリンク(www.w3.org) (UI Events)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM 和訳)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
URLリンク(domparsing.spec.whatwg.org) (DOM Parsing and Serialization - innerHTML等)
URLリンク(www.hcn.zaq.ne.jp) (XMLHttpRequest 和訳)
URLリンク(www.hcn.zaq.ne.jp) (File API 和訳)
URLリンク(www.whatwg.org) (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
URLリンク(developer.mozilla.org)
◆ MSDN Library
URLリンク(msdn.microsoft.com) (Internet Explorer API)
URLリンク(msdn.microsoft.com) (JavaScript)
URLリンク(msdn.microsoft.com) (JScript)
URLリンク(msdn.microsoft.com) (DHTML)
◆ JavaScript Garden (ja)
URLリンク(bonsaiden.github.com)
◆ JSON (JavaScript Object Notation)
URLリンク(www.json.org)

6:デフォルトの名無しさん
16/07/10 22:51:42.78 ZmdhimD5.net
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
-----ここまでテンプレ-----

7:デフォルトの名無しさん
16/07/10 23:00:45.86 tx16mOUk.net
jQuery 3.1.0 リリース
URLリンク(github.com)
URLリンク(jquery.com)は3.0.0のままなので注意)

8:デフォルトの名無しさん
16/07/10 23:01:12.49 BhOPIXig.net
いちおつ

9:デフォルトの名無しさん
16/07/10 23:04:36.53 tx16mOUk.net
>>8
どういたしまして

10:デフォルトの名無しさん
16/07/10 23:12:42.29 AJWTeieN.net
ID:BhOPIXig一人がID:ZmdhimD5に一任しただけでどうしてここまでテンプレを書き換えられるんだろうね
自作自演を疑いたくなるレベル

11:デフォルトの名無しさん
16/07/10 23:20:09.67 B7CKytyd.net
統合を期待していたのにどうしてこうなった
たった一人が一任しただけで全住民の権利を委譲されたと勘違いしたのか?
他の意見を汲んでからスレをたててくれ

12:デフォルトの名無しさん
16/07/10 23:21:14.01 tx16mOUk.net
自分が管理人のつもりにでもなってるんだろw
自分の思い通りにいかないと癇癪を起こすやつ。
ま、俺はそんなの無視してjQueryとlodashの普及活動(笑)やりますがね。

13:デフォルトの名無しさん
16/07/10 23:22:36.60 ZmdhimD5.net
あっちでも書いたけど一応釈明
諸論ある内で現状維持にしたのはスレ寿命と明確な同意が無かったため
テンプレは前スレ>>958のものがWeb板の質問スレをベースにしていたから
前スレ>>958を基準として前々スレの内容を引き継ぐような形にした
このスレの有り様については引き続き議論してほしい
っていうかこれだけ新IDがいるならもっと早めに参加してくれよ頼むよ

14:デフォルトの名無しさん
16/07/10 23:22:44.07 tx16mOUk.net
なんか面白い流れになってるな
>>1にテンプレ書く資格ないと思うやつ挙手w

15:デフォルトの名無しさん
16/07/10 23:32:49.45 BhOPIXig.net
てかお前ら今まで意見せずに彼が立ててくれたらいきなり文句たらたらかよ。
相変わらず足を引っ張ることしか考えてないんだな。
俺は>>1の判断は妥当だと思うぞ。
見た目(9)「ライブラリ禁止」を入れてそれ用に修正、諸注意も古いバージョンに戻しただけだろ。
ライブラリの話は元々どっちつかずになっていたし、それ以前に乱立厨がいてどうにもならなかった。
今回はこれまでとは比較にならないほどまともなスレ立て経緯だったと思うが。
残り10切っているのに無駄に雑談で埋める奴も出てくるし、マジで死ね。
まあとにかくスレは立った。重ねて一乙。
その上で、ライブラリをどうするのか、話し合えばいいだけだろ。
お前らはどうしたいの?
俺はこのスレは基本的にゼネラル(一般)で、
分化した専門スレを傘下に持ちつつやっていけばいいと思っている。
つまり、分化した専門スレが存在するのであれば基本的にそちらに誘導、
それがないのであればここで取り扱う、という基準でいい。
結果的に「ライブラリ総合スレ」はあるのだから、ライブラリの話題は積極誘導となる。
jQueryやnodeも同じ。
あと、迷子対策の「Webサイト制作初心者用質問スレ」はどうするんだ?

16:デフォルトの名無しさん
16/07/10 23:33:07.54 qRzpKnCh.net
議論の途中っていうか、URLリンク(fiddle.jshell.net) ベースの方向でまとまっていたじゃない
僕が気が付いたのは990付近だからうかつに口を出せる状況じゃなかったけど、URLリンク(fiddle.jshell.net) ベースだから安心してた
それが URLリンク(fiddle.jshell.net) から大幅に書き換えられたら反対意見が出るのは当然だよね
URLリンク(fiddle.jshell.net) のテンプレに不満があったなら勝手に書き換える前に不満を述べればよかったんだよ
とりあえず、現状としては URLリンク(fiddle.jshell.net) で新しく建て直せばいいんじゃない?

17:デフォルトの名無しさん
16/07/10 23:38:57.68 tx16mOUk.net
な?本当のキチガイが誰かよく分かるだろ?w

18:デフォルトの名無しさん
16/07/10 23:43:00.81 LUsHhhnR.net
現状維持に言及するレスも多かったろ、自分も統合反対派だ
テンプレの中の人のは統合後の案だからそのまま使えるわけないじゃん

19:デフォルトの名無しさん
16/07/10 23:48:13.63 l1ke6cB+.net
俺は統合に賛成
現状維持派はHTML/CSS統合に対する反論としてあったと思うのだが
> テンプレの中の人のは統合後の案だからそのまま使えるわけないじゃん
完全に自分の事しか考えてないな
唯我独尊は程々にな

20:デフォルトの名無しさん
16/07/10 23:59:26.26 BhOPIXig.net
>>16
ていうか単発はこの状況で出てくるな。
譲れないところがあるのならその旨主張しておかないと駄目だろ。
それはさておき、お前はどうしたいのだ?
何度も言っているが、統合する/しないは向こうの判断であって、こちらが指示できる話ではない。
仮にここでライブラリを解禁したところで、結果的にライブラリの話が2箇所で為されて薄まってしまうだけ。
これは誰にとってもメリットがない。
ここでやるのなら向こうは落とす、向こうが存在するのであれば向こうに積極的に任す、というのが妥当。
単独で十分流れるのでないのならば、そもそもスレを立ててはいけない。
「ぼくのかんがえたすれしかみとめない!」だからお前らは乱立させてきた。その責任はちゃんと取れ。
ライブラリスレをこちらに統合したいのであれば、
(1)ライブラリスレ内でその合意を形成して、
(2)ライブラリスレの最後にこのスレへの誘導を落とし、それ以降はレスしない事によってスレを落とす
事をまず試せよ。少なくともそれが出来ればなし崩し的に統合される。誘導する先がないからね。
そうじゃなくて、こちらにお願いするのなら、追い出された経緯があるんだろ?(俺は知らんが)
その問題点を解決しないと再統合は無理だろ。
個人的には、ライブラリの話は特殊化してしまうので、別の場所でやった方がいいと思うけどね。
実際、例えばnodeスレでやられている話をここでやられても困るだろ。
分化した専門スレという物はそういうものだよ。ライブラリもそれに近いと思うが。

21:デフォルトの名無しさん
16/07/11 00:05:25.39 vK8HszAQ.net
>>20
ライブラリスレが分化したのは荒らしを隔離する為
結果的にjQueryスレに隔離することに成功したが、そのスレでjQueryの回答をするととにかく五月蠅い
スレを落として一つのスレに統合するのは理想だが、荒らしを相手に合意なんて形成できるわけがない
あなたの考えは理想論だと思うぞ

22:デフォルトの名無しさん
16/07/11 00:09:01.84 c813o9It.net
> ライブラリスレが分化したのは荒らしを隔離する為
> 結果的にjQueryスレに隔離することに成功したが、そのスレでjQueryの回答をするととにかく五月蠅い
おいw 俺はjQueryとライブラリの両方に書き込みしてるぞw
俺が巡回するスレが増えただけなんだが分かってなかったのかw

23:デフォルトの名無しさん
16/07/11 00:11:39.74 EacXB/Ox.net
>>21
では現実論としてどうなんだ?
その隔離したjQueryスレをこちらで引き取ったらこちらが荒れるだけなんだろ?
だったらそりゃこれまでどおり隔離されたままよろしくって事にしかならない。
少なくともこちらのスレから見ればそうだ。
jQueryはjQueryだけの文法を使うし、jQuery自体について知っておかねばならないことも多い。
あれは分化して専門スレとして存在するべきだよ。そこそこ流れるし。
その上で、荒らしをどうするかは別の問題だ。こちらが一緒に沈む意味はないだろ。
一体お前はどうして欲しいんだ?
俺らが「信者」に対して何か出来るわけではないし、信者がここで改宗されるわけでもないぞ。

24:デフォルトの名無しさん
16/07/11 00:12:48.29 c813o9It.net
> jQueryはjQueryだけの文法を使うし、
jQueryだけの文法ってなんだ?
いつjQueryがJavaScriptを拡張したんだよw
jQueryは単なるJavaScriptだ。

25:デフォルトの名無しさん
16/07/11 00:15:59.76 gzpHRxsK.net
一方が消えて他所がカヴァーするなら話は簡単なんだが
両方とも現存する場合は双方スレ住民の意見の一致なんて早々出せるわけないわな
荒らしはスルーというスタンスに則って考えるのなら
jQueryスレは考慮せずにライブラリ総合質問所の合意だけでいいでしょ
ageてidか節穴でip出して多数決取ったらいい
とはいえあの荒れっぷりから既に見てない人も多いと思うけど

26:デフォルトの名無しさん
16/07/11 00:17:19.44 vK8HszAQ.net
それからここでも乱立は既にしている
+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]©2ch.net
スレリンク(tech板)
「荒らしの立てたスレはスルー」というかもしれないが、同じ理由でWeb制作板も乱立してきた
ここでもしライブラリ許容派が新スレを立てれば更に乱立する
彼らにとってはここが「ぼくのかんがえたさいきょうすれ」なのだから(結局はただの主観)
乱立を嫌うのなら荒らしが立てたスレだろうが、テンプレを途中で書き換えて使いつぶすしかない

27:デフォルトの名無しさん
16/07/11 00:19:33.81 c813o9It.net
> 俺らが「信者」に対して何か出来るわけではないし、信者がここで改宗されるわけでもないぞ。
それは正しいなw
JavaScriptスレからDOM APIの話を分離しない限りーーー
(本来は分離するべきもの。DOM APIはJavaScriptを使う上で必須のものじゃない
ブラウザと言う実行環境でしか使えないJavaScript用の外部APIでしかない)
閑話休題、DOM APIの話を分離しない限り、DOM操作の話題が
このスレででてくることになる。
最近ではDOM操作を使わないフレームワークがあるが、
どうせライブラリと同様フレームワークの話もするなっていうんだろ?
であればDOM操作の話がでるたびに、それは素のDOM APIでも
DOM APIよりも格段にシンプルに記述できるjQueryでもできるって話ができる。
つまりDOM APIの話を分離しないこと=jQueryの話に持っていくネタになるんだよ。

28:デフォルトの名無しさん
16/07/11 00:21:06.48 vK8HszAQ.net
>>23
俺の望みはある程度、秩序のあるライブラリスレが欲しいだけだ
jQueryスレは現存したまま、ライブラリスレも分化すればよい
こちらに来る人は少数だろうからライブラリ専用スレをプログラム板に新しく建てるよりも子のスレに統合することを望む

29:デフォルトの名無しさん
16/07/11 00:27:08.07 EacXB/Ox.net
>>26
> 乱立を嫌うのなら荒らしが立てたスレだろうが、テンプレを途中で書き換えて使いつぶすしかない
それをやってきた結果、「ライブラリ」の取り扱いがグレーになっていて今回揉めているわけだろ。
その流れを断ち切りたいというのが前スレ>>959
> このスレの現状維持には賛成だが>>936,>>956を使うのには重ねて反対だ
なんだろ。だから俺は彼の意見を尊重して「建て直し」に同意した。
てかお前ら許容範囲が狭すぎる。(多分若いだけなんだろうけど)
何でもかんでも俺が思うとおりしか認めないスタンスだとどうにも纏まらないぞ。
お互いに譲歩しつつよりマシなところを目指すしかないんだよ。
譲れるところは譲れよマジで。
今回、スレ立て前に内容について議論、そしてスレ立て宣言と、
JavaScriptスレにしては信じがたいほどまともだったぞ。
いや、他言語ではこれが常なんですけどね。

30:デフォルトの名無しさん
16/07/11 00:28:57.48 c813o9It.net
質問者の気持ちを考えればわかると思うんだが、
「jQueryを使って解決したい」って思う人はいるだろう。
でもjQueryを使わずに解決したいって思う人は少数だよ。
何かしらの質問があって、それを解決するにはどんな方法がありますか?って
思ってる。
だから答えの一つとしてjQueryを使った場合を答えるのは正しいこと。

31:デフォルトの名無しさん
16/07/11 00:36:59.03 vK8HszAQ.net
>>29
> それをやってきた結果、「ライブラリ」の取り扱いがグレーになっていて今回揉めているわけだろ。
その通り
> なんだろ。だから俺は彼の意見を尊重して「建て直し」に同意した。
それはお前と彼(ID:ZmdhimD5)の間で合意が成立し、スレが立てれた事で「お前が満足」しているだけに過ぎない
お前にとっては大満足だが、不満が出ている者もいるわけだ
彼らはまだ自分でスレを立てる行動を起こしていないが、もしスレを立てればWeb制作板と同じ現象になることは火を見るよりも明らかだ
つまり、合意を形成出来ているわけではない

32:デフォルトの名無しさん
16/07/11 01:02:28.47 EacXB/Ox.net
>>28
> 俺の望みはある程度、秩序のあるライブラリスレが欲しいだけだ
これをこちらに要求されてもどうにもならない。
こちらが出来ることは、誘導先を変更すること程度だよ。
ID付きにしたいのならまずム板に立ててこちらに通知してくれればいい。
可能なら合意を形成した方がいいが、無理なら置き去りでもいいとは思う。
少なくともここにいる「分離派」の連中は誘導先をム板スレにすることに反対はしないだろう。
本来ライブラリスレは別に存在するべきだよ。
誘導するにもスレがないと出来ないのだから、
IDが必要ならとりあえず該当スレで参加者募って立てるしかないだろ。
荒らしを含めて100%の合意なんてする必要はない。
でも君を含めて複数人の賛同者はいないと話にならない。
やりたきゃやれよ。いずれにしても俺らがどうこうできる話ではないよ。
>>31
> つまり、合意を形成出来ているわけではない
じゃあお前は>>26のスレを使えばいいじゃない。(お前がそのスレ立てた馬鹿か?)
それではいけないから流れを断ち切るために立て直したんだろ。
いずれにしても、スレ立てに際してそんなに譲れない部分があるのなら、
お前がスレを立てなければならなかったんだよ。
彼が適切なタイミングでスレ立て宣言したのだから、それで終わりだよ。
言っておくが、俺はテンプレがお前が思っている物であっても一乙感謝したからな。
お前みたいに「おれのさいきょうのてんぷれ」を求めているわけではないんだよ。
少なくともこのスレ立ての経緯は至極まともだった。だから一乙だよ。
テンプレについてはこの状況下では>>1に与えられた裁量権の中に留まっていると思う。
お前が合意してないのは分かったが、お前が多数派である根拠もないだろ。
いい加減にしろよマジで。

33:デフォルトの名無しさん
16/07/11 01:08:45.09 c813o9It.net
> 本来ライブラリスレは別に存在するべきだよ。
それはどうなんだろうね。
フレームワークは作り方自体を規定しているから
別に分離するべきだと思うけど。
(例えば、Backbone、AngularJS、Reactなどでぜんぜん違う)
ライブラリは混ぜて使うもので、質問者の立場になって考えれば、
実現できるのであれば、ライブラリを使ってもいいはず。

34:デフォルトの名無しさん
16/07/11 01:26:19.46 vK8HszAQ.net
>>32
>>26と反対派が同じだとどうして思う?
俺と>>26が同一人物とか憶測で物事を判断する癖は何とかした方がいい
> 本来ライブラリスレは別に存在するべきだよ。
その根拠のない自信はどこから出てくるんだろうな
> いい加減にしろよマジで。
同じ言葉をそのまま返したい気持ちだが

35:デフォルトの名無しさん
16/07/11 01:39:01.42 EacXB/Ox.net
>>33
というか君は構ってちゃん+レス乞食だからウザイ。
それはさておき、君は「Webサイト制作初心者用質問スレ」には興味ないのか?
そこでは、
質問「○○をしたいです。なお□□くらいの知識があります」
回答「それなら××を使うのが最適。詳しくは△△スレに行け」
を繰り返すことになる。あまり恣意的な誘導は困るが、
相手の技術レベルを踏まえた上で8割ほど正解なら十分だ。
誘導先は、生JavaScript/jQuery/その他ライブラリ/各種フレームワークから、
CSS/PHPを含めてどれでもいい。
君のやっていることに割と近いと思うが。
他の連中は君自身を嫌っているようだが、俺は正直わりとどうでもいい。
(既に書いたが、俺が一番問題にしている奴と君は別人だ)
それよりも君のエネルギーを有効活用出来ないかと考えている。
一応言っておくが、そのスレでは誘導に徹した方がいい。
そのスレで技術的会話をやり始めると、極めて間延びしたスレになってポシャる。
とはいえ、今は無いのだから今より悪くなるわけもない。
だから、やる気があるのならまずやればいい。
俺は知らないが昔存在したみたいだから、知っている人から状況を聞いたり、
過去スレのURLが手に入れば見てみるといいだろう。
(なお俺はフルスタックではないのでそのスレに直接関わることは出来ない)

36:デフォルトの名無しさん
16/07/11 01:41:55.75 c813o9It.net
>>35
誘導に徹すると言うのなら、
誘導スレにしたら?w

37:デフォルトの名無しさん
16/07/11 01:45:27.20 EacXB/Ox.net
>>34
> 反対派が同じだとどうして思う?
文句言っている主な理由は
> (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
だろ?もちろん>>26のスレはそれがない。
少なくとも>>26を立てた奴は「統合派」だ。なし崩し的にライブラリ許可しようとしている。
そして「分離派」はそれを苦々しく思っていたから建て直しを要求した。
その辺の状況は俺も知っているし、このスレに避難してきた連中は「分離派」が大勢だろ。
テンプレは>>26みたいな乱立厨がいたからどうにもならなかっただけだ。
だから>>1の言い分は筋が通っている。
で、お前の言い分は?

38:デフォルトの名無しさん
16/07/11 01:49:09.14 c813o9It.net
根本的な問題はライブラリを禁止するのが
正しいことだからそうしたことじゃなくて
気に食わないからそうしたってことなんだろうね。
本来ライブラリの話は禁止知るべきじゃなかった。

39:デフォルトの名無しさん
16/07/11 01:50:44.23 EacXB/Ox.net
>>36
では仮に「Webサイト制作初心者用質問/誘導スレ」にしたらやる気があるのか?
或いは君がやる気が出るスレタイを提示してくれ。
そこで技術的会話をしないことに不満があるのなら、やってみればいい。
あらゆるWeb技術が混ざった訳の分からないスレになる。
初心者にはカオスにしか見えないだろう。
それでも今より悪くなることはないので、やりたければやってみればいい。
つうか、君が荒らし扱いされているのは、エネルギーを持て余しているからだ。
君がこのスレならやりたい!というのがあれば、賛同者を募ってやればいいんだよ。

40:デフォルトの名無しさん
16/07/11 02:00:40.76 c813o9It.net
>>39
俺はスレタイがどうであれ>>1の内容がどうであれ
jQueryで回答できると思ったらjQueryで回答するだけだよ。
スレタイっていうのは関係ない話題が出てこないようにするためであり
極端に言えば、政治スレでJavaScriptの話題はでないだろう?
それで十分役目を果たしている。
もしここでjQueryで回答できるような質問がくるというならば
それは分離すべきじゃないってことだよ。
俺が見ているのは質問者だ。他の回答者じゃない。
他の回答者がそんな回答をするなといったところで、
質問者が喜ぶ回答を俺はするだけの話。

41:デフォルトの名無しさん
16/07/11 02:04:19.09 c813o9It.net
重要なのは質問してきた人へのレスは俺が一番多いってことだと思うね。
お前らが、スレタイがどーのこーのと言ってる中、
俺だけが回答をしている。

42:デフォルトの名無しさん
16/07/11 02:06:13.84 jsqzL1PW.net
要するに、スレの趣旨を変革したいけど明確な合意形成のできないまま埋まりかけたわけだよね。
ならば当面は既存を維持して、次スレでまた話を続けようというのは何も間違っていないでしょうに。
「スレ落ちそうなのでとりま変えました」の方が問題だと思うよ。
ちゃんと初心者スレの話題を振って再開しようとするID:EacXB/Oxは偉いよ。

43:デフォルトの名無しさん
16/07/11 02:08:44.01 vK8HszAQ.net
>>37
>>26が統合派なのは間違いないだろうが、なし崩し的に統合したい奴は>>1に文句いうまでもなく黙って実行する
逆に>>26が非統合派だった場合、お前は>>1>>26を同じだと判断するのか?
「同じ意見=同一人物」は短絡的に結論を出しているだけだ

44:デフォルトの名無しさん
16/07/11 02:13:27.09 EacXB/Ox.net
>>40
つまり君は自分で主体的にスレを運営していくことには興味なく、
あくまで寄生してjQuery教を布教するということか。
そりゃ荒らしでしかないよ。
君が間違っているのは相手のレベルを考えていないこと。
右も左も分からない人にライブラリを勧めても余計に混乱するだけ。
本来ライブラリってのは一通り出来る人が手抜きするために使用するもの。
一通りも出来ない奴が使うべきではないのさ。
まあ分かった、やはり君と共存するのは難しいらしい。
とはいえ俺から見れば君はエネルギーを注ぐ方向を間違っているだけ。
それを他人にも役立つ方向に向けようと思ったら、その旨言ってくれ。

45:デフォルトの名無しさん
16/07/11 02:14:43.62 c813o9It.net
>>44
> あくまで寄生してjQuery教を布教するということか。
> そりゃ荒らしでしかないよ。
お前にとっては荒らしに見えるんだろうな(笑)
そもそも俺はjQueryを布教してるわけじゃない。
質問をjQueryで答えてるだけだ。
お前が布教していることにしたがっているだけ。
俺は質問者のために回答をしているだけだ。

46:デフォルトの名無しさん
16/07/11 02:15:49.24 vK8HszAQ.net
ちなみに建て直しを要求したのは>>26が統合派だからではなく、結論が出ていない状況で自己判断で立てられたからだ
統合派と分離派の争いは関係ない

47:デフォルトの名無しさん
16/07/11 02:15:54.35 c813o9It.net
> 君が間違っているのは相手のレベルを考えていないこと。
> 右も左も分からない人にライブラリを勧めても余計に混乱するだけ。
質問者が「ライブラリわかりません」って言ったか?w
相手のレベルというのはバラバラだ。
バラバラということはライブラリが分かる人もいるってことだ。
お前が言ってるのは矛盾している。
相手のレベルがライブラリがわからないと決めつけている。
お前こそ何も考えていない。

48:デフォルトの名無しさん
16/07/11 02:38:19.30 EacXB/Ox.net
>>43,46
違う。
「統合派」は今なし崩し的になっている(統合派の思惑どおり進みつつある)
という状況を知っていたから先に立てたんだよ。分離派が先に立てる意味はないのさ。
そして前スレの「ライブラリ禁止無し」のなし崩しテンプレでは、
何故かスレ乱立荒らしもいなくなっていただろ。
つまりスレ乱立荒らしも「統合派」なんだよ。
乱立荒らしが「ぼくのかんがえたさいきょうのすれっど」を立てられたからそこで止まった。
そして、少なくとも「分離派」にはスレを乱立させてまで「ライブラリ禁止」テンプレを守ろうとする奴はいないのさ。
だから前スレのテンプレは放置され、スレが重複して立てられることもなかった。
そういう状況にうんざりしていた奴が適切なタイミングで「スレ立て」宣言して
了解したわけではない部分を戻したのだから、今回はそいつの勝ちって事だよ。
正直、俺もお前ら「統合派」のやり方にはうんざりしているし、頭に来ているよ。
お前らみたいな奴がいなかったからこのスレはある程度平和だった。
お前らがいるスレが糞なのは、お前ら自身が糞だからだよ。それは自覚した方がいい。
てかこんな話しても意味無いだろ。そろそろ止めようぜ。
統合したいのならやり方は既に書いたし、その通り試してみればいい。>>20,32
他人に頼るのではなく、お前ら自身で何とかしろよ。
それより「Webサイト制作初心者用質問スレ」の話をしよう。
まあもう寝るけど。

49:デフォルトの名無しさん
16/07/11 11:01:49.76 vK8HszAQ.net
>>48
全て根拠のない憶測ではないか
「統合派」の一人が荒らしというだけで「統合派全体」を荒らし扱いするお前の結論にはうんざりする
> 乱立荒らしが「ぼくのかんがえたさいきょうのすれっど」を立てられたからそこで止まった。
「統合派」と乱立荒らしに同意しているという考えがそもそもの間違い
もし、乱立荒らしが「分離派」だったならお前は分離派全体を荒らし扱いするのか?
> 正直、俺もお前ら「統合派」のやり方にはうんざりしているし、頭に来ているよ。
結局、その結論におさまるんだな
>>32では「俺はテンプレがお前が思っている物であっても一乙感謝したからな」といっていたが、お前の態度を見ていると統合派のテンプレでスレッドを立てられたとして「一乙感謝」なんてやるとは思えないな
結局、「統合派のテンプレでスレッド」は乱立荒らしとして新スレを立てる事を求めるだろう
ようするに分離派のお前が>>1に感謝しているだけ
> てかこんな話しても意味無いだろ。そろそろ止めようぜ。
止めたいのは同意だが、お前の論理があまりにも主観的に>>1を擁護しているから反論しているだけだ
それが客観的な意見であったのならここまで反論はしない

50:デフォルトの名無しさん
16/07/11 11:14:45.22 Gv7vhpyb.net
Webサイト制作初心者用質問スレの復活には異論ない
てか落ちてたのを前スレで初めて知った

51:デフォルトの名無しさん
16/07/11 12:45:53.19 STlBfsAQ.net
「Webサイト制作初心者用質問スレ part242」が最後だよね
新しくたてるのはいいと思うけど、それこそ下記スレで話題にすべきなんじゃないのかな
(X)HTML/CSS の質問に優しく答えるスレ23 [無断転載禁止]c2ch.net
スレリンク(hp板)

52:デフォルトの名無しさん
16/07/11 16:50:49.12 DrkgU0D1.net
はい。全てはそういう面倒な根回しと初期運営をやってくれる善人がいるという前提の理想論です。

53:デフォルトの名無しさん
16/07/11 21:37:36.78 EacXB/Ox.net
>>49
結局お前は文句を言いたいだけで、自分では何もする気がないんだろ。
既に言っているが、あの状況なら>>1の判断は妥当だし、裁量権を逸脱してはいない。
お前は自分が気に入らないことに対して延々と文句を言っているだけだ。
そんなんしか居ないからWeb板はどうにもならない。
そしてお前らに見切りを付けた連中がここに集まった。だから当然ある程度マシだ。
君はWeb板に一生引きこもっていてくれよ。
君自身が荒らしであることを自覚した方がいい。
ちなみにお前、詭弁戦術を用いているが、ちゃんと自覚しているか?
それは本当に止めた方がいい。会社でそれやったら人生終わるぞ。
俺はライブラリ排除の経緯は知らないが、これまでの状況や君の主張を聞く限り、
今後とも排除したままの方が妥当だと思うよ。
これまでの状況について俺がどう判断しているかは既に説明した。
お前が納得しないならそれでよし。出ていってくれ。
俺たちはお前らに見切りを付けて出てきた。そしてム板の死にスレを復活させた。
お前らはよりマシなスレにたかるイナゴ行為/焼畑を行っているに過ぎない。
これも既に言ったが、俺は技術的にもライブラリスレは分離した方がいいと思っている。
そして今のところ君含めて「統合派」はゴミしかいない。再統合する理由が1ミリもない。
>>51
「Webサイト制作初心者用質問スレ」だが、ググったら244までは出てきた。
244を拾い読みした限り、終わる感じではなかったし、
ここまで続いたスレが落ちるなんてのは不自然だから、
板やスレタイを変えてどこかに「移転」したのだと思うがよく分からん。

54:デフォルトの名無しさん
16/07/11 22:02:54.69 DrkgU0D1.net
ライブラリスレを分けるというのは分かるが、排除という言い回しはちょっと……
ライブラリのラの字が出ただけでスレ�


55:`と荒れるのはもう勘弁よ。



56:デフォルトの名無しさん
16/07/11 22:05:56.32 nLBMaq1/.net


57:デフォルトの名無しさん
16/07/11 22:36:16.81 KcY8y3Ff.net
「俺たち」とか「お前ら」とか、一括りにされるのは心外だな
この人(ID:EacXB/Ox)と会話が成立する気がしない

58:デフォルトの名無しさん
16/07/11 23:52:15.03 CD0szFfE.net
>>53
他人を殺人くん呼ばわりする割には、なかなか変わった考え方してるんだな。

59:デフォルトの名無しさん
16/07/12 00:26:09.50 8iCgclQK.net
どの立場だとしても攻撃的な物言いはやめよう。
Webサイト制作初心者用質問スレは244が埋まってそのまま途絶えたよ。
質問スレの住民というのは主体性のある人が少ないものだし
熱心な人がこれまで立てていたのを手放したら続かなかったって感じだ。
>>52
そもそも発案者も「復活が妥当」という意見を出したに過ぎないし
誰かが音頭を取っているわけじゃないんだよね。

60:デフォルトの名無しさん
16/07/12 00:31:39.74 4M8hLvVe.net
復活させました。
Webサイト制作初心者用質問スレ part245 [無断転載禁止]©2ch.net
スレリンク(hp板)
つーか
ごちゃごちゃ言う前にスレ立てればいい。
あとは流れに身を任せればいいだけ。
行動する前に色々考え過ぎ

61:デフォルトの名無しさん
16/07/12 00:48:52.23 umCvEWis.net
>>59
はえーよ乙
>>58が事実ならまずは復活させて様子見だろうね。
とはいえ、そんなんで消滅するのか?という疑問はあるが。
Web板の闇は深い、、、

62:デフォルトの名無しさん
16/07/12 07:30:29.66 e5Ry6Jcp.net
一時期今くらい過疎ったときに廃れたんじゃないの?

63:デフォルトの名無しさん
16/07/12 07:30:47.58 e5Ry6Jcp.net
規制がひどかった時

64:デフォルトの名無しさん
16/07/12 20:30:59.16 zkwaExCl.net
curryメソッドってgoodpartsに載ってるんですが、
これって実装されたブラウザありませんね
なんか、curryメソッドってニーズがなかったんでしょうか?

65:デフォルトの名無しさん
16/07/12 22:58:07.12 8iCgclQK.net
うろ覚えだけど単なるprototypeの拡張例だったと思う。

66:デフォルトの名無しさん
16/07/12 23:23:28.79 umCvEWis.net
>>62
規制なんてあったか?と思ってググったら、これか?
なお244の1000は2015/04/19 00:50:25。
> 3月21日: Apple、専ブラ内広告を規約違反に認定。BB2Cから広告を強制削除
> 上同日: Jim陣営激怒、一時、全レスの末尾に「Think different? by 2ch.net/bbspink.com」を付加
> 上同日: 一時、AppleやiPhoneなどがNGワードになる
> 上同日: NGワードを書き込むと31万秒規制になることが判明
> URLリンク(www.wdic.org)
これは被害者続出だろうな。

67:デフォルトの名無しさん
16/07/13 01:25:57.58 2JhFq5Nw.net
>>63
curryは関数型のスタイルなら使うが
オブジェクト指向型(手続き型)では使わない
たぐいの関数だからだよ。
関数型ライブラリのlodashでは実装されている。
URLリンク(lodash.com)
最近は関数型のメリットや使いやすさも理解されてきたが、
JavaScriptは関数型の能力はあっても、文化としてオブジェクト指向型。
そしてJavaScriptは互換性の問題から勝手に拡張するわけにも行かず、
なるべく少ない関数だけを標準化しようとしている。
標準化に時間がかかるんだろうね。
だから昔は関数型に興味を持たれず実装されず、
今は互換性のために実装されないという流れ、

68:デフォルトの名無しさん
16/07/13 14:22:09.27 ihje395B.net
>>63
「4.14 カリー化」の事?
ただの Function.prototype.bind としか思えなかった
function add (x, y) { return x + y; }
var add1 = add.bind(null, 1);
add1(6); // 7

69:デフォルトの名無しさん
16/07/13 22:50:19.43 2JhFq5Nw.net
>>67
それは部分適用な。
URLリンク(qiita.com)
> カリー化と部分適用はよく混同されるので注意が必要です。
しかもそれthisがnull(グローバルオブジェクト=ブラウザならwindow)に
変更されているから(それがbindの本質的な機能だから当然だが)
カリー化はthisを変更したりしない。
これでbindとかリー化と部分適用の違いがわかるだろ
var obj = (function () {
 function add (x, y) { return this.location + (x + y); }
 var add1 = add.bind(null, 1); // thisのbind + 部分適用
 var curried_add = _.curry(add); // カリー化
 var add2 = curried_add(2); // 部分適用
 return {add1, add2}
}());
obj.location = "obj"
alert(obj.add1(6)); // URL + 7
alert(obj.add2(6)); // obj8

70:デフォルトの名無しさん
16/07/13 23:36:47.96 2JhFq5Nw.net
説明していなかったけど、 _.curry(); は
lodashが提供しているカリー化のための関数な。

71:デフォルトの名無しさん
16/07/14 00:19:27.35 rtzz+yi0.net
>>68
Good Partsのコードではthis値を使っていなかったからnullにしたけど、必要なら該当オブジェクトにbindすればいいよ

72:デフォルトの名無しさん
16/07/14 01:04:10.04 9qkjMq+e.net
>>70
そういう話じゃないですよね。
カリー化をbindと勘違いしてる。なさけないって話ですよ。

73:デフォルトの名無しさん
16/07/14 01:29:39.76 9qkjMq+e.net
> Good Partsのコードではthis値を使っていなかったからnullにしたけど、必要なら該当オブジェクトにbindすればいいよ
>>68の例で言えば、必要なオブジェクトはobjです。
どうやりますか?
> var add1 = add.bind(null, 1); // thisのbind + 部分適用
この行のnullをobjに変えてもcurryと同じ動きにはなりませんよ。
bindは現在のthisとは無関係に固定のオブジェクトに
結びつけるのでbindを使ってcurryは実装できません。

74:デフォルトの名無しさん
16/07/14 01:30:44.10 9qkjMq+e.net
一つ忘れていたので訂正
> var add1 = add.bind(null, 1); // thisのbind + 部分適用
この行の null を obj に変えても this に変えても curry と同じ動きにはなりませんよ。

75:デフォルトの名無しさん
16/07/14 07:02:33.44 ljYKCB29.net
>>68
オレの知ってるカリー化と部分適用の定義と違うんだけど・・・・
>URLリンク(qiita.com)
>関数を引数1つずつに分割してネストさせることをカリー化と呼びます。
>一部の引数を固定化して新しい関数を作り出すことを部分適用と呼びます。
こんな定義始めて聞いた。
「カリー化は引数の数を1つにしますが,
単に引数の数を減らすことを「部分適用」と呼びます。」
(ソース:日経ソフトウェア5月号
基本からしっかり学ぶJavaScipt 第4回)
日経ソフトウェアに載っていた定義で覚えてました。
これって、日経ソフトウェアが間違ってるんなら、BP社に問合せをしようと
思うのですが、いかがでしょうか?

76:デフォルトの名無しさん
16/07/14 08:22:15.00 IlXzE3sd.net
>>73
俺の記憶ではGood PartsのFunction#curryはFunction#bindのthis束縛をなくしたものだが
lodashの_.curryを基準に考えているだけではないのか?
URLリンク(www.oreilly.co.jp)

77:デフォルトの名無しさん
16/07/14 08:51:45.62 nCYaAyyX.net
        ____
        /     \   また俺様流カレーライスの作り方?
     /   ノ    ヽ.\
   /    (●)  (●) \
   |       (__人__)    | __________
    \      ` ⌒´   ,/ .| |             |
__/          \ . | |             |
| | /    ,       | ̄ ̄|n| |             |
| | /   /        | colこ)| |             |
| | | ⌒ ーnnn.    |_ ⊆ソ|_|_________ _|
 ̄ \__、("二).. ̄ ̄└─┘l二l二_|_|__|_

78:デフォルトの名無しさん
16/07/14 14:47:59.60 tXzYxMsc.net
いいんだよ。そんな厳密でなくて。人間なんだから。もっと大雑把に生きようぜ。

79:デフォルトの名無しさん
16/07/14 18:48:55.16 ljYKCB29.net
なんか、curryメソッド(関数)、カリー化、部分適用
の認識がスレ住民同士で異なってるな。
明確な定義がないから曖昧なのか?

80:デフォルトの名無しさん
16/07/14 19:16:49.33 ldGbBaTf.net
カリー化の過程で部分適用されてるだけ
function add (x, y) { return x + y; }
var add1 = add.bind(this, 1); // 部分適用
add.bind(this, 1)(6); // カリー化

81:デフォルトの名無しさん
16/07/14 20:20:57.66 4fZzzaRd.net
>>75
経緯は知らんが、その本は丸々読めるぞ。該当箇所は43ページだ。
URLリンク(bdcampbell.net)

82:デフォルトの名無しさん
16/07/14 22:30:34.64 9qkjMq+e.net
>>78
明確な定義はあるんだが勘違いしている人が
多すぎるってのが問題なんだよ。
カリー化と部分適用が同じだと主張している人、
そして同じだと主張している人を知ったうえで
それは間違いだと言ってる人。
一般論として後者が正しいと思うね。知らずに主張している人と
知っていて主張している人。知っている人の方が信頼できるから。
(もしカリー化と部分適用は違うという主張している人を知ったうえで
同じだと主張している人がいるならば、その話を聞いてから考えるべきことだけど)

83:デフォルトの名無しさん
16/07/14 22:33:41.98 9qkjMq+e.net
>>79
>>68でちゃんと書いてるのに
分かってないのかな?
>  var curried_add = _.curry(add); // カリー化
>  var add2 = curried_add(2); // 部分適用

curried_addっていうのは、curried_add(2)とすることで
部分適用ができる関数。
単なるaddはそんなことはできない。
addからcurried_addを作るのがカリー化
カリー化された関数は、func(1) と書くことで
部分適用ができないといけない。
>>79には、func(1)とすることで部分適用できる関数は存在していない。

84:デフォルトの名無しさん
16/07/14 22:50:25.28 4fZzzaRd.net
つwikiのカリー化
URLリンク(ja.wikipedia.org)

85:デフォルトの名無しさん
16/07/14 22:52:32.54 9qkjMq+e.net
カリー化については関数型言語を知っている人が詳しいよ。
そもそも関数型言語の文化のものだから。
URLリンク(d.hatena.ne.jp)
いろんな定義
「カリー化する」という用語は、すくなくとも以下の3つの意味で使われているようだ。
1. 部分適用という意味
・これは明らかに間違い
2. 「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと
・これはkmizuさんの定義。世間でもよく使われる。
3. 「構造体を一つ取る関数」を「構造体のメンバーを複数の引数にばらし、一引数を取る関数のチェインに直す」こと
・これは僕の定義。というか、Haskellコミュニティの定義。

一引数を取る関数のチェインに直すことがカリー化の定義の一つなので
カリー化した関数が2つの引数を取ることはないのである。

86:デフォルトの名無しさん
16/07/14 22:56:20.75 9qkjMq+e.net
>>83
> カリー化は部分適用と混同されやすい。部分適用とは、複数引数ある関数の引数の一部だけに実引数を適用する操作のことで、
> 上述のd iv(x,y) の例で言えば、 div から inv を導出する操作を指す。
> 一方、カリー化はcdevを導出する操作であり、引数への値の適用までは行わない。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
この部分だな。
curried_addのように「引数を一つだけ取り」「引数が足りなければ関数を返す」ようすることがカリー化

87:デフォルトの名無しさん
16/07/14 23:21:33.55 aCaaCamc.net
オセロの様なマスゲームをhtml+CSS+JavaScriptで作ろうとした場合
どのような流れで作成していくと良いのでしょうか?
知識はあるのですが全部別々で覚えたので作業手順のようなものがよくわかりません。
作成したことがある人がいらっしゃいましたら教えて下さい。

88:デフォルトの名無しさん
16/07/14 23:27:53.27 4fZzzaRd.net
> 最近、スタートHaskellで「カリー化された関数のメリットは何か?」という質問が出た。
> > カリー化の最大のメリットはプログラムの論証をする時にすべての関数が一様に一つの
> > 引数を取ります。それ以外、プログラマ向けのメリットがあまりないです。
> > URLリンク(groups.google.com)
意識高すぎて付いていけませんw
a->a->a をやりたいだけってことか?

89:デフォルトの名無しさん
16/07/14 23:33:46.75 4fZzzaRd.net
>>86
盤から作れ

90:デフォルトの名無しさん
16/07/14 23:41:21.92 ljYKCB29.net
>>86
ゼロからわかる JavaScript超入門 : 河西 朝雄
って本にJavascriptのライブラリなしで
オセロゲームのソースコードまるまる載ってるから
買って勉強したらいい。さっさとアマゾンで買うんだ

91:デフォルトの名無しさん
16/07/15 00:13:51.01 5Bd+7TeC.net
ニコニコ動画にもJavaScriptでオセロを1時間で作ってる人いた
コーディングやバグフィックスが早くて最初見た時は衝撃だったな

92:デフォルトの名無しさん
16/07/15 00:33:08.15 jokpg7ao.net
>>90
数時間で作れるとは思うが、1時間はキツいかな。
ただそういう速さよりは出来が綺麗でないと意味無いから、
俺ならとりあえず1時間考えてから行動だな。
動画、今もあるみたいだが14万再生、この内容にしては結構すごいとは思う。
見る気はないけどw

93:デフォルトの名無しさん
16/07/15 00:37:25.52 A4WbArbj.net
>>80
P43のコードを読む限りではカリー化は引数束縛でしかないとしか読めないな
URLリンク(jsfiddle.net)

94:デフォルトの名無しさん
16/07/15 00:40:55.78 jokpg7ao.net
そういえば見るかもしれない人がいるんだった。URL落としておく。
どうやっていいか全く分からないのなら参考になるんじゃないの。(見てないけど)
少なくとも投稿者はさくさくプログラミング出来る腕前なのは確かだし。
【プログラミング】オセロを1時間で作ってみた【実況解説】
にこにこ/sm8391299
つーか規制対象かよ。

95:デフォルトの名無しさん
16/07/15 00:56:11.42 Sr0bYwg9.net
皆さん有り難うございます。
とりあえず動画見てきます。

96:デフォルトの名無しさん
16/07/15 01:07:30.78 A4WbArbj.net
Good Partsのカリー化は部分適用なので(Good Partsを読んでいる)>>63にFunction#bindを勧めるのは間違ってはいない
該当コードを読んだら>>67が素直な感想だろうな
「これこそがカリー化だ」と主張するなら好きにすればいいが、他人の回答をディスるのは程々にした方が良い
URLリンク(nanto.asablo.jp)
URLリンク(nanto.asablo.jp)

97:デフォルトの名無しさん
16/07/15 01:12:22.21 KdAhu9B/.net
オブジェクト含むシャローコピー
他に何か簡単なのあったらおしえて
var arr = ['a',{x:10,y:20},'b'];
var arr2 = JSON.parse(JSON.stringify(arr));

98:80
16/07/15 01:35:31.15 jokpg7ao.net
>>92
いや申し訳ないがその点に関してはlodash君の方が正しい。
俺は関数型なんてほぼ知らないが。
>>66見れば分かると思うけど、動作しないといけないのは
sum.curry()(1)(2)(3)
とかなんだよ。それが動作しない点で駄目。
何がまずいかというと、その本のコードがcurry化じゃないw
俺が出してて申し訳ないんだが。
その本の作者も混乱しているのか、あるいはその後に定義が変わったのか。
(wikiでもGroovyとHaskellは誤用みたいなこと言っているし)

99:デフォルトの名無しさん
16/07/15 01:40:07.94 jokpg7ao.net
関数型の場合は、引数を一つずつ食っていくイメージなんだ。
だから実装としては内部にクロージャでargumentsを溜め込みつつ、
適用可能なら適用していくことになる。
だからそもそもコードがおかしい。that.applyではなく、this.curry.applyになる。
何度呼ばれても関数を返さないと駄目なんだ。
つってもlodashの実装を見た方が早そうだと思ってみてみたが、
createWrapperで集約され、さらにcreateCurryWrapperだった。
ここで挙げるのには適さない。
>>95の下側の最後、これがまあよさそう。(ろくに読んでないけど)
(なおコードを貼ろうとしたら403くらって駄目だorz)

100:デフォルトの名無しさん
16/07/15 01:41:32.11 yeDfZ4O8.net
>>96
> オブジェクト含むシャローコピー
> 他に何か簡単なのあったらおしえて
URLリンク(lodash.com)
Creates a shallow clone of value.

101:デフォルトの名無しさん
16/07/15 02:09:52.79 bBHS6mCb.net
>>97-98
言いたいことはわかるが、>>68を見てると明らかに原文のコードを読まずに指摘していたようだったからな
Good Partsのコードに言及した回答(>>67)に「カリー化」と「部分適用」の定義の違いを問う(>>68)のがそもそもの間違い
>>63は「Good Partsのコード === カリー化」と認識しているわけだが、そのコードに対しての解は間違ってはいなかった
「カリー化」と「部分適用」の定義説明は全く別個の問題なので、両者が衝突する理由は何もない

102:デフォルトの名無しさん
16/07/15 02:14:10.34 bBHS6mCb.net
>>96
そのコードはディープコピーに見えるのだが、シャローコピーを期待していると認識していいのか
URLリンク(developer.mozilla.org)

103:デフォルトの名無しさん
16/07/15 02:15:12.79 yeDfZ4O8.net
>>100
だがその後の対応がまずかった。
カリー化を本当に知っているのであれば、本が間違っていることに気づいたはずだ。
そして本と同じ間違いをしなかったはずだ。
カリー化と部分適用は違うものというのは関数型を知っているならば
常識的な知識なわけで、部分適用なのにbindでカリー化作ってますよなんて
言うわけがなかったはずだ。

104:デフォルトの名無しさん
16/07/15 02:28:58.26 jokpg7ao.net
>>100
まあ、その指摘についてはその通りだ。
発端が>>63な以上、この際本来の定義はさておき、質問はgoodpartsのcurryコードについてだからね。

105:デフォルトの名無しさん
16/07/15 02:34:01.03 bBHS6mCb.net
その後の中傷合戦はどちらも見苦しくて見るに堪えんし、どうでもいい
質問者に伝えれば済む話で回答者同士で争う必要はない

106:デフォルトの名無しさん
16/07/15 17:32:45.87 JDhjaKhN.net
別に定義なんてどうでもいい。
定義を質問されてるわけじゃないし、そこをはっきりさせないと進まないわけでもない。
自己満足はやめい。

107:デフォルトの名無しさん
16/07/15 22:42:52.53 AtypjOfw.net
カツカレー食いたくなってきた

108:デフォルトの名無しさん
16/07/15 23:53:30.73 jokpg7ao.net
しかし本人達が勝手にやり合っている以上、放置か仲裁くらいしか手はないだろ。
多分正確には>>84も間違いで、
× 「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと
× 「構造体のメンバーを複数の引数にばらし、一引数を取る関数のチェインに直す」こと
○ 「複数の引数を取る関数」を「一引数の関数チェインに出来る『関数に変換する』」こと
だと思うがな。(チェイン化ではなくて、関数→関数変換)
基本ラインとしては、間違いの指摘は悪いことではない。
ここは技術板なんだし、技術的に正しいのは正義だよ。
ただそれをやる必要がある場合と無い場合はあるが。
とはいえ質問には回答が付いているんだし、当人達も回答者なんだから、
後はやりたいようにやらせるしかないだろ。

109:デフォルトの名無しさん
16/07/16 00:52:55.49 xmxD4czQ.net
今回の一件でカリー化と部分適用は書籍、ネットでも書いてあることが
まちまちでこのスレの住民同士の認識も異なることが判明したな。
ブラウザにbindとかtrimメソッドが実装されてるんだから
curryメソッドも実装されたるくる日がくるだろう
currメソッドが実装されたら、javascriptにおけるカリー化がはっきりするだろう

110:デフォルトの名無しさん
16/07/16 00:55:52.92 Opsk5pSE.net
まちまちなんじゃなくて
間違ってる人が多いってこと

111:デフォルトの名無しさん
16/07/16 00:56:58.77 Opsk5pSE.net
> curryメソッドも実装されたるくる日がくるだろう
それはない。JavaScriptはオブジェクト指向
関数型言語の文化を標準に入れることはない。
だからlodashなどのライブラリの力が必要になる。

112:デフォルトの名無しさん
16/07/16 01:48:32.84 NWagl7SB.net
一応言っておくと、84は引用であり、lodash君の認識自体は間違っていない。
彼の言うとおり、間違っている人が多いだけだろう。
とはいえ、そういう現状認識を持てたことは成果だよ。
間違い続けて制御文字君になっても困るし。
(というか彼も絶対何度か言われてるはずだけどな。口頭なら即座に突っ込むだろjk)
俺もcurryが入ることはないと思う。だって使い方が分からんだろ。
そして、trimなんて糞どうでもいいメソッドより、HTMLencodeとかを入れるべきだろ。
なんつーか、JSの標準化委員会はずれてるよな。
(なお、_には入っているの知っているから、念のため)
あとMDNには
> trim はその文字列自身の値には影響を与えません(非破壊メソッド)
とあるのだが、そもそもStringは全部インミュータブルなんだから不要だろこの付け足し。
インプレースのメソッドなんてないよな?

113:デフォルトの名無しさん
16/07/16 05:33:48.16 em2iq9Dg.net
>>110
>>関数型言語の文化を標準に入れることはない
それは言い過ぎ、
ある意味mapやらはそうだし、Promiseも文化
そしてまさにObservableが絶賛策定中だろ
そしてlodashが関数型の文化を提供している?
それはごく一部で基本的にただの関数の寄せ集めなだけじゃん

114:デフォルトの名無しさん
16/07/16 15:31:53.29 em2iq9Dg.net
>>111
スクリプト言語なんだから特定の環境(HTML)に依存するのは間違っているでしょ?

115:デフォルトの名無しさん
16/07/16 15:57:58.64 Opsk5pSE.net
lodashの公式トップからリンクはられているlodash/fpって面白いな。
more functional programming (もっと関数型プログラミング) だからfpか。
URLリンク(lodash.com)
URLリンク(github.com)
> The lodash/fp module promotes a more functional programming (FP)
> friendly style by exporting an instance of lodash with its methods
> wrapped to produce immutable auto-curried iteratee-first data-last methods.
説明は面倒なのでqiitaの記事にまかせるがカリー化することのメリットでもあるな。
URLリンク(qiita.com)
> lodashの各関数について、引数の順序をiterateeが最初になるように、
> あるいは処理対象データが最後になるように変更した上で予め全てcurryingしたもの。

116:デフォルトの名無しさん
16/07/16 18:47:51.72 NWagl7SB.net
>>113
今更HTMLと縁が切れることはないだろ。
>>114
それは
× curry化のメリット
○ 部分適用のメリット
部分適用済みの関数チェインを作りたいだけだろ。
問題はbindがthisをまず束縛しなければならないこと、それを止めて
thisを束縛せず、引き数だけ束縛するメソッド(bind_fp)があればいい。
lodashのpartialがまさにそれに当たる。
実際その件に関しては _.curryは不要で、_.partialがあれば事足りるだろ。
curry化のメリットというのなら、
複数の引き数を一つずつの引き数の関数にばらす事のメリットを引っ張ってきてくれ。
ただ、一般論として、複数の引き数をとる場合はそれが必要だからそうしているのであって、
バラしてどうこう出来ることはないでしょ。
もちろんpartialの一般化がcurryだと考えることも出来るけど、
実際は重要な順に引き数が並んでいるとも限らないから、
好きなところに好きなように適用出来ないと使いにくい。
_.curryはそれが出来るように拡張されているけど、
多分一般のcurryはそんなこと考えてないでしょ。
いずれにしても、俺は部分適用まではいいとして、curryまでは要らんと思うよ。
curryだと多態出来るかもしれないけど、余計見にくくなるだけだと思うし。
問題はbindが「部分適用」ではなくて、this束縛ありきの「オブジェクト指向専用」な点だろ。
あれはついでに引き数も束縛出来るだけ。
thisを使わないならそれでもいいけど、チェインにしたい場合はあれでは無理だよね。

117:デフォルトの名無しさん
16/07/16 19:03:31.32 4AlocGfn.net
確かに部分適用(Function.prorototype.partial)は欲しいな
bindで妥当なthis値を与えて代用してるが、あるなら使いたい

118:デフォルトの名無しさん
16/07/16 19:35:31.24 Opsk5pSE.net
>>115
なに熱くなってるのさw
lodashが関数型プログラミングを
後押ししてるって話をしてるだけでしょwww

119:デフォルトの名無しさん
16/07/16 19:41:03.99 xmxD4czQ.net
もうそろそろ、部分適用とカリー化の話はやめよう。
不毛な争いすぎる。
このROMってる人も困惑してるだろし、
初心者が質問しずらい。

120:デフォルトの名無しさん
16/07/16 20:52:17.20 NWagl7SB.net
>>117
俺はその点は否定してない。
というか俺は君と言い合ってた奴とは違うがそれは分かっているよな?
ライブラリが標準より糞なら存在価値がないだろ。
当たり前だがlodashにも「使える」関数はあるのさ。
本当にそれが便利なら標準化すればいいだけ。
nativeで動くようになるから標準化する意味はある。(速度的な意味で)
で、俺が思うに _.partial, _.escape, _.unescape あたりは使えるよ。
_.curry は要らん。
_.unescapeとかはDOM+innerHTML+textContentでも出来るけど、50倍遅い。
>>116
ガンはそこだよな。thisを束縛するからチェインしにくくなる。
lodashのコードがトンデモwrapperだらけになっているけど、
あれもpartialが標準になればずいぶん綺麗になるだろう。
>>118
基本ラインとしては、ここは質問スレなんだから、
質問はいつ行ってもいいし、
質問によって話がぶった切られるのが嫌なら他スレでやれって事になる。
俺はこの話を引きこもりスレ(情報交換所)でするのは全く問題ないが、
lodash君は布教したいんだから目立つ場所、つまりここでやりたがるだろ。

はいでは次の質問どうぞ。

121:デフォルトの名無しさん
16/07/16 20:53:40.71 Opsk5pSE.net
lodash/fpはすべての関数がカリー化されている。
カリー化されることで便利なライブラリが作れるが、
すでにカリー化されたものが用意されているから
新たなカリー化は不要という理屈なのだろう。
もし標準でカリー化のメソッドがあれば、lodash/fpのような
ものを簡単に作れただろう。lodashにcurryメソッドがあるから
lodash/fpを簡単に作ることができた。
でも、すでに用意されているものを使うだけの人にとっては
curryメソッドが必要なわけじゃない。殆どの人は
カリー化されたものがあればそれで十分なのだ。という理屈なのだろう。

122:デフォルトの名無しさん
16/07/16 20:55:44.15 Opsk5pSE.net
>>119
> 当たり前だがlodashにも「使える」関数はあるのさ。
> 本当にそれが便利なら標準化すればいいだけ。
JavaScriptで標準化されてないから使えるものではないという理屈かな?
でもRubyではlodashで提供されているものとほとんど同じものが
標準化されているんだよね。
よってlodashの関数は「使えるもの」と断言していいだろう。
JavaScriptの標準化能力が低いだけなのさ。

123:デフォルトの名無しさん
16/07/16 20:57:05.79 Opsk5pSE.net
> _.curry は要らん。
Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Procクラス > curry
instance method Proc#curry
URLリンク(docs.ruby-lang.org)
> Procをカリー化します
でもRubyではこれも標準化されている。

124:デフォルトの名無しさん
16/07/16 22:12:46.72 NWagl7SB.net
>>122
partialがねえなw
いずれにしてもcurryは要らんよ。
その例でもそうだが、他サイトも含めて、
curryの例って最初からarrayを渡しておけばいいだけでしかないだろ。
> b = proc {|x, y, z| (x||0) + (y||0) + (z||0) }
要するにそれ以外使い道がないんだよ。
そしてその場合は君ならreduceを使うんだろ。
こういった引き数が「等価」として扱える状況なら、最初からarrayでいい。
そうじゃない場合の例があるかい?
そもそも現実的にその例みたいな間抜け関数は作らない。
当たり前だがarray入力にしないと汎用的に使えない。
引き数は必要だから並んでいるのであって、
対象データ(this)だけ分離したいというのは分かるが、
それ以外の所までバラバラにする意味は無いよ。

125:デフォルトの名無しさん
16/07/16 22:25:22.30 Opsk5pSE.net
>>123
> いずれにしてもcurryは要らんよ。
だからRubyにはあるじゃん?
もしいらないものであればRubyには搭載されていない。
lodashにはpartialがあるから、curryはいらないという理屈なら
まだわかるけどさ。
RubyにもJavaScriptにもpartialは無いのだから
(もちろんbindはpartialではない)
partialかcurryのどちらかは入れる理由がある。
そしてpartialがあってもcurryの替わりににはならないが、
curryがあればpartialの代わりになる。
(だからRubyにはpartialがないのだろう)

126:デフォルトの名無しさん
16/07/16 22:39:17.02 Opsk5pSE.net
というか、lodash/fp 自体がcurry化の良い応用例なんだが。
JavaScriptにはcurryが無いから自分で実装しているけどさ、
関数をcurry化して作られたライブラリがlodash/fpだろうと。

127:デフォルトの名無しさん
16/07/16 23:32:18.92 NWagl7SB.net
>>124
いや君は勘違いしているが、partialとcurryは別物だ。
全ての引き数を指定するのなら同じ物として扱えるが、
引き数指定を飛ばしたい場合にはcurryでは駄目なんだ。
だから、両方あるlodashの実装が正しい。
curryは前から順番に引き数を埋めてしまう。
例を出そう。
範囲付きソートがあったとして、以下とする。
function sort_range(func_sort, start, end, this) // start, end の指定方法はString.sliceと同じ
部分適用してチェインを作る為に、thisは最後だとしよう。
これについて、Rubyのcurryは前から指定個割り付けることしか出来ないから、
var sort_10 = sort_range.partial(_, 10, -10); // 両端10個ずつ以外をソート
の指定がRubyでは出来ない。
使い方としては、両端10個以外に何かする関数チェインがあって、
そこにオブジェクトを突っ込めば結果がでてくるとする。
func_sortはそれぞれのオブジェクトのプロトタイプに指定してあるとする。
this.func_a_10().func_b_10().sort_10(this.sort_func)
という感じ。

128:デフォルトの名無しさん
16/07/16 23:32:57.00 NWagl7SB.net
まあ範囲指定をするのが関数型的には邪道なのかもしれないが、
一般的に言えば、後ろ側だけbindして、前側は後で流し込みたい場合、
curryでは対応出来ない。
結局の所、どちらも「重要な順に引き数は並んでいる」という前提に立っていて、
それがオブジェクト指向ならthis、関数型ならfuncなのは当然として、
指定を飛ばせないことが問題なんだよ。
だからbindでも飛ばせるようになればすべて解決する。
(partialとして使えるようになる)

129:デフォルトの名無しさん
16/07/16 23:34:57.26 NWagl7SB.net
あ、ちなみに、_.curryはそこについては拡張してある。
駄目なのはRubyのcurryな。

130:デフォルトの名無しさん
16/07/16 23:45:48.94 Opsk5pSE.net
>>126
俺はcurryとpartialの話しかしてないよw
curryもpartialもbindも引数を左から埋める関数。
右から埋めたいときどうするかという
curryでもpartialでもbindでもできない話はしていない。
それは別の関数を使えってだけの話だ。
lodashの話をするならば、curryRightが用意されているし、
partialRightも用意されている。

なんか反論きたから何を言うかと思えば。
> いや君は勘違いしているが、partialとcurryは別物だ。
俺は最初からpartialとcurryは別物だといってる。curryがあればpartial可能な関数を作れる(それがカリー化)
からpartialはいらないという意味だ。と言おうとしたら、
> 全ての引き数を指定するのなら同じ物として扱えるが、
> 引き数指定を飛ばしたい場合にはcurryでは駄目なんだ。
引数指定を飛ばしたいならpartialでもだめだろってツッコミ入れる話だったw

131:デフォルトの名無しさん
16/07/16 23:50:46.64 Opsk5pSE.net
あと>>126のコードが意味不明。
センスの無さを感じられるw
範囲付きソート? そんなもん、
範囲を得る関数とソートをする関数に分けたほうが良い。
自分の設計が悪いからできないだけ。

132:デフォルトの名無しさん
16/07/16 23:53:25.82 Opsk5pSE.net
普通に設計したら
list.range(10,-10).sort()
ってなるだろうし。
rangeをカリー化するならば
list.curried_range(10)(-10).sort()
ってなるだろうな。
見てて可哀想になったw

133:デフォルトの名無しさん
16/07/17 00:06:01.31 8ycEuEZy.net
お、一つだけ勘違いしていたw
lodashのcurryやpartialって _ を使って間を飛ばすことができるのかw
URLリンク(lodash.com)
> // Curried with placeholders.
> curried(1)(_, 3)(2);
> // → [1, 2, 3]
でもそれをもってcurryとpartialは違うって言われても、
lodashのcuryも、lodashのpartialも、間を飛ばせるんだから同じだろ。
lodash以外のpartialの話(どの言語の話?)であれば、そのpartialは間を飛ばせないだろうし、
なんで他の言語の一般的なcurryと、lodash特有の拡張されたpartialを比べてるんだ?って話
lodashのcurryとlodashのpartialか、他のcurryと他のpartialを比べろよ。

134:デフォルトの名無しさん
16/07/17 00:06:08.30 o7sDjaLN.net
>>126>>124の「curryがあればpartialの代わりになる」に反論しているだけでは?
Rubyの話にlodashで反論するのは意味不明

135:デフォルトの名無しさん
16/07/17 00:11:11.02 8ycEuEZy.net
>>133
> Rubyの話にlodashで反論するのは意味不明
それをいうなら、Rubyの話にlodashの拡張されたpartialで
話をすすめるのは意味不明。
Rubyに _ で引数省略できるpartialなんてありませんぜwww

136:デフォルトの名無しさん
16/07/17 00:15:21.82 UzC9Qtsn.net
>>129
> 引数指定を飛ばしたいならpartialでもだめだろってツッコミ入れる話だったw
いや俺が想定しているのは飛ばせるpartialだ。が、一般的には駄目なのかな?
とにかく俺が欲しいのは飛ばせるものであって、bindが飛ばせるようになればそれでいい。
例えば何かしらのsymbol指定で飛ばし扱いになるのならそれでいい。
> list.curried_range(10)(-10).sort()
それで元と同じ長さのarrayが欲しい場合、どうするんだ?
頭とお尻に付け直すという記述は単なるチェーンでは出来ないだろ。
ネストして書くのなら最初からチェーンする意味無いだろ。
とはいえ既に言っているように範囲指定は関数型的ではないんだよ。
それはただの例であって、後で前側の引き数を指定出来ないのが駄目なんだよ。

137:デフォルトの名無しさん
16/07/17 00:19:21.34 UzC9Qtsn.net
>>132
Rubyを出してきたのはお前だろ。
そして多分そっちが一般的curryだよ。
lodashのは拡張されている。だから_.partialと_.curryは冗長な部分がある。
Rubyのcurryでは出来ない記述がある。
これはいいか?
俺の例が良いか悪いかは別の話だよ。

138:デフォルトの名無しさん
16/07/17 00:22:04.85 o7sDjaLN.net
> curryがあればpartialの代わりになる。
curryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある

139:デフォルトの名無しさん
16/07/17 00:25:46.50 8ycEuEZy.net
URLリンク(lodash.com)
> // Partially applied with placeholders.
> var greetFred = _.partial(greet, _, 'fred');
> greetFred('hi');
> // → 'hi fred'
知らない人(いないかな?)のために解説しておくと、
curry や partial の 引数の順番を入れ替えるときに使う _ っていうのは
JavaScriptの文法じゃなくて、lodashが使っている変数(lodashオブジェクト)
_.partial の _ と一緒。
_ が使えない環境のために、 var lodash = _.noConflict(); とやると
var greetFred = lodash.partial(greet, lodash, 'fred');
こう書くのが同じ意味になる。
_ で順番入れ替えとか思い切ったことやったなw

140:デフォルトの名無しさん
16/07/17 00:27:15.76 UzC9Qtsn.net
>>137
そういうこった。
partialはbindされたその関数を返す。つまり次は必ず値を返す。
curryは引き数が指定個たまるまでは溜める為の関数を返し続ける。
指定個たまったら初めて値を返す。
だから引き数を全部埋めないのなら動作が異なってくる。

141:デフォルトの名無しさん
16/07/17 00:31:22.05 8ycEuEZy.net
>>135
> いや俺が想定しているのは飛ばせるpartialだ。が、一般的には駄目なのかな?
聞いたこと無いね。
lodashみてみ。_(lodashオブジェクト) で引数省略だってよ。
他の言語でどうやってるのか知りたいぐらいだ。
> とにかく俺が欲しいのは飛ばせるものであって、bindが飛ばせるようになればそれでいい。
> 例えば何かしらのsymbol指定で飛ばし扱いになるのならそれでいい。
null、undefinedにつづいて、また何か似たようなもの作るのかw
>>136
> Rubyを出してきたのはお前だろ。
Rubyのcurryを出してきたのは俺だが、
Rubyのpartialは出していない。そもそもないからな。
だからなんでお前はRubyのcurryとlodashの拡張されたpartialを比べてるんだって話をしてる。
> lodashのは拡張されている。だから_.partialと_.curryは冗長な部分がある。
「だから」が文章としてつながっていない。
> Rubyのcurryでは出来ない記述がある。
Rubyのcurryでは(lodashのcurryでできるが)できない記述がある。
lodashのcurryではあれば、その記述ができる。
そしてRubyにはpartialはない。
という話であればOK。それで何が言いたいのかわからんが。

142:デフォルトの名無しさん
16/07/17 00:32:27.49 8ycEuEZy.net
>>138
> curryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある
それはpartialで引数が足りなければundefinedとして処理されるってだけだろw
curryでもundefinedを与えればよい。

143:デフォルトの名無しさん
16/07/17 00:33:56.29 8ycEuEZy.net
この話をしてるのか?
Ruby で可変長引数の Proc オブジェクトをカリー化する
URLリンク(secret-garden.hatenablog.com)

144:デフォルトの名無しさん
16/07/17 00:34:35.85 UzC9Qtsn.net
>>138
いや逆だろ。
飛ばせないcurry/partialなんて大して使い物にならないのさ。
というかお前はここに気づけない点でザコなんだよ。
だから、大口を叩けるほどの腕前ではないのは確かだ。
あんまり無駄吠えするな。
それはさておき、Rubyコミュニティが気づかないというのも無いと思うので、
nil指定したら飛ばし扱いとか、そういう落ちがある気はするが。

145:デフォルトの名無しさん
16/07/17 00:36:05.41 8ycEuEZy.net
> 飛ばせないcurry/partialなんて大して使い物にならないのさ。
それはおかしいな。飛ばせないカリー化が一般的なカリー化なんだがw
お前関数型言語クラスタに殴り込みに行った方が良いんじゃないか?w
俺はオブジェクト指向言語出身だが、お前らよりもカリー化を分かっている。
とか言ってさw

146:デフォルトの名無しさん
16/07/17 00:37:26.13 UzC9Qtsn.net
>>140
> > Rubyのcurryでは出来ない記述がある。
これは以下相当の記述をRubyでは出来ないと言っているんだよ。
てかお前もマジで日本語何とかしろよ。
> var sort_10 = sort_range.partial(_, 10, -10); // 両端10個ずつ以外をソート (>>126)
後ろ側の引き数だけbindする記述がRubyでは出来ないだろ?

147:デフォルトの名無しさん
16/07/17 00:41:24.42 PyzTEoPA.net
>>143
ちょっとくだらないタイトル思いついたんでスレ立ててきたよw
関数型■引数が飛ばねぇカリー化はただのカレーだ [無断転載禁止]©2ch.net
スレリンク(prog板)

148:デフォルトの名無しさん
16/07/17 00:44:03.91 UzC9Qtsn.net
>>144
> それはおかしいな。飛ばせないカリー化が一般的なカリー化なんだがw
これについては俺もそういう意見だ。つまり、頭の悪いお前でも分かるように書くと、
・一般的なカリー化は飛ばせない
・飛ばせないカリー化は余り使い道がない
この2件についてはいいか?
問題は、関数型()な奴らがカリー化のメリットとして、
「部分適用しやすくなる」とか間抜けなことを言っている点なんだよ。
部分適用したいのなら、部分適用関数、つまり _.partialを用意するのが妥当で、
curryで代用ってのはおかしいんだよ。
curryは多分、あれは関数の形を揃える為に使ったものであって、
プログラミング的に意味があるものじゃない。
プログラムをメトリックス的に静的検査する時、関数の形が揃っている方がいいんだよ。
多分その用途向けだよ。

149:デフォルトの名無しさん
16/07/17 00:44:20.26 PyzTEoPA.net
>>145
> 後ろ側の引き数だけbindする記述がRubyでは出来ないだろ?
それ以前にpartialってメソッドはRubyにないんだが、
Rubyでpartialメソッドが存在しない言ってるのか?
それとも、どうあがいても後ろ側の引数だけ部分適用する仕様の
partial関数を作ることができないって言ってるのか?
自分で作るんだったら
sort_range.partial(:skip, 10, -10)
とかいう仕様にすりゃ作れるだろ。

150:デフォルトの名無しさん
16/07/17 00:46:35.76 PyzTEoPA.net
>>147
・一般的なカリー化は飛ばせない
・飛ばせないカリー化は余り使い道がない
この2件についてはいいか?
その意見はお前の意見だろう?
お前間違ってる個人的な意見に対していいかと
聞かれても困るんだがw

俺に言わせれば
・飛ばせないカリー化は余り使い道がないといってる人がいる
・だけど一般的なカリー化は飛ばせない
・使いみちがないと言ってる人は、みなが一般的なカリー化の話をしてることをどう思ってるのだろうか?
という疑問があるだけだよw

151:デフォルトの名無しさん
16/07/17 00:48:21.01 UzC9Qtsn.net
>>148
俺はRubyは知らないからな。その:skipってのはなんだ?
Rubyにそういう書き方が出来るのならそれでいい。

152:デフォルトの名無しさん
16/07/17 00:48:57.06 zhfBdiNA.net
非同期版しかないメソッドを同期にする為に
var finish=false;
hoge(function(){
//非同期処理コールバック
finish=true;
console.log("finish");
});
while(!finish){}
としてみましたが、いつになっても終わりません
ログも出力されません
ループをなくしたらログは出力されました
非同期なのでループは関係ないはずなのに影響しています
これ絶対ブラウザのバグですよね?Chromeです
間違っている所をどんなに探しても見当たりません
同じようなバグになった人いますか?

153:デフォルトの名無しさん
16/07/17 00:49:43.60 UzC9Qtsn.net
>>149
では君はRubyのcurryは使い道があるという見方なんだな。それはそれでいい。
それで lodash では飛ばせるように拡張されているが、それは無駄だと思うか?

154:デフォルトの名無しさん
16/07/17 00:51:30.43 UzC9Qtsn.net
>>151
シングルスレッドだから。

155:デフォルトの名無しさん
16/07/17 00:53:51.78 PyzTEoPA.net
>>148
結局の所お前が言いたいのは、カリー化は部分適用以外に
使いみちが思いつかないってことだろ?
上の方でlodash/fpってライブラリを紹介した。
このライブラリではすべての関数がカリー化されている。
partialでは「カリー化+部分適用」をしてしまうから
カリー化だけをした関数を作ることはできない。
このライブラリを作ることはできないんだよ。
114 自分:デフォルトの名無しさん[sage] 投稿日:2016/07/16(土) 15:57:58.64 ID:Opsk5pSE [3/12]
lodashの公式トップからリンクはられているlodash/fpって面白いな。
more functional programming (もっと関数型プログラミング) だからfpか。
URLリンク(lodash.com)
URLリンク(github.com)
> The lodash/fp module promotes a more functional programming (FP)
> friendly style by exporting an instance of lodash with its methods
> wrapped to produce immutable auto-curried iteratee-first data-last methods.
説明は面倒なのでqiitaの記事にまかせるがカリー化することのメリットでもあるな。
URLリンク(qiita.com)
> lodashの各関数について、引数の順序をiterateeが最初になるように、
> あるいは処理対象データが最後になるように変更した上で予め全てcurryingしたもの。

156:デフォルトの名無しさん
16/07/17 00:54:28.92 zhfBdiNA.net
>>153
マルチスレッドです

157:デフォルトの名無しさん
16/07/17 00:54:55.25 zhfBdiNA.net
javaで同じような事をしたら出来ました

158:デフォルトの名無しさん
16/07/17 00:54:59.72 PyzTEoPA.net
>>152
> それで lodash では飛ばせるように拡張されているが、それは無駄だと思うか?
「便利なもの」が「より便利なもの」になった。
「より便利なもの」の部分がなければ「便利なもの」になるだろう。

159:デフォルトの名無しさん
16/07/17 00:56:17.69 PyzTEoPA.net
>>150
> Rubyにそういう書き方が出来るのならそれでいい。
じゃあそれでいいということで話は終わりだ。
まったく何が言いたいんだかw
Rubyにはpartialが無いって言ってるのに
なんでlodashのpartialと比べるんだか。

160:デフォルトの名無しさん
16/07/17 00:56:59.12 zhfBdiNA.net
c#ならTask&Waitで余裕でした

161:デフォルトの名無しさん
16/07/17 01:03:22.24 UzC9Qtsn.net
>>154
いや話がおかしな事になっているぞ。
全てカリー化された世界があるのなら、それはそれでいいんだよ。
Haskellがそうだし、lodash_fpもそうならそれでいい。
> partialでは「カリー化+部分適用」をしてしまうから
これが間違い。
partialはカリー化しない。(当然fpが付いてない方のlodashな)
>>157
無いよりましって考えか?それならそれでいい。
ただ俺はRubyのcurryなら要らないし、_.partialなら欲しい、ってだけ。
_.curryは_.partialの代用にはなるけど、記述が冗長になるだけだから、
_.partialだけでいい。
>>158
:skip ってググッても出てこないが。知ってたらURLくれ。

162:デフォルトの名無しさん
16/07/17 01:35:44.19 o7sDjaLN.net
>>141
> curryでもundefinedを与えればよい。
内部的にundefinedで処理をしていればそれで等価だが、arguments.lengthで分岐処理していれば等価ではなくなる

163:デフォルトの名無しさん
16/07/17 01:51:40.48 UzC9Qtsn.net
>>141
何かと思えばそれも明確な間違いだな。
undefinedを指定したらundefinedという値がバインドされるだけ。
指定してないことにはならない。例えば
func.bind(undefined)
ならundefinedがバインドされ、結果的にwindowが与えられるようだ。
これは後からcall等で与えても上書き出来ないんだよ。
てか真面目な話、お前はもうちょっと書いた方がいいんだよ。
基礎は出来ているから、後は書けよ。

164:デフォルトの名無しさん
16/07/17 03:25:10.13 PyzTEoPA.net
>>161
> :skip ってググッても出てこないが。知ってたらURLくれ。
なんかお前勘違いしているようだなw
URLリンク(lodash.com)
> // Partially applied with placeholders.
> var greetFred = _.partial(greet, _, 'fred');
> greetFred('hi');
> // → 'hi fred'
partial の _ って何かわかるか?
これはただの変数だぞ。
特殊な変数を作ってそれを渡されたときだけ
特別扱いするのならなんだってできるよな?

165:デフォルトの名無しさん
16/07/17 03:26:39.06 PyzTEoPA.net
>>162
> undefinedを指定したらundefinedという値がバインドされるだけ。
> 指定してないことにはならない。例えば
> func.bind(undefined)
あのさ、bindの第一引数は、thisをなんに固定するかなの
二番目以降とは扱いが違うの。それぐらい分かれよw

166:デフォルトの名無しさん
16/07/17 03:28:33.37 PyzTEoPA.net
分かってないようだが、bindは特別な第一引数があるから
今話してるpartialとは違うものなんだわ。
> curryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある
partialの話をしてるのに、bindを持ってきて、bindの第一引数は~(partialにないもの)
とか言い出すのって、意味がわからんというか卑怯な行動というか、
お前ほんとに何を主張したいの?

167:デフォルトの名無しさん
16/07/17 03:39:02.29 PyzTEoPA.net
>> curryはlength分の引数を与えないと処理が終わらないが、partialは終わらせることが出来る、という違いがある
> それはpartialで引数が足りなければundefinedとして処理されるってだけだろw
> curryでもundefinedを与えればよい。
さて反論ついでにこれの検証でもしてみましょうかw
function foo(a, b, c) {
  return a + ':' + b + ':' + c
}
var foo1 = _.partial(foo, 1);
console.log(foo1(2)); // 1:2:undefined
var foo1 = _.curry(foo)(1);
console.log(foo1(2, undefined)); // 1:2:undefined

はい、たしかにpartialはundefinedとして処理されるだけ。
curryでもundefinedを渡すことで同じことができました。
なお、こうすることでもっと近い動きになりますね。
var foo1 = _.curry(foo, 2)(1);
console.log(foo1(2)); // 1:2:undefined
console.log(foo1(2, 3)); // 1:2:3

168:デフォルトの名無しさん
16/07/17 03:54:11.01 UzC9Qtsn.net
>>163
いや既存の関数を組み合わせるから意味があるんだろ。
CSSみたいに予約語で :before とかがあるのなら意味があるが、それなら意味無い。
てかお前話について来れてないし、それ以前に関数型を理解出来てないな。
>>164
ではRubyのcurryで飛ばして指定してみろ。出来ないだろ。
(第1引き数を指定せずに第2引き数を固定する)
こちらも話について来れてない。
対象がthisか引き数かなんて関係ないんだよ。
当然bindかreplaceかcurryかも関係ない。
てかお前、結局自分の間違いは絶対に認められない馬鹿なのね。
そりゃお前荒らし扱いされるよ。
>>165を見てもお前は理解出来ていない。
>>161は正しいことを言っている。(確認はしていない)
ただそれは余りないから、俺がもうちょっとマシなケースを付け足しただけ。
いずれにしても、卑怯なのはお前だよ。
日本語が不自由なら、何度も読み返してまっすぐ回答しろよ。
そして自分の間違いを認めろ。
いちいち揚げ足をとるのは俺の趣味じゃないからしないけど、沢山間違えているよ。
そしてお前の間違い雅言院のくせに無駄吠えが多い。
実力がある奴は無駄吠えしないものだよ。お前が小物であることは間違いない。
JavaScriptにおいては、undefinedを指定するのと、何もなくて結果的にundefinedなのは、
扱いが違うんだよ。俺たちはそれを言っている。お前は多分このことを知らない。
だからundefine指定すればいいとかいう寝ぼけた回答が出てくる。
>>166を見ても、お前は根本的に分かってない。

169:デフォルトの名無しさん
16/07/17 03:59:07.76 PyzTEoPA.net
>>167
> ではRubyのcurryで飛ばして指定してみろ。出来ないだろ。
だからなんでlodashの特殊機能ができるかできないかの話をしてるんだ?
それが意味不明だって話をしてるんだろ。
Ruby版lodashを作ればいいだけだろ。

まずなお前は、コードを書け。書いて証明しろ。
お前がやってるのは「分かってない」って言うだけだろ。
何が分かってないのかも言えやしないw

170:デフォルトの名無しさん
16/07/17 04:00:58.88 PyzTEoPA.net
話について来れてない~
認められない~
関係ない~
わかってな~い~
間違えてるよ~
知らない~
何回言ってるんだかw
否定するだけで、何が正しいのかを一つも書いていない。

171:デフォルトの名無しさん
16/07/17 04:05:21.46 PyzTEoPA.net
lodashのcurryは、いろいろおもしろいことできるもんだなw
function foo(a) {
  return Array.prototype.slice.call(arguments).join(':')
}
var foo1 = _.curry(foo, 2)(1);
console.log(foo1(2, 3, 4, 5));

172:デフォルトの名無しさん
16/07/17 05:17:29.10 o7sDjaLN.net
curryでこのコードは実装できない
URLリンク(jsfiddle.net)
故にcurryはpartialの代替にならない

173:デフォルトの名無しさん
16/07/17 05:41:33.47 uL5p4xyf.net
>>JavaScriptにおいては、undefinedを指定するのと、何もなくて結果的にundefinedなのは、
扱いが違うんだよ。
正しくは、引数において、undefinedを指定するのと、何も指定しないのとは扱いが違う部分がある、だろう。
結果的にundefinedを参照する部分になってしまうと違いはない。
まあとは言え標準仕様もだいぶそういう記述じゃなくなってきたし、
全体的な雰囲気で言うと『JavaScriptにおいては~』って感じじゃなくなったけどね。

174:デフォルトの名無しさん
16/07/17 06:20:05.19 PyzTEoPA.net
> 正しくは、引数において、undefinedを指定するのと、何も指定しないのとは扱いが違う部分がある、だろう。
だからなに?としか言いようがない。
curryでもundefinedと何も指定しないのの
区別はつくんだから同じ話。

175:デフォルトの名無しさん
16/07/17 06:22:53.14 PyzTEoPA.net
>>171
実装できたな。
URLリンク(jsfiddle.net)
お前が何を言いたいのかさっぱりわからない。

176:デフォルトの名無しさん
16/07/17 06:29:22.54 PyzTEoPA.net
すまんすまん。
arguments.length = 0 と > 3 の場合を忘れていたなw
URLリンク(jsfiddle.net)

177:デフォルトの名無しさん
16/07/17 06:30:28.09 PyzTEoPA.net
確認用コード消し忘れてたw
URLリンク(jsfiddle.net)

178:デフォルトの名無しさん
16/07/17 07:56:59.16 pSsgY/Tx.net
>>151-156
JSでは、ブラウザ(実行環境)側のGUIスレッドと、
君が書いたJSのソースコードの、2つのスレッドがある
while(true){}のような、無限ループをすると、君が書いたJSから、
ブラウザ側へ制御を渡す、タイミングがないから、描画もされない。
これを実行環境を除いて、シングルスレッドと言う
function f(){
~処理
setTimeout(f, 0);
}
一方、setTimeoutを使うと、イベントキューに投入だけして、関数fは、すぐにリターンする。
関数はスタックに積まれていないから、10万回以上再帰しても、スタックオーバーフローにならない
関数fがリターンしたら、ブラウザ側へ制御が移って、画面描画・入出力が行われ、
イベントキューから、次のイベントを取り出して、処理する
setTimeoutに、0msを指定しても、必ず一旦、ブラウザ側へ制御が移るので、ブラウザが処理できる。
ただし、0msを指定しても、実際には最低でも、4msかかる

179:デフォルトの名無しさん
16/07/17 08:08:36.38 zhfBdiNA.net
>>177
つまりwhile(true){}をしている間は排他処理かなんかでGUIスレッドがロックされているんですね
でも2つのスレッドといっても非同期関数を呼び出したら沢山スレッドが出来るはずです

180:デフォルトの名無しさん
16/07/17 08:56:27.15 pSsgY/Tx.net
沢山スレッドが出来ても、無限ループを抜けて、関数もリターンしていないと、
ブラウザ(実行環境)側へ制御が移らず、
結局スレッドも作られないから、シングルスレッドと同じになる
非同期という意味は、実行環境のイベントキューへ、
イベントを投入だけして、関数fは、すぐにリターンする
そこで一旦、ブラウザ側(UIスレッド)へ制御が移って、様々な処理をこなせることが重要

181:デフォルトの名無しさん
16/07/17 10:07:12.11 zhfBdiNA.net
>>179
つまり簡単に言うとjavaとは違うという事ですか?

182:デフォルトの名無しさん
16/07/17 10:45:47.12 pSsgY/Tx.net
画面があるものは、全部同じ。
Androidでもそう。
UIスレッドと、自分の書いたソースコードの、2つのスレッドがある
ゲームループも同じ。
1秒に30フレームなら、33.3ms内に、自分のコードの処理を終わらせて、
UIスレッドに制御を移さないと、画面が再描画されず、駒落ちする
自分が書いたソースコードの部分は、シングルスレッドになるから、
どこかでUIスレッドに制御を移さないと、イベントが処理されない

183:デフォルトの名無しさん
16/07/17 10:50:30.76 UzC9Qtsn.net
>>176
いやお前それ出来ていないし。
出来てないって分かってないのお前だけだし。
というか、お前が日本語分からない病を発症するのは自分が都合悪い時だけだよね。
そりゃやっぱり荒らしだよ。
馬鹿なお前の為に、俺たちは具体的に色々用意しているわけだが、
それを理解できないようならさすがにもう話は無理だ。
お前は表面的な読み方をしている。その単レスしか読めてないんだ。
なんでその話が出てくるのか理解出来ていない。
煽り抜きでガチのアスペなのかもしれないが。
俺たちはおかしな論理を展開していない。
前の話が通じなかったから別の言い方という至極当然のことを行っている。
もっと前のレスを読み直して、例えば>>171にしても何でその話が出てくるのか確認してから回答しろ。
お前は>>171しか見てないから話がずれる。

184:デフォルトの名無しさん
16/07/17 10:56:11.88 UzC9Qtsn.net
>>172
俺が言いたかったのはundefined指定しても飛ばし扱いにはならないって事ね。
まあそちらの言い分はその通り。

185:デフォルトの名無しさん
16/07/17 11:11:11.44 UzC9Qtsn.net
>>177
> JSでは、ブラウザ(実行環境)側のGUIスレッドと、
> 君が書いたJSのソースコードの、2つのスレッドがある
俺は詳しくないが、多分それはnodeの場合で、ブラウザのJSの場合は合わせて一つだと思う。
だから無限ループしたらブラウザごと固まる。
> ただし、0msを指定しても、実際には最低でも、4msかかる
これは環境による。というか最低4msかかる環境はかなり稀だと思う。
>>178
> 非同期関数を呼び出したら沢山スレッドが出来るはずです
これが間違い。
非同期関数は一つのスレッドによって順番に非同期に処理される。
という言い方だと余計混乱するかもしれないが、
非同期処理するスレッドが1つしかなく、それは同期処理しているスレッドと同じ物なんだよ。
だからそもそもスレッド生成しない。
全てを一つのスレッドが処理していくだけ。

186:デフォルトの名無しさん
16/07/17 11:15:00.98 UzC9Qtsn.net
>>181
> UIスレッドと、自分の書いたソースコードの、2つのスレッドがある
繰り返すが、JSの場合はそれは違う。
とはいえそれ以外の部分は基本的な考え方ではあるし、
そちらの言い方の方が相手に通じるかもしれないが。

187:デフォルトの名無しさん
16/07/17 11:37:20.37 UzC9Qtsn.net
>>181
これな。
URLリンク(please-sleep.cou929.nu)
不幸なことにこの現象が発生するのはIEだけで、他は問題ない為、
IEのバグだということになっている。
要するに、仕様上はJS側の実行状況を待って描画しないといけないわけではなく、
実際に独立して描画しているブラウザもある。
多分そちらの言っているUIスレッドってのはこれのことだろ?
それらとJSスレッドは同期しておらず、同期しろという仕様もない。
とはいえ現実的にはchromeやFFは同期しているわけだが。
まあ、質問者にはそちらの説明で十分だとは思うが。

188:デフォルトの名無しさん
16/07/17 11:49:36.13 PyzTEoPA.net
>>182
> いやお前それ出来ていないし。
> 出来てないって分かってないのお前だけだし。
いやできてるでしょw

話について来れてない~
認められない~
関係ない~
わかってな~い~
間違えてるよ~
知らない~
出来てない~ ← NEW

189:デフォルトの名無しさん
16/07/17 12:23:25.28 PyzTEoPA.net
ID:UzC9Qtsnって自分で言うとおり本当に詳しくないなw
>>186とかさ、いきなり全く関係ない
リンク持ってきて本当に意味不明w

190:デフォルトの名無しさん
16/07/17 12:42:49.70 BOb01YTD.net
>>176
lodashのcurryは第二引数でlengthを指定可能だが、第二引数に0を指定したらもはや「部分適用」だな
URLリンク(lodash.com)
>>171は「カリー化で部分適用は代用できない」といっているのだろうから、言葉が通じてない
rubyも引数の数を指定可能なようだから「部分適用」を実装可能だが…
URLリンク(docs.ruby-lang.org)
この実装が一般的なのかどうかは知らんが、ID:PyzTEoPAはlodashの実装が絶対的なものと認識しているようだな

191:デフォルトの名無しさん
16/07/17 12:49:22.29 UzC9Qtsn.net
>>187
>>161>>171を読んで>>176は完全にアスペだぞ。煽り抜きで。

192:デフォルトの名無しさん
16/07/17 13:09:17.87 PyzTEoPA.net
>>189
> lodashのcurryは第二引数でlengthを指定可能だが、第二引数に0を指定したらもはや「部分適用」だな
そのとおりだが?
だから curryで見事、partial(部分適用)を実装してみせただろ。
curryがpartialの代替になった。
> 171 名前:デフォルトの名無しさん[sage] 投稿日:2016/07/17(日) 05:17:29.10 ID:o7sDjaLN [4/4]
> curryでこのコードは実装できない
> URLリンク(jsfiddle.net)
> 故にcurryはpartialの代替にならない
curryの第二引数を0にしたらpartialの代替になるな。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch