はてなキーワード: おKとは
設問を字面通りに受け取り過ぎなんだな。
・感想文
トンチンカンでもなにか書いてあるだけで嬉しいもしくはむしろ役立つ。
・履歴書
自分でかけないなら、就職課などに言って質問して貰う形で答えたことを書け。
1つ完成すればあとはあとはテンプレ。気がついたところは修正していけばよい。
つまりは、設問自体があまり適切でないことに起因し、かつそれを字面通りに受け取ってしまうことが問題。これらの文章は元増田の考えを聞きたいのではなく向こうの質問に答えて欲しいだけなのだ。ここに微妙な齟齬がある。ただ設問自体があまりうまくない事が圧倒的に多い。これらが得意な奴はいわゆる空気≒書いてないことを読めるタイプだ。
国語の先生、人事部等、いわゆる文系中堅クラスが多い役職は要件定義した文章書くのが下手な場合が多いからね。彼らもたぶん会話だとうまくやれるんだと思うが。
ちょうどお昼だから釣られてやる。
会社は拘束時間に対しておちんぎんを払っている。年棒とか成果主義で入社していない場合は。
ここまではおkだと思う。
では本題。遅刻がなぜ悪いか。
全部時間だ。何故か?個々の状況は環境や体調によって安定しないが、全個人に唯一共通するものが時間の流れだからだ。
だから「〜をいつまでに」という期限が設けられる。
会社(法人格)は単体で存続できないし、単体であればそもそも存在する意味がない。
で、話を戻すと会社員として会社に拘束されている間は、あんたという個人は、個人だが、個人ではない。
入社する時に、就業規則に拘束や営業時間が記されていると思うが、その規則をのんだよね?
なら当然、会社はあんたが就業中は部品として振る舞うことを期待する。
あんた個人を会社としてみようよ。
起きているときに、手を動かそうとして、あるはずの物が無かったり動かなかったりしたらどうよ?
あんたも会社も思った時にアクションが出来る事が重要なんだよ。
怒られるのは
* 会社や上司の命令が降りてきた時に、アクションが取れなくて機会損失したら、その責任をどう埋めるつもりだったのか?
* 約束(規則)を守れなかった事。つまり拘束時間に対して賃金を払っているんだぞという、注意
この2つが理由だ。
細かいことを言うと。
9:00 - 18:00 で定められているところを 10:00 - 19:00 とか働かれると、会社が支払いに対して契約違反を起こすことになる。
18:00 - 19:00 の会社の光熱費は?ともなるよね。
最近はてな界隈がある話題でざわざわしてたので自分なりにまとめてみた。
間違ってたらごめんね。
■登場人物
今回の騒動の中心人物。
・おちゅーん
メメとセックス(アナル)してホテル代金5000円をメメから借りたと言われているニャンちゅー似の中年。
・斉藤
渋谷区在住のサイバーメガネとか言われている会社社長。メメとセックスしようとして大阪行ったけど振られた?男。
なんか訴訟中らしい。
・久谷女子
なんか同人誌サークルの総称?複数人の女で構成されてる意識高い系集団?
■事の顛末
メメとオチューンがオフ会?で出会ってなんだかんだあってセックスした。
そのセックスしたホテルに入る際オチューンの手持ちが無かったからからメメから金を借りた(5000円)
メメは付き合えると思ってたけど、結果付き合えなかったから匿名ダイアリーでセックスした事を暴露。
ついでに5000円返せとおちゅーんに言うが無視される。
斉藤とかいう社長がこれはチャンスとメメを慰めに大阪に言ってセックスしようとするが振られる。
メメがネットで恨み辛みを書き散らしている中、久谷女子とかいう同人誌(個人が発行してる雑誌?)で「メメの話は妄想だよねーwププッw」とか書かれる。
メメが久谷女子のメンバーにどういうつもりであの話を雑誌に書いたの?セックスしたのは事実だしいろいろ不愉快だから紙面上で謝罪しろと怒りのリプをツイッター上でするもツイッター上で「ごめんちょw」だけの対応。
メメが内容証明を送りたいから住所教えてと言うがメールでおkとか意味分かんない事言われる。
ラチがあかないからメメ弁護士に相談するも訴えるのは現実的じゃないからと言われ降参←今ココ
最後までなんだかよく分からなかったが女同士のネチネチとした喧嘩が長引いたって事なのかな。
よう分からん。
サイコパスのAO義塾塾長の文章に突っ込み入れるンゴwwwwwww
全文は http://aogijuku.com/tk2016/
今回の一件で悶々とする中で、改めていま私が為すべき事は何かと考えた時、
それは「AO入試を通して、全社会を牽引していく先導者を輩出していく」という原点を貫き続けていくことだと、思い至りました。
→勘違いやぞ
自らの頭で考え、行動することを身につけていくことをサポートしていきます。
→まず学力つけるのが第一なんだよなあ
そして、全世界を牽引していく先導者となることを目指す、
それは今回の一件でも痛切に感じました。
それでもなお、私はAO入試が、これからの日本社会にとって欠かせない入試形態の一つだと私は確信しています。
AO入試では、大学から受験生へ必ず「志(=大学で学ぶことへの目的意識)」が問われることになります。
「志」を抱くには「意識」が欠かせない
そして「志」を抱くには、
だから私たちが「意識が高い」と嘲笑されることは避け難いこととも言えるのでしょう。
しかし、これからの日本には社会への「意識」が高い人々が「異端」として嘲笑されてしまう少数派であってはならないと思います。
これからを担っていく高校生にとって、そしてひいては日本人全体にとって、
「社会への意識が高いこと」を普遍的なことにしていくためには、
AO入試という入試形態が社会の教育装置として不可欠だと僕は思っています。
とんだ思い違いやね
社会問題を解決していく、社会への高い意識を持った担い手こそ必要です。
→まあわかる
その担い手を育てる仕組みの一つこそ、私はAO入試なのだと思います。
一方で、一点刻みの受験戦争を勝ち抜くには、
社会へ関心を持つよりも、机に向かうことばかりが奨励されてしまいがちです。
→いかんのか?
もちろん、机の上での勉強や学力を身につけることは極めて重要です。
しかしその重要性は、勉強や学力は「手段」であることに対してであり、それ自体が「目的」ではありません。
→意味不明
点数のみで評価することは、手間がかかりません。
→根拠なし
大学での学びも「手段」であって、入学することが「目的」ではないはずです。
→一時的な目的を達成して、それから手段としての学びを行うことの何が悪いのか
高校生達が大いに学問することへの、それぞれの「目的意識」が最も大切です。
その目的意識を問い、社会全体で育てようとするのが、AO入試です。
このAO入試の可能性を活かして、
「ゴール地点」ではなく「スタート地点」へと描き直していきたいのです。
→一般入学者は大学入学がゴールとかいう妄想を押し付けないで下さい(迫真)
やはり、AO入試で入学するには、意識が高いことが求められます。
要するにバカってことやし
むしろ、意識が高いことで嘲笑されてしまう日本社会の現状こそ、最も正さなければならない深刻の病理だと、真面目に思っています。
そんなこと真面目に思ってるなら真性のバカやな
本来ならAO入試の導入に合わせて、学校が変化するべきでした。
学校がAO入試のサポートを万全に行ってくれるのなら、AO義塾の出番など必要なかったと思います。
学校という教育機関に、高校生達のAO入試への挑戦をサポートしてもらうことを期待するのは難しいのが実情です。
AO入試に挑戦する高校生をサポートするコミュニティを創りたいと決心しました。
幸いなことに、AO義塾は毎年、合格実績の過去最高記録を更新し、
本年度のAO義塾4期生も既に慶應義塾大学に150名以上合格することが出来ました。しかしそれを支えたのは、既存の塾・予備校の概念ではありませんでした。むしろ、全くその逆の概念でした。
→AO用の意識高い実績作りのための団体まで用意しているもよう
教える側、教えられる側という関係でもなく、
茂木健一郎とか
200人の塾生がいれば、200通りの志があります。
みんなそれぞれ、違う色、違う形をしています。
それが私たちにとっての誇りです。
合格を目指しません。社会に貢献出来る人材を輩出することを目指します。
そして、この信念は揺るぎません。
安定した時代には、常識的なライフコースというエスカレーターがあり、
それに乗っていれば、社会のことなど考えられずにいられました。
自らの頭で考え、行動出来なければ、一寸先は闇な時代です。
でも、そんな不安定な時代に生まれた私たちのような世代だからこそ、
スリリングだけれども、わくわくするような人生を送れる世代です。
明日がどうなるのか怯える人生より、明日を切り拓いていく先頭に立つ人生に、僕たちの世代はしたい。
※ポエム終了
そしてそれは全てAO入試に挑戦することで得られる学びです。
時代の転換に合わせてそろそろお役御免です。
こうした背景を考えれば、
やはり、新しい学びの場が不可欠です。
AO義塾はその新しい学びの場たらんと、
そして再出発の第一弾として、
「社会問題を考えるワークショップ」を12月26日(金)に開催します。
皆さんと一緒に「考える」機会としていきたいと思っています。
対象は高校生ですが、参加人数によっては、大学生の見学も受け付けます。
こうした企画等を通じて、全世界を牽引していく先導者となることを目指す、
ぜひ意欲溢れる、才能の原石である高校生の皆さんのイベントへのエントリーをお待ちしております。
それは「結果」で示してみせます。
斎木陽平
全体的に文章が下手で草生えた
なぜかこいつは脳内で一般入学者を大学入学がゴールの「意識低い人間」に仕立て上げてるんだよなあ
○昼食:なし
○夕食:ご飯(鮭、牛味噌炒め、たらこ、野沢菜、などがのった豪華な奴)
○調子
なんか躁鬱の躁の方のノリで就職活動をした。
結果は明日(早い!)聞けるらしい、就職したら、当たり前だが脱ニートである。
(別にゲームしてない日も普通に更新してるから、続けられるか)
(まあでも何時まで休めば大丈夫になるかなんてさっぱりわからんしなあ)
第一、一度辞めた会社でもう一度働かせてもらえるものなのか!?
(でも、辞める時に「元気になったら戻っておいで」って言われたしなあ)
(いやでも、普通に一度辞めた人が休日に電話してきて「おkおk」なんて軽いノリで言わないだろ)
とかなんとか、色々考えているが、まあなるようになるし、ならないようにはならないだろうと、
ある種楽観的。
これに落ちたら、他の職を探して色々活動しようと思う。
四日市+プログラマで検索したらあれこれ出てきたので、出来る限り近所で働けるようにするのもありかな、
え? プログラマ続けるのかって?
いやこれがね、悩んだんですよ、かなり。
でも、結局自分に出来る事がそれ以外思いつかないし、それ以外はちょっと怖い。
だから、とりあえず、とりあえずね、プログラマで就職を探すつもりです。
あーもしかして、ただ単にオーバードーズの反動で、元気になってるだけなのかなあ。
そうだとしたらよくないよなあ、
いやでも、これがある意味チャンスだよね、チャンス。
これをキッカケにちゃんと就職して、家族を安心させてあげないと、というか
まず自分自身がちゃんとしないといけないと思う。
頑張れ私、頑張れ僕、頑張れ自分、ですよ、頑張れ。
え? 鬱病の人に頑張れって言う野禁止って?
それもそうか、じゃあ、うーん。
負けるな私、負けるな僕、負けるな自分、ですよ、負けるな。
いやもう、本当、なるようになれ、ならないようにはならないの精神で
春までには就職決めたいところだね、春までには。
(遠すぎるかなあ?)
これが至極面倒なので、早く直して欲しいのだが、サポートセンター様も原因がよくわからないらしい。
なんじゃそらー! って感じでかなりイライラしている。
早く直してくれないと、就職活動もできないし、はてな活動もできない。
なにより、XboxOneができない!
「銀座でバイト」が原因で 「局アナ内定」を取り消された 女子大生が日本テレビを訴えた | 賢者の知恵 | 現代ビジネス [講談社]
http://gendai.ismedia.jp/articles/-/41014
このニュースを見て戦慄した。。。
俺もついさっき内定取り消されたとこなんだけど!!
いや、俺の場合はどうなのかわからない。。とりあえず順を追って説明する。
・10月
1件のメッセが届く。
懇意にしてくれてる会社の部長さんで、何度かスカウトしてくれている。正式なオファーレターをもらったこともある。
いつもタイミングが悪かったんだけど、今なら話を聞くぐらいならいいかなぁと思い、とりあえずメシを食うことに。
・11月
何を聞いてもいい答えばかりだし、リクルーティングされてもいいかなぁ、と思い始めていた。
「ウチにジョインしちゃいなよ!」
うーん。悪くない話なんですが。
「どうすんの?いつから来れる?」
「えー、遅いよ、今来てよ今!」
今は無理ですよ、退職の手続きとかあるんですから。最低一ヶ月はかかりますよ。
「ちなみに、いくら欲しいの?」
え〜、前回のオファーよりは上乗せしてほしいです。あとでメールしますよ。
「わかった。とりあえず12月に入社ね。今から退職届出せばイケるっしょ」
んー、わかりました!じゃあもう今の会社には退職届出して、12月に入れるようにします。でも条件次第では、他社に行きますからね!
「おk」
俺は前向きだったけど、返事はすぐにしちゃダメだって聞いたことある。
「給料は昔オファーもらったやつより多めにしてほしい。あと、仕事をやりやすくするために権限がほしい」
・今日
言葉を失って、頭がクラクラしてきた。
しかも、無理いって今月中に辞められるように調整したのだ。
もちろん、メンバーに迷惑をかけないよう最大限の努力はした(している)。
という状況でのお祈りメール。
うああああああああああああああああああああああああああああ
誰か教えてくれ。
これは内定取り消しというのか?
ただの選考だったらお祈りされてもしかたないと思うし、オファーレターももらってないし。
訴えるに値するのか?
でも訴えるなんて、そんな物騒なことしたくないし、業界内で自分の評判が悪くなったりしたら困る。
とりあえず、どうしよう。
職には困らないと思うけど、一度退職してしまうと転職の交渉もしづらくなるし、今月中に理想の転職をするのは無理ゲー。
これは…俺が悪いのか?
25年間彼女いない歴=年齢だった私だが、半年前に偶然に(本当にただのラッキーで)恋人ができて、この半年間失った時を取り戻すように恋愛について本気で考えてきた。
恋愛コンテンツを漁るように読み、ストリートではいちゃつくカップルの様子を観察し、数少ない知り合いの恋バナを聞きまくり、そして実際に彼女といちゃいちゃした結果恋愛についての認識が大きく変わった。
なんていうか社会に対しての憤りを感じている。私は自分のことを「恋愛の才能に著しく欠如したミソジニスト」だと思っていたけれど、実際はそうではなく、恋愛と女性への苦手意識は社会的に刷り込まれたものだった。
社会には恋愛についてあまりにも誤った情報が氾濫している。いやより精確にはそのほとんどは正しい情報なのだが、恋愛についての情報を読み解く為の特殊なコードが存在していることを恋愛弱者は知らないために、その正しい情報が全て誤った情報として我々の恋愛についての誤解と異性への不信感を加速させる。
「正しい情報」の具体例を挙げてみよう。
・女性はイケメンでなくても好きになれる。最低限の清潔感があればおk
私の場合は主にこの6つの恋愛についての「正しい情報」を元に非モテを完全にこじらせていた。モテなかったとき(恋愛のコードを知らない状態)の誤った理解はこうだ。
・女性は頭の良い男性が好きというがそれなりに頭が良いはずで学歴も申し分ない自分がそのことでモテるということは全くない。むしろモテない要素なのではないか。
・女性は優しい男性が好きだという。優しくというのはセクハラ的なアプローチをしない紳士的な態度のことをいうのだろう。女性に対して失礼なことを言ってはいけない。女性の機嫌を損ねてはいけない。
・俺はイケメンではないイケメンではないイケメンではない。あの人とは釣り合わない。あの人とも釣り合わない。あの人とはひょっとしたら釣り合うかも…?
・レイプはいけない。これはよく分かる。しかし女性が身体を求めて欲しいとは一体どういうことだ。身体を求めるというのはどうやってもレイプ的になってしまうのではないか。これは欺瞞だ。レイプ的野獣性に満ちた野蛮な連中が楽しむのが恋愛であり、自分にはそんなことは出来ない。
このような理解をしてしまうと女性にまったくモテず、それに伴いミソジニー的傾向も高まってゆくことになる。
上記の正しい情報を恋愛のコードを踏まえてより正しく書き換えてみよう。
・女性は自分の行動から感情を察してくれる能力の高い男性、つまり頭の良い男性が好き
・女性は察した情報を元に自分に対して適切な配慮を具体的な行動として示してくれる男性が好き、つまり優しい男性が好き
・最低限「生理的に無理」の範疇から外れれば(清潔感があれば)見た目以外の要素(上記の頭が良い、優しい等々)でも男性を判断できる女性は多い。また、長く付き合っていくにあたって見た目以外の要素がより重要であることを経験的に理解している女性も多い。一般に男性よりも女性の方が異性の魅力を多角的に判断している。
・女性は自分が認めた相手にガツガツされることなく適切に身体を求められることによって女性としての価値を確認したい
多くの女性と一部の男性は恋愛のコードを知っているため、最初の簡略な表現で十分なのだろうけれど、これくらいちゃんと教えてくれないと非モテには分からない。
恋愛のコードを理解するとはどういうことか。これは簡単なことで、男性的なコミュニケーションと女性的なコミュニケーションの違いを理解すれば良い。
男性と女性の違いについて先人が積み上げてきた知見は相当に進んでいて、インターネット上にあるコンテンツを漁るだけでも十分な理解を得ることができるし、ジョン・グレイの『ベストパートナーになるために』のような定評のある書籍を読んでも良い。
お金がないから若者は結婚できないというけれど、少なくとも私は収入の条件によって照らし合わせて妥協点を探る見合い婚などしたくないし、普通に女性と恋愛していちゃいちゃして結婚して結婚してからもいちゃいちゃしたい。
しかしそのためのロールモデルを両親に求めることはできない。私の父は恋愛についての理解度が低い家父長的な価値観を持つ人間だし(父とは色々な話をしてきたが恋愛について話したことはないしこれからもないだろう)、私の友人の父親の多くもそうだ(高校時代に一人だけ凄くモテる友人がいて、その友人は「父親と母親がいい歳していちゃいちゃし過ぎていて困る」と話していた)。
恋愛は一般に理解されているような「誰かを好きになって自然に発生するもの」では決してない。後天的に学習する必要がある。両親が教えてくれなかったのなら自力で学び取るしかない。
そして実は自分が現実に恋愛することを完全に諦めているような極まった非モテには恋愛強者になるための素質がある。
女性とセックスしたいけれどセックスできなくてもまったく問題ないというのは恋愛にとって重要な能力だ。ガツガツしている非モテは絶対にモテない。
ストリートでいちゃいちゃしている若いカップルを観察すると、男性側がいやらしい表情をしているということはほとんどなくて普通に豊かな表情をしている。この意味で草食系男子がモテるというのも真実なのだ。
男性が一方的に性的主体性を持つという社会的理解も改まりつつある。SNSの普及によって男性と同じように女性が性欲を持ち、様々な嗜好をもって男性を選別していることは容易に知ることができるようになった。
私たちが理想とする男女が対等な立場でいちゃいちゃする恋愛を実現するための土台は整っている。あとはほんの少し、ほんの少しだけコツを知ればいい。本当にそれだけなんだ。
1.20代後半
3.ITスキル適性なし(2年程度会社でプログラマをやったが天才的なひとを見て挫折)
4.勤め人の適性なし(お金を稼ぐのは好き)
5.簿記は日商2級程度で損益計算書と貸借対照表はざっくりと読める
7.高卒
以上です
皆さんお忙しい中お返事いただき大変恐縮です
もうひとつ別に書くか悩みましたが読みづらくなりそうなので追記します
スペックについて書き忘れました
大した成績ではありませんが60人くらいの中で1位2位を5ヶ月くらい取ったことがあるんで(さぼって数字が0だったこともありますが)、営業スキルは中の上か上の下程度でしょう
楽過ぎてやめられなくなってたんですけ良い年なんでそろそろ一財産作ろうと思ってました
それで皆さんの声をまとめると
・営業は良い
・上客を引っこ抜いて独立
・役員になる
・馬車馬のようにとにかく働くべし
・技能あったほうがいい
読みこぼしもあるけどだいたいこんな感じでしょうか
かなり参考になりました
なぜ労働時間を聞いたのかというと、20歳前後で月400時間働くのを4ヶ月続けてニートになって貯めた金を食いつぶした経験があるからです
技能や知能やコネがないのに長時間働けなければ大金を稼ぐのは無理というお言葉は最もだと思いますが、労働時間は僕にとっては重要な指標でした
大雑把な計算(税金や支出諸々を勘案せず)で時給2000円で月400時間(休日無しで一日13.5時間程度)働くと月80万
月80万を12ヶ月でだいたい一千万という計算です。が、もちろんこれは上記の通り僕には無理でしょう
皆さんのアドバイスを参考に時給4000円で月200時間稼げるビジネスプランを考えて実行に移してみようと思います
もちろん最初に時給換算して、というのがナンセンスなのは百も承知ですがあくまで参考にする概算としての数字です
皆さんお時間を割いて頂き本当にありがとうございました。また追記するかもしれませんが、ありがとうございます。
近年、関数型プログラミングの重要性はいろんなところで叫ばれています。
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に)興味を持ってくださって、ホームセンターの大人用オシメのコーナーが大賑わいになれば幸いです。。