はてなキーワード: トライとは
そんなhow to記事が度々、人気になっているところをみると
それなりに需要があるようだ。
そんなわけで、彼女がほしいけど、どうしたら良いかわからないという
仲良くなりたい人がいたときどうすべきか?
理由は3つ
1.彼氏がいるのにアタックするのは不毛である(確率が低い、時間の無駄)。
2.女性とっては彼氏がいるのにアプローチされるのは迷惑である(のめりこみ過ぎてストーカー予備軍)。
そんなわけだから、まずは飲みとか食事の席で
もしいませんと答えるのなら、フリーなのでアプローチしてくださいという意味なので
どんどんデートに誘ってあげよう。
その後の展開について
首尾よく「いませんよー」といったら
速攻でデートに誘うこと。
個人的には、
これは、セット。重要です。
しかし、こうは上手くいかないのは世の常。
女性としても、こいつ下心あるんじゃないとか思ったりもして
警戒する人もいます。
そんな人は「なんで?」みたいな問いかけをしてくる。
彼氏いる?>なんで?>彼氏がいたら遊びに誘えないじゃないですか。
もし相手乗り気だったら最初の第一印象は悪くないのでデートに誘うという塩梅です。
ぐだぐだしているとこの人は優柔不断、うざいと思われるので
テンポよくいこう。
もし断られたら?
注意しなければいけないのは断られたとき。
ちょっと用事があってとか言われるわけですよ。
しかし、これはタイプではないので付き合う気はないですよの意思表示と考えよう。
逆に考えれば、デートしてくれるならあなたのことは気になっていますの意思表示。
十分付き合える可能性はる。自信をもってデートに当たるべし。
女性は恋愛に関しては非常に正直だから、嫌な男性と二人で遊びにいったりはしないのだ。
ただ、本当に用事がある場合もあって、上手くいく可能性はまだある。
とりあえずメアドを聞いておいて3回ぐらい誘ってみる。
駄目ならきっぱりと諦めて次に行く。
つらつらと書いて来たがなんでこんなことを書いたかというと
鰹節の記事を見ていたら、ちょっと以下の記事を見つけていろいろと思いだしたのですよ。
http://banban.hatenablog.com/entry/2014/05/04/104045
追記
なんとか完走できたので貼っておきます。
彼氏がいないと言われたら 続
http://anond.hatelabo.jp/20140903101818
http://anond.hatelabo.jp/20140904152824
http://anond.hatelabo.jp/20140905190045
どれだけの文化資本、経済資本を投射できるかで人生勝ち負けが決まるわけじゃない?
それも、なるべく若い内に。
その日暮らしの上京者と親のCクラス乗り回してる人間が、同じゼミに同居している。
ただ両者が交わるのはこの数年間。
大卒として日本社会の上位50%として船出はするけど、絶対に死ぬまで交わらないわけよ。
・一次産業に従事する第一世代。(田舎のじーちゃんばーちゃん?)
・↑を踏まえて学歴社会に挑戦する三世代目。(おれたちわたしたち)
こんな感じで世代の蓄積があって、一世代ごとの色んな質の差が後の世代にゴリゴリしわ寄せて来て
↑の格差なんかが生まれるという。
ただ、最近気づいたのが三世代目のトライ・アンド・エラーを、”もう一回”以上やってる層がいるってことだ。
早いサイクルで世代を回して4、5世代目を投射してる層がいるみたいなのな。
高卒、短大卒の教育ママによって非効率に大学にブチ込まれた層や、地方都市の進学校から勇ましく進学してきた層(だいたい3世代目)は、
この世代ぐるみの高周回層に歯が立たない。たった一世代の壁がとてつもなくでかい。
もちろん例外もある、没落する例もある。
でもこの基調を前に、自分の立ち位置を自覚しようとしてみるとさ。
変な気分にならない?
どれだけの文化資本、経済資本を投射できるかで人生勝ち負けが決まるわけじゃない?
それも、なるべく若い内に。
その日暮らしの上京者と親のCクラス乗り回してる人間が、同じゼミに同居している。
ただ両者が交わるのはこの数年間。
大卒として日本社会の上位50%として船出はするけど、絶対に死ぬまで交わらないわけよ。
・一次産業に従事する第一世代。(田舎のじーちゃんばーちゃん?)
・↑を踏まえて学歴社会に挑戦する三世代目。(おれたちわたしたち)
こんな感じで世代の蓄積があって、一世代ごとの色んな質の差が後の世代にゴリゴリしわ寄せて来て
↑の格差なんかが生まれるという。
ただ、最近気づいたのが三世代目のトライ・アンド・エラーを、”もう一回”以上やってる層がいるってことだ。
早いサイクルで世代を回して4、5世代目を投射してる層がいるみたいなのな。
高卒、短大卒の教育ママによって非効率に大学にブチ込まれた層や、地方都市の進学校から勇ましく進学してきた層(だいたい3世代目)は、
この高周回者層に歯が立たない。たった一世代の壁がとてつもなくでかい。
もちろん例外もある、没落する例もある。
でもこの基調を前に、自分の立ち位置を自覚しようとしてみるとさ。
変な気分にならない?
爽やか&滋味でうまい。タンパク&ミネラルでうまい。微妙な調理をしないので失敗しようがない。鍋と食う皿とまな板だけ洗えばOK。
冷凍うどん | 大正義。1玉 |
---|---|
めんつゆ | 濃度によって適量 |
牛乳 | 150ccくらい |
ラー油 | 適宜 |
塩こうじ(無ければ塩で代用) | 適宜 |
ジップロック | 1枚 |
ストロー | 1本 |
鶏ムネorモモ | 使うのは半枚。鶏肉好きは1枚でもいい。グラム90円以下でOK |
---|---|
グリーンボールキャベツ | 使うのは1/8玉くらい。普通のキャベツでもいいが薄いやつのほうが食感があう。 |
きゅうり | 使うのは半分くらい |
トマト | 使うのは半個 |
とうふ | 味が濃くて柔らかい、つまり男前豆腐系がおすすめ |
ミョウガとか | ネギとかでもいい。要は薬味。夏はミョウガ食いたい |
ちくわ | 1本でいいと思う |
日曜にスーパー行って食材仕入れて作り置きします。2〜3日はたぶん全然もつ。
塩こうじ塗って安全ちゃん製法で。 http://d.hatena.ne.jp/anzenchan/20080324/1206351138
ついでに必須ではないけどきゅうりの塩麹漬けも作っとこう。おマミにもなるし。
煮え時間待ち除けば台所実働15分位だ。
鶏ハムジプロックを食うまで開けないのと冷蔵庫に寝かすのは大事。出ちゃった鶏スープの肉への再浸潤と、殺菌状態の維持のため。
火曜あたりに疲れて帰ってきて作ります。
鍋沸く→うどん茹でる→盛り付けで終わる感じなので、だいたい10〜15分くらいな気がする。
麺に豆腐は絡みにくいので、媒介としてキャベツ千切りに豆腐細片を絡めて麺と一緒にすする。うまい。
牛乳めんつゆラー油でそうめん食べるだけだと飽きてきたのでトライしたら予想以上にうまかった。トマトと豆腐がポイント高い。ちなみにいわゆる「食べるラー油」系は個人的にはおすすめしない。つゆがエセバンバンジー味じゃなくて「食べるラー油味」になっちゃうので。あと冷凍うどんは冷凍焼けの見た目さえ気にしなければ保存きく・安い・調理時間短いの三拍子揃いつつ味も食感も大リーグ(外食店)級の超優秀選手。知ってる人はもちろん知ってる。
皆さんご存じの通り、STAP細胞事件では小保方氏は完全に真っ黒なわけですが、なぜか彼女は再現実験に参加することになったそうです。そこで今のうちから、再現実験の経過・結果についてあり得る可能性を想定しておこうと思います。
http://honz.jp/articles/-/40354
「最終的に再現できた」という発表があった場合、外部の研究者は「いくら何でも理研が嘘はつかないだろう派」「理研は嘘をつかないけど簡単にだまされるよ派」「理研は嘘をつきます派」にわかれるだろう。もちろんSTAPの再現性が本当に担保されるためには、第三者機関で再現される必要があるわけだが・・・。なんて言っている内に、最初のSTAP論文二報の問題点はうやむやになって、処分もうやむやになる、かもね。少なくとも世間的にはどうでもよくなっているだろう。
週刊誌か、科学に疎いどっかの新聞社あたりが、リークに基づいて「STAP再現か?」的な記事を書く。その後の展開として、
2-1. 理研の公式見解として「最終的には再現できませんでした」と発表される。でも大勢の「STAP信者」or「陰謀論者」が「本当はSTAP細胞はあったのだ。だってそういうふうな報道あったし」とか言い始めて収集がつかなくなる。そしてSTAP詐欺が大流行。
2-2. 理研の公式見解として「最終的には再現できませんでした。でもそれに近いような近くないような結果に見えなくもないような結果がでました」と発表される。「さらなる研究が必要と考えられます」無限ループ。
再現実験の途中あたりで体調不良で実験を離脱。もう少しやっていたら再現できたのでは的な意見をテレビのコメンテーターがのたまう。2のリーク記事が出たあとで離脱すると、なお良い。
再現実験の途中あたりで、何らの理由をつけて小保方氏が理研or理研の構成員を訴える。「理研のせいで再現実験が止まったじゃないか!」
5-1. 微妙に間違った実験条件で再現実験にトライしていたことに途中で気がついた。ただし、それに気がついたのが遅かったため、本当に論文と同じ条件では実験できなかった。あと少し時間があれば・・・。
5-2. 実験ノートをとっていなかったため、以前成功した方法と全く同じ方法を繰り返すことができなかった。論文記載の作成方法でやればいいじゃないかって? それは成功した方法とは違う。なぜ違うのかは・・・未熟だったのでよくわからない。
5-3. 私は全く同じ実験条件で作っている。これでできないのだから他の人間が不正をしていたということだ。
5-4. 理研側からあーしろこーしろと色々言われたせいで、自分のベストのやり方で実験ができなかった。
5-5. なぜできなかったのか全くわからない。STAP細胞はありまーす。
他の可能性もどしどし足していってください。
http://anond.hatelabo.jp/20140529201235の増田。
増田たちのアドバイスどおりクエン酸粉末を買ってきて3袋いれて待つこと数時間。
回して様子を見てみた。
うーん。
灰汁みたいな臭いは消えた・・かな?別の悪臭があるっぽいが形容できない微妙さ。
しかし乾かしたらそれも消えた。
効いてるってことなんだろうか。
外出したついでにダ○ソーで洗濯機洗剤を買ってきて使ってみる。汚れ取れると色が変わるやつ。
カビとり目的の洗剤だが、仕上げ洗いにはいいかもしれない。クエン酸でだいぶ落ちてるはずだし。
すると、出るわ出るわ。
黒かびがぷかぷか。
以前洗ってだいぶカビ落ちたと思ってたんだが、まだだいぶ残ってるらしい。
それに加え、アンモニア臭が出てきた。
それが完全に取れてくれれば、猫しっこ臭根絶できるかもしれない!!!
少し希望が出てきて今二回目やってる。6時間後どうなるか・・・
(洗った後、かなりイカ臭かったので2回くらい洗濯機を空洗い(すすぎ含め)した。だいぶたまってたんだな・・・)
また報告するわ。
猫しっこに汚染された布団。
どうも天日はしっこに効果がないらしい。
元気があればコインランドリーまで雨の中布団かついでガス乾燥機にかけようかと思うが
元気がない&元気が出るまでにこの微妙な臭さの中暮らして部屋に染み付くのがイヤ
(羽根布団なのでぎゅうぎゅうに折りたためばコンパクトにできる)
猫しっこだけで下手すると2万円近くの被害・・・
何もしてないのに・・・
やあやあ、大学に合格して夢のキャンパスライフをおくろうとしてるおまえたちへ。
今までは制服とジャージでよかったのに、いきなり毎日私服のデイズがやってきたわけだ。
そんなおまえらに、ついこの間大学生活を締めくくったおっさんからアドバイスをしてやろう。
おれも服では苦労した。
昔買った服がダサかったことに気づく→今度こそかっこいいのを→…
このループだ。そもそもファッションなんてのは先天的に備わってる才能じゃないから、誰しもトライエラーを繰り返しながらオシャレさんを目指していくわけだ。
それでも今思い返せば、なんであんな服を買ったのか、あの金を使わずにいれば今頃あれを買えてたのに。なんて後悔をおっさんたちは沢山してきたんだよ。
だからおまえらには同じ後悔をしてほしくない。ライトオンや繁華街のよくわからないお兄系の店やマルイ系に無駄金を使って欲しくないんだ。
とりあえず言いたいことを3つにまとめた。
これは肝に命じてほしい。
大学の先輩から見ると大学一年生はすぐに見分けられる。それはおまえらがまだ引き算のファッションを知らないからだ。特にチノパンの裾を折り返して柄を見せている奴。おまえだよ。さっさとそのダサいパンツを捨てろ。
この考えを理解したければ先輩の服装を見ろ。色使いが落ち着いているはずだ。入れたとしても差し色的に使っていて、基本の色味は地味な色のはずだ。
お前らには無印良品をおすすめする。価格と質のバランス、サイジング、店舗の多さ。どこをとっても平均以上の優良店だ。
今後お前らがどんな服に向かっていくのか知らない。だが、大学から服に興味を持ち始めたやつが、いきなりストリート系に走ったり、モードに振れたりすることはまずない。とりあえず、無印良品のベーシックな服を買っとけば長く使える。
②サイズが命
これをとにかく意識しろ。よくチェックがオタク臭いなんていうやつがいる。確かにオタク臭い柄があるのは確かだ。だが根本的な原因はサイズの選び方にある。よく先輩を見てほしい。チェックを着てるのにおされオーラを醸し出しているやつがいるだろ?それはサイズが合っているからだ。おまえらが思うより1つ小さいサイズを買え。それでも分からなければ店員に聞け。
特にボトムスのサイズには気をつけろ。お前らが細すぎだと思うやつを買え。分からなかったらユニクロに走って、一番細いやつを買ってこい。ユニクロのボトムスは使える。
③目を肥やせ
ファッションは経験だ。とにかくインプットを沢山したほうがいい。道行く人、ファッション雑誌、ネットのコーディネート集、店舗に出向いて品物を触る。これをやってればいつの間にか、世間でおしゃれと言われているモノはなにか、についてわかってくる。おしゃれは絶対的な価値観じゃない。みんながおしゃれだと思うからおしゃれなんだ。だから「みんな」の基準を知ることが大事になる。
他にも色々あるがとにかくこの3つを頭に叩き込んどけば大きく失敗はしないはずだ。
健闘を祈る。
あなたのお子さんは、
理想を高くもち、
物事を自分の中でよく消化しなければ表に出さず
でしゃばらず落ち着いて行動できる
回りに惑わされず
物を大切にし
同じことに何度も違ったやり方でトライし
多くの失敗から多くを学んでいる。
実現できない目標を軽々しく口にしたりせず
そして、
大切に育ててくれる親がいて
親が自分のことを愛してくれていることをよく分かっていて
そんな親を大切に思っている。
幸せで、涙が出るくらいいい子だと思うんだけど。
いったい何が不満なのだろう? と言ったら「皮肉を言っている」と思われるのだろうか。
でも、親に大切に思われている、というだけで、
この世の何十パーセントの子どもに比べ、確実にあなたの子どもは幸せなのだ。
横でいつまでも泣かれては、
子どもも旅立つことができない。
そうこうするうちに、
その前に、
どんなに心配でも
手を放す覚悟をしなくてはならない。
心配ない。みんなそうしてきたのだ。
有史以来、ずっと。
愛された子どもは、きっとどこかで誰かを愛し、愛されることができる
そして、
それを通して親自身もまた
ゆっくりと救われていくのだ。
「ああ、
生きていて本当によかった」と。
私の人生、それほど間違いでもなかった、と。
だから、
がんばってください。
あと少し。
村上春樹を英語で読む。私はこれでTOEIC900点を突破しました。
小説を読むうえで大きなストレスとなることの一つに、著者が描く情景、主人公の心情、時代風景などがピンとこない、ということがあります。外国の小説の場合は、たとえ日本語に翻訳したものを読むときであっても、日本人である我々は感情移入ができず、結果として、なかなかサクサクと読み進むことができません。英語で読む場合は、これが「英語という言葉がわからない」「書かれてある内容自体がピンとこない」の二重のストレスになってしまい、英語上達のためのポイントである「多読」の障害となってしまいます。対処法は簡単です。日本人の著者が書いたものを英語で読むこと。そして自分が好きなものを読むことです。
私は昔から村上春樹が好きで、ノルウェイの森は特に、これまでにたぶん10回以上読み直しています。話の流れはほぼ完ぺきに頭に入っているので、Vintage版のノルウェイの森は簡単に読み終えることができました。これは、いままで、いろいろな英語の小説(ポール・オースターからハリー・ポッターに至るまで)にトライし断念してきた私にとって大きな自信になりました。
次に、今まで日本語でも読んだことがなかった、海辺のカフカを試してみました。これも多少は日数はかかりましたが、楽しみながら英語で読み終えることができました。同じようにして、これまでに長編・短編を何冊か読んでいます。
村上春樹の小説の主要なものはほとんど英訳されていて、Amazonなどで手軽に手に入ります。村上春樹がかなり好きな人であっても、読んでいない作品というのはあるかと思うのですが、そうしたものであっても英訳で読むことができます。自分が初めて読む小説が、それが英語で書かれているのにもかかわらず情景がすんなりと理解できる、というのはすばらしい快感です。それは、ちょうど、海外の作家の本を英語で読んだ際の、自分が理解できているのかどうかに確信が持てないもどかしさの対極にあります。
村上春樹が好きでない人は、自分の好きな日本人作家を読めばいいと思います。吉本ばななや村上龍も英訳が多く出ているのでいいと思います。三島由紀夫、安部公房、井上靖が好きなので英語で読んでみましたが、これらは私にはダメでした。時代が違う作家の文章は、英語になってしまうと、一発でピンとくる感じがなくなってしまいます。小説ではありませんが、最近のアニメや日本映画を英語吹き替えプラス英語字幕で観るという方法はよいかもしれません。
元増田です。
ぶくまでいろいろ意見もらったようなので返信っていうかそんな感じで。
・「重くない」って意見
クライアント使うと重くないのか。使ったことないんでわからなかったよ。教えてくれてありがとう。ちょっといろいろあさってみる。
・「黒いRTはクライアントでフィルタリングすればいいだろ」って意見
これもクライアントつかったことなかったんでわかんなかった。黒いRTがなくなればどれだけ快適か。トライしてみるよ。ありがとう。
・「黒いか?」って意見
ちょっとだけ具体的にいうと「○○の農民は人殺しだ」とか「○○の人間は子供を産めない」系の話。マイノリティの差別とかそれ関係もある。もちろん元のRTも見るのもいやな感じなんだがそれに反論する系のツイやRTも怒りに満ち満ちてて黒くて、もう見るのもいやな感じ。RTオフにすればいいかっていうと、9割くらいは有益なRT飛ばしてくれる人たちだから、オフにもできないしリムーブする気にもなれないっていう悩みを抱えていた(「高々ネットでこんな悩むこともないよなあ。でもなあ」って、悩むこと自体悩みっていうか)
こんな感じかなあ。
あと会話に使うかっていったら、やっぱりあんまり使う気になれないなあ。
これは自分がちゃっとになれてなくて、あんまり長い時間会話するのが苦手、ちょっと挨拶する程度の方が気持ちがほこっとなるクラスタだからだと思う。わざと時間おいて返事するって操作すればいいんだろうけど、同時間にいるのに無視するってのがどうしてもできないんだよね。性格の問題かな。
近年、関数型プログラミングの重要性はいろんなところで叫ばれています。
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に)興味を持ってくださって、ホームセンターの大人用オシメのコーナーが大賑わいになれば幸いです。。
まさにこんな気持ちなんだけど、それって女性相手にNGらしい。
でもそういうのって面倒くさい。
好きな人ならまだしも。
でもしょうがないじゃん。好きじゃなくて、その人が女だから誘いたいのだから。
体目当てというか、その人が女だから女性ホルモンが放つ何かを欲しいな、と思ったわけで。
で、そういうの場数踏まないとうまくなんないじゃないすか。そういう女の人喜ばせて、仲良くなって乳くりあうのって。
だからここから始めようと思ったわけで、手を伸ばせば届く人に声かけて、セッティングは済んだわけで。
もっとなんだろう、相手の女性を喜ばせようという意識が足りなかったのかもしれない。
それはなんとなく感じている。
「相手の喜ぶことを考えることを習慣化」できたらいいのか。
それでまたトライする。
そうしよう。
それを楽しみがらやろう。