はてなキーワード: 兆候とは
だらしない。朝、起きられない。部屋が片付けられない。
今やろうとしている仕事を後回しにして、ずっとネットウォッチ。
自分が抱えている問題はたくさんあって、これらはそのほんの一部だ。
そのこの問題はすべて関連したもので、最終的に、ひとつの大きな根本的な原因がある
…ような気がするのだけれど、それが何か分からなくて何から手をつければよいのかわからない。
でも、そのひとつをを解決さえすれば、多くの問題が芋づる式に解決して、私はもっと幸福になれるとどこかで信じている。
そもそも、“ひとつの根本的な原因ある”という考え方自体が幻想なのだろうか。
>外見
決して美人ではないが外見のせいではないと思う。
しいて言うなら運動できない・食べ過ぎるせいでコントロールできないことがちょっと自己嫌悪。
それは自分でも大いに疑って現在進行形で色々調べている。ADDとか愛着障害の傾向がありそう。
ただ、社会生活できないほどではないし、
自分が障害だと分かって腑に落ちて楽になる、という人もいると思うけど
自分はリベラルではなくガチガチの保守だと自認していて、かつクルーグマンではないけれどもミクロ経済学もマクロ経済学も一通りやっているのだけれど、デフレを退治しさえすればよい的な主張の妥当性が分かりません。何故日銀の信用失墜を心配したり、長期金利の上昇を心配することがトンデモなのでしょうか?デフレ退治の結果が悪性インフレやスタグフレーションにならないという根拠はどこにあるのでしょうか?今はその兆候が見られないことを心配することはトンデモだということなのでしょうか?自分はたまたまヨーロッパの経済危機が世界的には遥かに深刻だから日本が今のところ助かっていだけだと思っているのですが。
景気が悪い時は下がるしかない。上がってもただの調整ですぐまた下げる。下がってきたから買うは負ける人の典型。
もっと下がって、塩漬け、ナンピン、追証、退場が王道のパターンである。
今みたいに株価が上がるか下がるか分からないような時期には手を出さない方がいい。
上がりそうな兆候が見られるまでは。(上がりそうな兆候ってのも見極めが難しいんだが…)
1~2週間くらいのスパンで、上がるときはガンガン攻める、とことこ行くとこまで上がってから売る。
予想が外れて下がったら、躊躇せず即売る。
思うように株価が上がらない下がりもしない値動きの無い株も1週間くらいで見切りつけて売る。で、次の株を買う。
ちなみに今は株買ってるが明日全部売却する予定。しばらく様子をみる。
受託中心のIT零細企業に勤めているのだけど、技術に対する学習意欲について考えている。
技術力・・・開発力の維持向上ってのは、受託中心だとやはり重要な部分で、新規顧客獲得は営業による力が大きいところはあるけど、プロジェクトの成功及びそこからの継続受注の正否は開発力によるところが大きい。
また、開発力の低下はプロジェクト遅延を招き、予定していた請求が徐々に後ろ倒れになるのは、経営への圧迫要因となる。
学習意欲を3段階に分ける。
ある程度のブランド力だったり、手掛けている事業が興味を引く者でないと、学習意欲Aは殆ど集まってこない。
それまではそこそこのブランド力がある会社だったので学習意欲Aのものが集まってくる状態だったのだが、IT零細企業の人材募集の現実は相当厳しい。
「環境関係なしに学んで技術力を維持してくれる人」というのはいるところには沢山いるのだが、そういう人材を今の会社で採用できるとはあまり考えないほうがよい。
学習意欲Cは「向いてない」人だから、技術者募集としては論外とする。
多勢を占めるのは学習意欲B、「最低限の技術的センスはある。本人が学習を続けてくれれば更に伸びる」というパターンだ。
勉強会や書籍の経費の負担はしてくれる(ただ、恐ろしいことに学習意欲Aは「自分のことだから」と経費の自己負担は気にかけない人々もいる)。
状況が上向きだと感じたとき、人はポジティブに行動する。学習意欲も自然に上がる。
こういうとき、管理者は何もすることがないので楽だ。そのへんの小学生でも勤まるだろう。
今の職場の話になると、ここ何年か賞与ゼロの年が発生している。
当初、「利益がないんじゃ、賞与ゼロも致し方ないでは?」と思っていたのだが、最近考えが変わってきている。
個人に年間目標などを書かせるということも一時期はしていたのが、それもいつの間にか廃れてしまった。
賞与に差はつけられるのだが、それは部署毎の売上を反映しており、個人の貢献度というものはあまり考慮されてない。
そもそも「公平に」賞与ゼロというのはあまりよい施策ではない。
つまり「プラスの部署があっても、マイナスの部署が多ければ、賞与ゼロになる可能性がある」ということだ。
プラスを出してきた部署にとって、これはあまりいい兆候ではない。
短絡的に考えれば「やってもやらなくても結果は変わらない」という平行状態に陥る。
こういうとき、学習意欲Bに対する「もっと色々学んで」という語りかけが難しくなる。
「学んだ結果」に対する金銭的報酬のルートを示すことができない。
「労働集約である限り、個人の仕事の質が高まれば、利幅が増える」とは思っているのだが、「結果が同じであれば、技術の幅が広がっても、業務の質量が増えて大変な思いをするだけ」という自己防衛が働く。
金銭に依存しない動悸確保の手段を考えたほうがよいかもしれない。
学習意欲Bに対し、部下をつけるとか?
(部下に対し技術的指導を行う場合、上司がある程度の技術力を維持する必要があるので)
ただ、「この先も報酬が上がる可能性があまり考えられないのに、なぜ自分がそういう業務も背負わなければならないのですか?」と断られそうだな。
そもそも経営含めて状況が平行状態なのだから、増員というのは懸命な選択ではないと思う。
人事的措置も考えるべきなのだろうか。
私は小学5年生か6年生の頃から夢精をしていた。一ヶ月に一回くらいの頻度で夢精は訪れた。私は夢精の事実を親には明かさなかった。
夢精を体験したはじめの頃は次のように考えていた。何か妙な感じに起きてしまってペニスが痛くて漏らしてしまったような感覚はあるが、どうやらお漏らしをしたわけではないらしい。かと思えば、パンツは湿っている。どうにもべたつく。しかし大したことはなさそうなのでパンツをティッシュで拭いてそのままにしておいた。なんとなく親には言いづらかった。
私は夢精の正体を知ることなく更なる月日を過ごした。夢精を体験してしばらくたってからは次のような感想を持っていた。どうやらペニスが痛くなってパンツを湿らしてしまうこの現象はエッチな夢を伴うらしい。トイレでパンツを下ろしてみると股に白い粘っこいものが(はんぺんを細く切ったようなものが)はりついているので、これはなんだろう、自分の身体はどうなってるんだ、と思いながらも深く考えず(みごとな思考停止だった)、卑猥な夢を伴うだけにやはり親には相談できないこととして捉えていた。パンツが湿ってしまうのは困りものなので卑猥な夢を見ないように寝る前に無心になるように努力する夜が続いた。久々に夢精をしてしまったときなどは、(ああ、もうそろそろ訪れてもしかたがない頃だと思っていたんだ)とかなんとか思っていた。ペニスが痛くなるのも困りものだった。夢の中ですら、(あ、やばい、これはあれだ、あれがやってきたんだ、起きたらパンツが濡れているあれだ)と今に目が覚めることを予感することがあった。いっそ何か堪えるような態度はやめて衝動的な感覚に身を任せていれば少し気持ちいいのだということに気付いていた。しかしペニスは痛かった。
そんなこんなで夢精は隠蔽され続けた。中学一年生の頃、保健体育の時間中にスライドで一度だけ夢精に関することが登場したことを覚えている。私は、あれのことだと察せられたが、スライドから理解できたことは「そういう現象が起こりえます」ということであって、セックスの存在も対処法も知らぬまま分からぬままであった。クラスメイトとはそのことについて話し合うことはなかった。
中学二年生の冬になって私は自慰を発見した。休日のことだった。家族は借りてきたビデオを居間で見ていたように思う。私だけは寝室にいて、毛布をかぶっていた。毛布の感触が心地よく、なにかむらむらとしていた(と思うのだが、確かな記憶はない)。その心地よさに従ってパンツを脱いでいた。下半身は素っ裸だった。そうしているうちに股間で激しい脈動を感じた。それは脈動ではなかいことは当時のその瞬間も理解していたように思う。何かの兆候であった。その兆候はすでに快楽を伴っていた。多分、私は、とてつもないことが起きると予感していた(やはり記憶は定かではないがこの瞬間に夢精のことを思い出し似たような感覚だと悟っていたのではないかと推察する)。とてつもないことというのは、肉体の一部を切除するがごとき取り返しのつかない代償によって野太く広がる快楽を得ると仮定したならばその取り返しのつかない代償を支払うことにあまりに無思慮でいられてしまうというような意味で、とてつもなかった(つまりは理性の針が振り切れて本能が私を満たしたことを客観的な私がヤバイと呟くも為す術もない様)。毛布は精液で汚れた。これまた記憶が怪しいが、そのときの精液は白ではなく鼻汁のように黄色かった。
私はその黄色っぽくて粘度のあるものと内に満たされた快楽を見つめながら、謎はすべて解けた、と思っていた。これが夢精の正体であり、生命の鍵であり、これから先私を楽しませてくれる素敵な男性的機能であることのどれをも瞬時に理解していた(そりゃそうだ、夢精をし始めてから最低でも二年経っているのだから、無意識的な考えがあったのだろう。ちなみに、これ以後の夢精は激減した。自慰を覚えてから今までにした夢精の回数は3??4回)。
だが、成人して久しい今になって、他の人たちはどのようにはじめての射精を発見(あるいは発明)したのだろうかと疑問に思った。
夢精して、親に相談して、その性的な機能を教わった人はいるのだろうか?
友人と話し合って(そして触りあって?)、発見した人はいるのだろうか?
法事の度に、向こうの実家のしきたりがどうやとかお供えがどうやとかで揉めて、
ほんとうにうっとうしくて死にたくなる。
死にたいっつうか故人を偲ぶとかそんなんが全部ぶっとんで悲しくなるしもう勝手にせいやと思う。
お葬式が終わってから、幾日も経たないうちに私をそんなこと(香典の額の折り合いなど)で何時間も罵倒した夫を
わたしはいっしょうゆるさん。
世間体とか自分が嘗められたくないとか立場とかそんなことばっかで私の気持ちなんか知らんくせによう言うたな
ほんとによう言うたな。
この場合はいくら包むのがいいのか、多すぎても少なすぎても駄目、こんなんで疲弊するのは間違ってる。
もういや!!!
今から10年ほど前になりますが、あんまり物忘れが激しくなってきたのでタウンページで調べた近くの精神科に受診しにいったことがありました。
そんな深刻というほどでもなかったのですが、もっとひどくなってきた時のためにも、精神科というのがどういうところなのか知っておかなければと思いまして。
元々忘れっぽい性格なんですが、だんだん実被害がでてきまして、切符を買うときには券売機に1万円いれて380円だかの切符を買ってお釣りを取らずに電車に載ってることが度々。そしてその切符もいつの間にかなくなっていて、どんなに探してもでてこない不思議。しまいには、テレビの方に頭を向けただけでリモコンに触ってもいないのにテレビがついていたり、ティッシュ箱が近くに移動していたりしてました。超能力だったら嬉しいですが、可能性の高いのは時間を意識がスキップしてしまってるな、と思いました。
で、自分で精神科に行って、先生が最初に言ったのは「夜、眠れなかったり食事が喉を通らないということがありますか?」。常に寝不足状態で何時でも寝れる状態だし、寝たら全てを忘れる性格なので悩みも解消して食欲もあります。寝て、食べれるなら病気ではありません、と言われました。うつ病なんて一言も言ってないのに・・・。それから先生の、仕事してればつらいもの、仕事やめるしかない、という話が一方的に続き、最後に「薬、欲しいんでしょ?」と言われ向精神薬(?)を処方してもらいました。
結局、こちらの話は聞いてもらえず、とりあえず薬を持って家に帰ったわけですが、家に着くと薬は消えていました。
どうも寝不足が原因みたいなので、今では危険な兆候がでてきたらすぐ寝るようにしてます。
何も解決できなかったわけですが、精神科の先生だからといって話を聞いてもらえるわけではないし、自分で解決しないといけないな、と勉強になりました。
人形町にあるクリニックでホールボディカウンター計測してもらってきました。
計測自体は椅子に座ってるだけなので5歳の息子もやってもらえました。
今まで男の子1人だけ測れなかっただけで子どもでも測れたそうです。
覚悟していた私の中のこのくらいかな?の数値よりは遥かに少なかったものの、やはり出ますね。
2012年5月に2011年末の2ヶ月の西日本保養を経て息子が尿検査した時は、0.097bq/L(CS134と137あわせて)だったのに対して今日は5.4bq/kgでした。
週2で25分ずつやってる半身浴が効いているっぽいです。
尿検査は、排出されているという良い兆候なのか、平均してそのくらいなのかということが分かりづらいため、参考値にしかならないけれど、この時と同じ生活しているので多分保養効果で少なかったと考えられるのかな?
心臓に集まるセシウムは10倍という参考値がネットに出ていたのを見かけたのでそれを考えると50bqくらいという恐ろしい数値になります。
でもここに計測に来る人の平均値は8bq/kgくらいということで、
全体の量は100-300bqとのことなので、息子の106.68というのは平均値のなかでも一番低いレベルに属する値でした。
・保養の頻度を増やす
くらいだけれど、現実的に難しいので
やっぱり、温める、汗をかく、リンパマッサージが良いそうです。
・どうしてものときはEMX-goldを30mlくらいに増量して飲む
・添加物を取らない
・ジャンクフードを食べない
・酵素を取る
・麻炭パウダーを食べる
・寿元を飲む
・UMOを飲む
・週2で半身浴25分
・年間40日くらいは西日本で過ごす。
・常にマスク
要点は、放射能を入れない、出す、酵素を使うものを摂取しない、酵素を取る。です。
沖縄の高校生が200bqだったり、関東で気をつけている人よりも大阪、博多、沖縄とかで気をつけていない人の方がたくさん溜まっていることがあるそうです。
気をつけているひとが少ないので汚染地帯の食材をわざわざ運んで売ってるんでしょう。
今日は二人で8000円
自分の状況を整理するために殴り書きをしてみる。
周りの会話のテンポが早くて仕事の話はおろか雑談もままならない。
多分頭の回転が遅いせい。
そのせいで会話中の主語を掴めなくて頓珍漢な返答をすることが多々ある。
相手の冗談に気づかない事もよくある。
◼︎メンタル
大した指摘でもないのに突っ込まれる事に非常に弱い。
アイディアの玉数を稼ぐ仕事なのに性格のおかげで完璧主義っぽくなる。無駄。
メンタルが弱い。臆病。自分の小さなミスも重く捉えすぎて凹む。
そのわりにはどうしようもなくなったら諦めて殻にこもる。
大学の頃報告事項を抱えて自爆しこっぴどく怒られたことがあるが、最近もその兆候が出てきた。
◼︎同僚
同僚が自分とは真逆の性格で仕事できる。どちらも社会人二年目で同じ年齢。
同僚: 喋りがうまく雑談好き、コミニュケーション上手。わりと体育会系。
自分: 口下手で口数少ない、ビビり、視界が狭くのめり込みがち。変に完璧主義。
上司のウケは同僚の方が確実に上のはず。
精神的にしんどいというか、いらない心労がどんどん溜めているだけ。
もっと楽に考えられたら、と思う。
この仕事向いてないんじゃないか、とも思う。
二年目でこんなに仕事できないのはヤバいんじゃないか、とも思う。
どうやったら周りのみんなみたくうまく生きれるんだろう。
議論していて、とても板がみずらいので。
こちらをお借りします。
269 :(´ー`)y─┛~~ ◆UxQ8uxJMok:2014/05/31(土) 20:12:01.17 発信元:123.225.138.170
> 全てこちらの論証通りとさせていただくだけですので、
> 私としては問題ございません。
オマエが真似れば殺しに行くだけだからこっちも問題ない。
という訳で、上記のとおり、
下記論証で解決いたしました。
連番召還ではないですが、「場札を出す処理に連番の条件を要す」に該当。
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
> 「場札を出す処理に連番の条件を要す」に該当。
との反論がありましたが、
連番とは
複数の番号が連続していること。また、その番号。
とのことですので、1に対する2、2に対する1も連番となります。
2つ以上の整数があれば成り立つ形式ですね。
何をですか?
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
こんな初歩的な質問が来るとは……侮っておりました。
基本的に、「デッキが0枚なら敗北する」というルールエフェクトも
「山札が尽きたときに自動誘発する効果」なのですが、多分聞き入れられませんので具体例を。
Laboratory Maniac / 研究室の偏執狂 (2)(青)
クリーチャー — 人間(Human) ウィザード(Wizard)
あなたのライブラリーにカードが無いときにあなたがカードを引く場合、代わりにあなたはこのゲームに勝利する。
2/2
万が一の保険
[部分編集]
OPERATION
O-73 青 1-3-0 R
CHARACTER(UNIT)
CH-S29 白 2-3-1 R
【(自動A):自軍本国が0枚になっても、自軍プレイヤーは敗北しない】
【(自動D):ターン終了時に自軍本国が0枚である場合、そのターンの終了直後、自軍プレイヤーの新たなターンを開始する。新たなターンの終了時、自軍プレイヤーは敗北する】
「山札がつきた際に自動誘発する効果」とやらを具体的に提示してみました。
破壊するって書いてある:それも含めての誘発効果です。「コストの支払い」は行われません。
速度と戦闘力は反比例しない、凄い速度は威力に等しいので前提が崩壊しています。
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
すごい!超時空会話が出来ました!
まず、その「当該ゲームシステムについての記述」とやらを具体的に提示できねば反論として破綻。
手札の定義をしてください。
まさか、全てのゲームに手札があると思っているわけではないですよね?
私ですらゲームをつくる際には「このゲームは~~を手札とします」という定義を行います。
ちなみに「最初に選んだ手持ち札」という前提であれば、金色のガッシュベルTCGの魔本でやっています。
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
デッキの1枚目と2枚目が手札になる仕様というだけで……「任意に選択できる」のですが。
あれ? なにか私分かり難いこと言いました……?
一応、ポケットモンスターカクメン列伝という、手札を全て任意に選べるものもありますから、
そういう方向性を話した方がよかったのですかね?
手札の定義をしてください。
ボードゲームとかでは、場にある3枚のカードから好きなのを手札に移していいよ、とか良くありますね。
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
◆UxQ8uxJMok :2014/05/30(金) 23:40:05.89 ID:mGswB6A1
の記載にて反論が認められませんでした。
優先権は元々細分化されているので、そもそも論理が成り立っていないかと……。
ttp://mtgwiki.com/wiki/%E5%84%AA%E5%85%88%E6%A8%A9
ちなみに、この項目がTCGに限っていないので、TRPGやウォーゲームなどでは乱戦処理などで
「標的を指定できない限定的な行使の権利」や遠距離攻撃の一方的に「標的を指定する権利」がありますね。
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
↑パクリの兆候を感じた段階で、裏取りせず下記の警告文が送られ、そのトレーディング・カード・ゲーム制作者は~。
↑実物カードゲームhttp://ai.2ch.net/test/read.cgi/entrance2/1395426290/の~。 カードゲームに限定ね。 ほぃ、論破完了ww
すごい行間を読むと、確かにそうなっているみたいですね、難しいですが。
上記優先権に関しての記載にて反論が認められませんでした。
遊技王の優先権の処理は必然的にこうなるようになってませんでしたか?
ttp://yugioh-wiki.net/index.php?%CD%A5%C0%E8%B8%A2=
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
それであれば、「特に本校に記載されている"特別な許諾行為"を行わずとも"当該行為と同様の処理は行うことができる"」ということですね。
特許権にあります「有用な発明」項目の独自性に含まれないため、特許権としての効力を失います。
もし、「相手に干渉しない場合の行動は続けられる」という場合では他カードゲームよりも優位性はないので、
「有用な発明」項目の独自性に含まれないため、特許権としての効力を失います。
その昔、実際のTCGとして出たアルテイルにはAgi(素早さ)の処理がありました。
どちらのターンであれAgi順に優先権が決定していたと思います。
◆UxQ8uxJMok :2014/05/30(金) 23:39:14.66 ID:mGswB6A1
> 「クルセイド」には
攻撃順序の判定ではありません、上記に記載した通り「優先権」を得ます。
「移動、待機、スキル使用、攻撃の判定を能動的に宣言できるタイミング」である「優先権」を得ることが出来るのです。
昼の製図の授業に出ずうちに帰って洗濯してたら、急に体が重くなって、頭で何も考えられなくなった。
イメージ的にはお腹のそこに何か黒くてもやもやしてて重い物が渦巻いてる感じ。
何も考えられないし本当に何も出来ないがないのでこたつに潜って目を閉じていた。
その間は、夜の授業にも出ず、的貼りにも行かないでおこうかとさえ思ったけど、一時間ほど寝ると少し気分がましになったので家を出た。
でも結局授業は上の空で聞く気になれなかった。
そのあと的貼りで一年生の楽しげな会話を聞いているうち、少しずつ思考が戻って来て、今はいつも通り。
なんでこんなことになったんだろう?
やはり月曜に学生課に返さなきゃならない机のことが気にかかったのか。
机くらい、どこからだって調達できるだろうにと、分かってはいるのに心の奥の方では納得してないのか。
なんで意識の底と表で考えてることが違うんだ。
分からない。 どうしたらいい?
まぁ、「どれかわからない」は完全に事実なので、そこは申し訳ないとしか。
そこに至るまでの表現に不適切さがあったことも謝罪いたします。
私は差別主義者ですか?
では、表現を変えましょう。
また、コンテクストを共有できない人間を一足飛びに狂気と認定する
という状態が現れています。
何度も繰り返して恐縮ですが、あなたの人生は上手く回ってますか?
他者とのずれや会話の噛み合わなさを感じていませんか?不当な敵意を受けることはありませんか?
私事で恐縮ですが、私は基本的に週の三分の一は病院、もう三分の一は学校にいます。
お言葉、ありがたく受け取って同僚に判断してもらうことにします。
実際、非常によくある事例なので否定しがたい。
どうでもよいことですが、文脈がころころ吹っ飛ぶのは発達障害ではADHDの兆候に分類されます。
確かに私にはその傾向があるかもしれません。
近年、関数型プログラミングの重要性はいろんなところで叫ばれています。
Javaの最新バージョンに関数型プログラミングに関する新機能が加わりました。
Rubyも昨今、関数型プログラミングへのサポートが手厚くなってきています。
プログラミングの教科書の大手、オライリー社から、Javascriptで関数型プログラミングを行うための解説書が発行されました。
関数型プログラミングへの注目度は高まってきています。
おそらく、みなさんは既にオブジェクト指向が何か、を知っています。
でも関数型プログラミングとは何か、胸を張って語れる人は、周りに見当たらないかと思います。
実際、オブジェクト指向によってプログラミングする方法は、わかりやすい解説があちこちにある一方で、
関数型プログラミングとは何か、何が良いのか、ということについての、よいまとめは見つけることはできませんでした。
この記事を読む方の中で、「関数型プログラミングを取り入れるか・取り入れないか」で切実に悩んでいる人は、おそらくいないでしょう。
この記事はあまり細かいところに立ち入りません。関数型プログラミングを使う側の立場に立って、利点や向き・不向き、それが導くスタイルを書きました。
みなさんは鳥のように飛んで、高い空から、関数型プログラミングとは何か、何が良いのか、を見渡してください。
オブジェクト指向的アプローチは、名前をつけてプログラムを整理する。
関数型プログラミング的アプローチは、汎用部品でなんとかする。
Googleが近年リリースした言語、Goには、”継承”を直接サポートする仕組みが無いことが話題になりました。
また、Mac OSXの基幹ライブラリCore Foundationは、ライブラリ自体はC言語で書かれているにもかかわらず、その設計方針は明確にオブジェクト指向です。
その本質とは"名前をつけて対象を識別し、それを扱うこと"、にあります。
最もプリミティブなオブジェクト指向の対象は、ファイルハンドラです。あるファイルを開いて、読み込んで、あるいは書き込んで、ファイルを閉じる。
これらの処理をまとめたら、わかりやすいですよね?
対象に関する処理を、対象の周りにまとめる。これがオブジェクト指向の基礎的な理念です。
識別することとイコールで比較できることは、とても良く似ています。
イコールによる比較は、オブジェクト指向では鬼門であることが知られています。
PointクラスのインスタンスとColoredPointクラスのイコール演算をどう決めればいいかに、正解はありません(詳しくは"effective java"をご参照ください)。
また名前をつけて識別する対象は、フワフワしていてはいけません。
たとえば、"軍人の階級"をオブジェクトにしたとしましょう。"大佐"クラスのある兵士は名前のフィールドや、性別のフィールドを持っているでしょう。
ところで彼が昇格したときに何が起こるでしょうか。
新たに"少将"クラスのインスタンスが作られます。"大佐"クラスを破棄する前に、名前、性別、その他沢山のデータを引き継がなくてはいけません。フィールドを増やしたい場合はその都度コードに修正を加える必要があります(*)。
なるべくイコール比較を避けたい。対象は不安定なものではいけない。では何に名前をつけて、識別するか。そこにオブジェクト指向技術者の熟練度が現れるのです。
一方、関数型プログラミングでは、特定の何かに名前をつけるより、極力、汎用部品でなんとかしようとします。
関数自体をリストなどのデータ構造に詰めることもよく行われます。
実は、関数型プログラミングというのは本質を表していません。
関数をはじめとして、リスト・ツリーのようなコンテナ、手続きを抽象化したもの、回路を抽象化したもの。
あらゆる対象を値として、合成し、ときに分解し、新しい値を作ります。
変数に適用する処理を作りあげることが、とても簡単だからです。
四則演算が定義されたデータを詰めたデータ構造もまた、四則演算可能だったり。
誤解を恐れずに言うと、オブジェクト指向がトップダウンなのに対し、関数型プログラミングはボトムアップです。
関数型プログラミングをサポートする言語には、沢山の汎用部品が定義されています。
このような構造をインターフェイスとして、様々なライブラリが組まれているので、
たとえばモナドを知っていれば、30分程度でパーサー(解析機)を理解することができて、
パーサーを理解できれば、JSONパーサー・ XMLパーサー・markdownパーサー・C++パーサー ... などを理解するのはとても容易です。
理解しやすいこと。これが関数型プログラミングの大きな利点です。
追記:
また、汎用部品と型のお陰で、ライブラリのドキュメントが圧倒的にひきやすい、というメリットも有ります。
Haskellな人がPythonにトライした結果 - Togetterまとめ
関数型プログラミングは「厳密な事前設計を必要とするため、簡単なことをやるのにも時間が掛かる」。
>> map (*2) [1,2,3] [2,4,6]
邪魔な”儀式”や、"おまじない"のコードが徹底的に撤廃されているためです。
関数型プログラミングのコードは、潔癖かつ濃密です。
たとえばC言語でint hoge(int x,int y)が定義されているとき、hoge(3)はなんの意味も持ちませんが(コンパイルでコケますが)、関数型プログラミングでは意味があり、実際に有用です。
上の例では、「掛け算をする」(*)関数は、二引数関数ですが、それに引数を渡して作られた「2を掛ける」関数(*2)は、一引数関数になります。
関数型プログラミングでは、「簡単なことは簡単にでき、複雑なことは複雑にできる。ただし、間違ったことは殆どできないか、全くできない」。
また、静的型付けの力によって、コード補完は非常に強力になっています。インテリセンスの比ではないです。
たとえば、関数中のある表記の型を任意に表示できます(GHC/TypedHoles - HaskellWiki)。
やがてやってくる未来には、プログラムをテキストエディタで書くことは時代遅れになっているでしょう。
統合環境のサポートで、バグやミスの少ない、スムーズなプログラミングができます。
そしてその環境で動くプログラミング言語は、関数型プログラミングをサポートした言語なのです。
以下の様な兆候を感じたら、あなたはそのプログラムを関数型プログラミングで書くべきです。
一般に、オブジェクト同士の相互作用が複雑になるほど、オブジェクト指向では手に負えなくなっていきます。
そういうときは、オブジェクトを直接扱わず、替わりにその"相互作用"を扱うことで、複雑さを軽減するアプローチが有効です。
それこそが関数型プログラミング的アプローチです。
特にオブジェクト指向が有効なのは、プログラミング初心者がそのコードをいじるかもしれないときです。
関数型プログラミングは、強固さと柔軟さの代償として、高い学習コストを伴います。
オブジェクト間の相互作用が複雑でなく、着目している(名前をつけている)概念が安定しているとき。
そして、プログラムをいじる人たちの間で共通理解が図れているならば、オブジェクト指向が有利です。
遅延評価という機能によって、レガシーな言語で扱えなかった、巨大な数を扱うことができます。
関数型プログラミングで書かれたプログラムは、正確さが要求される、金融関連の業界で使われています。
手続きとしてパーサーを記述できるので、テキスト処理プログラムはより理解しやすく、メンテナンスしやすいものになります。
関数型プログラミングを知らない人は、「正規表現でおk」と言いますが、
彼の書いた複雑な正規表現は、半年後には(書いた本人でさえ)理解できなくなっていることでしょう。
手続き一般を扱うことができるので、途中で割り込みのある手続きの表現も容易です。
関数型プログラミングをサポートしていない言語ではコルーチン(ファイバー)などをつかってなんとかするしかありません。
さもなくば、非並行処理では普通に関数として記述できるところを、並行処理のために、Builder,Strategy,Command,Interpreterパターンを駆使して書き直すことになります。
Javascript使いの方は、Deferredなどの構造を使うでしょう(http://qiita.com/KDKTN/items/4c6986049d204f0645d8)。
C++使いの方はBoostで頑張りましょう。破滅的に解りにくいコンパイルエラーメッセージと格闘してください。
もう少し簡単な例をあげます。
あなたは、あるレシピにしたがって、自動的に料理を行うマシンの制御プログラムを書いているとしましょう。
1. まず玉ねぎを炒める。
2. 飴色になったら、肉を加えて炒める。
3. 野菜を加える。
4. 水を加えて煮る。
5. スパイスを加える。
…できませんよね?何故ならば、各ステップの"間に"、マシンのロボアームの位置や動きを調整する処理が必要だからです。
これをオブジェクト指向でやろうとすると、各ステップの副作用として、それらの処理を行うことになります。
そうすると、マシンが二機に増えた時などの変更量は、絶望的なものになります。
あるいは関数として表現するのを諦め、手順全体をDSLで記述できるようにします。
このアプローチは関数型プログラミング的です。しかし関数型プログラミングをサポートした言語の助けなしでは、そのDSLを記述するために沢山のユーティリティーコードを書かなくてはならないでしょう。
オブジェクト指向的アプローチでこの問題をエレガントに解こうとすると、クラス化の粒度を上げる事になります。
野菜クラス、フライパンクラス、ボイルクラス、フライクラス、焼き加減クラス、アームクラス、野菜の大きさクラス、切り方クラス、焼き方クラス、"焦げたよ"クラス、etc...
こうすると早晩レシピはプログラムのコード上から消え去ることになります。上記のたった5行は、依存性注入のオブジェクトグラフを構築するコードに取って代わることになります。そこには沢山の挙動の制御がオプションとして付記されているのです。
カレーなど、ある種のレシピに限定することで、見た目の理解しやすさを得ることができますが、一方それは表現力を損なうことを意味します。
C言語などではマクロを使うこともできますが、それは結局、関数型プログラミング的アプローチの意味するところと同じになります。すなわち、補助のために沢山のコードを書くことになるでしょう。
iOSのAppstoreアプリは、"無料"と書かれたボタンを押すと、それが"インストール"ボタンに変わり、それをもう一度押すと、ダウンロードの進捗を表すインジケータに変わり、それを押すとダウンロードをキャンセルできます。
このように、位置は同じなのに、ステートに依って見た目と機能が変わるボタンは複雑です。
これをオブジェクト指向で実現しようとすると、
という下らない問題にぶつかります。
一方関数型では、"機能"、"見た目"、"状態"、を独立に扱って、それらを合成してボタンを作るので、迷うことはありません。
「同じ位置にあるUIオブジェクトは、コード上で(インスタンスとして)独立して、他から干渉を受けない」
この条件が満たされているうちは、オブジェクト指向でGUIを実現することに無理はありません。
しかし、携帯端末のような小さい画面で、多くの機能を達成するためには、UI要素はコンテキスト依存的に複雑になりがちです。
近年、PCのディスプレイの大きさは、頭打ちになってきました。
画素数は増えているのですが、MacにおけるRetinaのように、複数ピクセルでひとつのドットを表すようになってきています。
これは、ひとつの画面に置かれるボタンなどのUI要素の数は、これから先の未来で増えることはない、ということを意味します。
したがって、未来のGUIのプログラミングは、注意深く機能をピックアップして制限するというデザイナーの努力を脇におけば、
関数型プログラミングの力を頼るしか無いでしょう。
つまり…
Haskell さいこうなのおおおおおおおおおおおおおおおおおお!! おしっこ漏れちゃうのおおおおおおおおおおおおおおおおおおおお(゜∀。)ワヒャヒャヒャヒャヒャヒャ
1. google:すごいHaskellたのしく学ぼう を注文する。
2. Download Haskell を自分のPCに導入する。
3. コンソールにghciと入力して、対話型コンソールを立ち上げる。
4. 次の関数をコンソールに打ち込んで、結果を見る。即値で書かれているところとかをいろいろ変更してみて、感動する。
take 4 $ map (*2) [1..]
追記:
いかがでしたか?
ちまたには、関数型プログラミングの利点は変数が無いことだ、とか、より安全だから、とか、より速いから、などという妄言が満ち溢れています。
オブジェクト指向と関数型プログラミングは、水と油ではありません。プログラマは自分のプログラムに最適なアプローチを選ぶことができます。
一般にはあまり知られていないことですが、Haskellにもオブジェクト指向へのサポートがあるんです(Lensライブラリ、これを使用したサードパーティ製ライブラリも最近増えてきています)。
この記事を読んだオブジェクト指向プログラマのあなたが、少しでも関数型プログラミングに(そしてHaskellに)興味を持ってくださって、ホームセンターの大人用オシメのコーナーが大賑わいになれば幸いです。。