はてなキーワード: Pointとは
The point is, art never stopped a war and never got anybody a job. That was never its function. Art cannot change events. But it can change people. It can affect people so that they are changed... because people are changed by art-enriched, ennobled, encouraged- they then act in a way that may affect the course of events... by the way they vote, they behave, the way they think.
L. Bernstein
こういうことだ。芸術は戦争をとめられないし雇用を生み出せない。そうしたことは芸術の役割ではない。芸術は世の中を変えられない。しかし芸術は人を変えることができる。人が変わるよう、芸術は人に影響をあたえることができる。そして人は芸術によって満たされ、高められ、勇気をもち、影響をあたえうる方法…投票したり、振舞ったり、思考したり、さまざまの方法で、世の中にたいして行動を起こすのだ。
The home side is yet to bag a single win on their first ever UEFA League season. With only one point to their credit, they reside in the third place of Group D table. Die Bayern München‘s just defeat opposite the group-leader A.Madrid has kept them on the second place with nine points
病院をチクって上手くいった事例が日経(2016年10月3日朝刊 社会面)に掲載されていしたのでご紹介しますね
【subject】喫煙外来で職員喫煙 島根の病院 診療報酬返還へ
【本文】”喫煙外来を設け、敷地内を全面喫煙としている島根県江津市の済生会江津総合病院(300床)で、職員らが喫煙しており、保険適用の条件となる基準が守られていなかったことが2日、病院への取材で分かった。診療報酬を保険者の自治体などに返還するという。
病院によると、8月下旬厚生労働省中国四国厚生局島根事務所(松江市)が調査に訪れた際、病院北側の裏口近くなどで、病院職員らが喫煙をしているのを確認。病院は喫煙外来の休止と診療報酬の返還などを指導されたという。
敷地内の喫煙は喫煙外来を含む複数の診療で保険適応の条件となっているという。病院は適用が認められた2012年度以降の診療報酬を返還するため、額を算定している。喫煙外来は先月27日から休止している。「市民や患者の皆さまに申し訳ない。職員が一丸なり、敷地内の環境整備に取り組みたい」としている。”
喫煙虫による犯罪行為を現認したところで、病院警備員をけしかけていくら指導させるしか・・・、その都度その都度のプチプチ潰しても埒が明きませんね。今回の大勝利はチクリ先を管轄官庁に選択したことが大勝利の主因と言えるでしょう。
ただし、喫煙虫は初犯、学校のトイレとかで吸って吸い殻を捨ててるとかしてるんですね。もともと規範意識が鈍麻仕切っているわけで、病院への間接的アプローチでは不十分、喫煙虫へ直接アプローチの手法をどう洗練させていくかが課題ですよね^^;
<推定される成果>
外来患者さんが喫煙したならともかく、該当者は内部犯行でなおかつ「喫煙外来」を潰してるわけですが解雇は免れませんよね?成果上々といえるでしょう
-a | (number) $1 |
-i- | $1+$2 |
-e- | $1*10^$2 |
-li | $1 (-e- 一番外側) |
-apo- | $1+(point) $2 |
ta- | -$1 |
nil | 0 (任意) |
m | 1 |
d | 2 |
tr | 3 |
ku | 4 |
pet | 5 |
hek | 6 |
siv | 7 |
oct | 8 |
nov | 9 |
tama | -1 |
tapoma | -0.1 |
tametama | -0.1 |
poma | 0.1 |
metama | 0.1 |
pomida | 0.12 |
metamimetada | 0.12 |
trapotrikua | 3.34 |
tritretamikuatada | 3.34 |
siva | 7 |
mema | 10 |
memima | 11 |
dema | 20 |
demida | 22 |
trema | 30 |
kuema | 40 |
meda | 100 |
medimemima | 111 |
deda | 200 |
dedidemida | 222 |
treditremikua | 334 |
ocedimema | 810 |
metra | 1000 |
mekua | 10000 |
mepetimekuikuetripetedimemikua | 114514 |
mehekemiliocta | 1無量大数 = 10^68 |
memeda | 1グーゴル = 10^100 |
metretra | 10^3000 |
mememelida | 1グーゴルプレックス = 10^10^100 |
memememememapolima | ポアンカレ回帰時間 = 10^10^10^10^10^1.1 |
memememememilimetama | ポアンカレ回帰時間 |
Aphex Twin、Young Echo、Jam City、Moodymann、Arca、Oneohtrix Point Never
Can、Jake Bugg、Neil Young、Jamix XX、Sufjan Stevens、Janelle Monáe
Nas、Kendrick Lamar、Chance The Rapper、Kanye West、Young Fathers、Jeru The Damaja
Art Blakey、Cannonball Adderley、Stan Getz、Kaoru Abe、Ornette Coleman、Lee Morgan
KOHH、SIMI LAB、YMO(坂本と細野のソロも)、坂本慎太郎、寺尾紗穂、山下達郎(シュガーベイブも)
2回も増田に投稿されてるけど、どうもこの動画の人達は海外のユーチューバーっぽい。
でもこの動画の人は他の動画は日本に対してポジティブなものが多い印象なので違うっぽい。
759 : 名無しさん@お腹いっぱい。 (ワッチョイ aa83-s/+K)[] 投稿日:2016/06/07(火) 19:45:18.52 ID:C5YjExBh0.net [1/2回]
以前にジャパンタイムズで
「レイシズム・イン・ジャパン」などという動画を作る人がいるが
Say, people make videos called “Racism in Japan!” It’s like, why do that?
Why don’t you just share something positive? I don’t see any point
in spreading more negativity. They just want to do that
because if it’s controversial, they’ll get money.
http://i.imgur.com/DZNIkO9.png
http://www.japantimes.co.jp/life/2015/02/23/digital/sharla-japan/
じゃあ、これらもやっぱり「炎上商法」なんですよね?
Sharmander
http://i.ytimg.com/vi/8UET38Ze4pY/mqdefault.jpg
kimdaovlog
ttp://www.logsoku.com/r/2ch.sc/streaming/1431358818/759
この件とは直接関係ないけど、youtubeに「RACISM IN JAPAN」みたいなタイトルの動画で再生回数が結構あるのが多かったのでそういう一面はありそう。
5 : 名無しさん@お腹いっぱい。 (ワッチョイ 3b4f-dm/8)[] 投稿日:2016/06/11(土) 23:12:52.08 ID:66QX3Cfc0.net [1/1回]
削除されたコメント、目立ってたやつだけ。
ttp://www.logsoku.com/r/2ch.sc/streaming/1465542119/5
779 : 名無しさん@お腹いっぱい。 (テトリス fabc-zAhY [183.181.168.48])[] 投稿日:2016/06/06(月) 09:01:45.88 ID:fM0CTS6q00606.net [1/1回]
ttp://www.logsoku.com/r/2ch.sc/streaming/1463733553/779
兎にも角にも、元動画が非常にわかりにくいのが問題の根幹だろう。
人種差別をしているのかどうかわかりづらい状況なのに、インパクトの強いタイトルをつけ画像や動画をネットに投稿しているのが問題を複雑にしているようだ。
日本の狭いネット界隈の話に限って言えば、このユーチューバー側についている人たちとネトウヨ系の人たちが揉めているようだ。
増田に投稿したのは多分ユーチューバー側の人達がバズるのを狙ったのだろう。
雑にまとめたから事実誤認がありそうだけど、面倒くさいからこれぐらいにしておこう。
※途中、URLをh抜きしているのはスパム対策のためか増田の一記事中にURLの個数制限があるらしく投稿出来なかったので、数を減らすためにh抜きしました。
Hydrogen peroxide and acetone are used to make triacetone triperoxide, or TATP, a powerful explosive with the consistency of granulated sugar used by operatives in their attacks against Paris and Brussels. The bombers who killed 52 in London in 2005 used it, and al Qaeda operative Richard Reid stuffed it in his shoes in a failed attempt to bring down an airliner flying from the U.K. to the U.S. in 2001.
Ehud Keinan, an Israeli chemist and one of the world’s leading authorities on TATP, said the explosive can be made with minimal technical skill and household equipment. “You can start in the evening, and in the morning it will be ready,” Mr. Keinan said.
Read More
Belgium Frees Man Charged in Brussels Airport Attack
Belgium Turns to U.S. for Help With Seized Laptops, Phones
Terror Network’s Web Sprawls Beyond Brussels and Paris
Brussels Terrorist Khalid el-Bakraoui Traveled to Greece From Italy
Brussels Struggles to Regain Its Balance
Belgium Rues Missed Terror Signs
The EU’s regulatory system, among the strictest in the world, depends on businesses reporting suspicious transactions of hydrogen peroxide, acetone and a number of other chemicals to the police. Businesses are urged to look for a number of red flags, such as if the customer’s use for the chemical is unclear or the purchase is made using large amounts of cash. The rules also ban consumers from owning seven potentially dangerous chemical solutions, including hydrogen peroxide solution, in concentrations higher than 12%.
But the fact that the chemicals have so many commercial applications—from disinfecting pools to removing nail polish—makes identifying suspicious transactions challenging. Authorities and experts say the huge quantity of legitimate trade of such widely-used chemicals means finding suspicious transactions is effectively like picking a needle out of a haystack.
“It’s a very difficult area because there are thousands of legitimate uses for these substances,” said Peter Newport, chief executive of the Chemical Business Association, which represents U.K. chemical distributors.
Some officials have also expressed worries that not all of the 28 EU governments have swiftly implemented the regulations, failing, for example, to create a contact point in law enforcement that would investigate suspicious transactions.
It remains unclear how the Islamic State operatives obtained the chemicals. An official with the Belgian Association of Chemical Distributors wasn’t aware of any suspicious transactions reported to the police in recent months. A Belgian police spokesman declined to comment.
‘It’s a very difficult area because there are thousands of legitimate uses for these substances.’
—Peter Newport, chief executive of the Chemical Business Association
The monitoring program used by customs agencies, called Global Shield, was sought by U.S. authorities seeking to stop the flow of bomb-making chemicals into Afghanistan, where insurgents used them to build bombs that were killing U.S. troops. These chemicals were mainly ammonium-nitrate fertilizer or potassium chlorate shipped from China for use in Pakistan’s match industry and then smuggled across the border.
Now shipments of these chemicals crisscrossing the globe are monitored through a system maintained at the World Customs Organization in Brussels. Customs agencies are supposed to warn each other about suspicious shipments, using some of the same criteria identified in the European regulations.
TATP poses a particularly serious threat to aviation, says Mr. Keinan. The chemical isn’t detectable, he says, by the machines installed at many airports, which are able to uncover more common, nitrogen-based explosives such as TNT. Dogs can also be trained to detect the material.
http://www.hotelgregor.cz/dawn-of-justicew-atch-batman-superman-online-full-movie/
http://www.hotelgregor.cz/dawn-of-justicew-atch-batman-superman-online-full-movie/
http://www.hotelgregor.cz/dawn-of-justicew-atch-batman-superman-online-full-movie/
http://www.arizona-overdrive.net/showthread.php/146867-HD-3060pX-**-Point-Break-Online-Free-FULL-MOVIE
http://thetrustnetwork.net/showthread.php?12836-TVRI-3060pX!**-Point-Break-Online-Free-Streaming-2015
1
2
ブラウザを使って、[修練]を押したら表示されるページのソースを見る
3
<form>〜</form>が3つあるので3つとも↑で作った.htmlにコピペする
4
<INPUT TYPE=HIDDEN NAME=point VALUE=64255183> って記述が消費する経験値を示してるので、VALUE=1に書き換える
5
<FORM ACTION="expe.cgi" method="POST"> を
<FORM ACTION="http://www.pandora.nu/mahjong/cgi-bin/so/expe.cgi" method="POST"> へと書き換える
6
L'analyse de la boite noire contenant les enregistrements des voix dans le cockpit apporte de nouveaux éléments cruciaux dans l'enquête sur le crash de l’A320 de la compagnie Germanwings, mardi dans le Sud-Est de la France. Selon une information initialement rapportée par le New York Times, l'un des pilotes se trouvait en effet hors du cockpit au moment de la descente de l'avion.
Le point sur les huit scénarios considérés par les enquêteurs
«Au début du vol, on entend l'équipage parler normalement», en allemand, «puis on entend le bruit d'un des sièges qui recule, une porte qui s'ouvre et se referme», a déclaré une source «proche de l'enquête» à l'AFP. Cette source n'était pas en mesure de dire si c'est le commandant de bord ou le copilote qui avait quitté la cabine de pilotage.
«Il essaie de défoncer la porte»
Ensuite, celui-ci «frappe doucement à la porte et il n'y a pas de réponse», précise une «source militaire» citée par le New York Times. «Puis il frappe plus fort et il n'y a toujours pas de réponse. Il n'y aura jamais de réponse. On peut entendre qu'il essaie d'enfoncer la porte», précise la mêle source.
Ces nouvelles informations, que la compagnie Lufthansa, maison-mère de Germanwings, n'a pas confirmées, permettent de réduire les hypothèses sur les causes du crash, mais posent aussi de nouvelles questions. «On ne sait pas pourquoi il est sorti, mais une chose est sûre, à la fin du vol, l'autre pilote est seul et n'ouvre pas la porte», conclut la source anonyme du journal américain.
Le copilote entré récemment dans la compagnie
Une source proche du dossier a indiqué à l'AFP que le copilote était entré «récemment dans la compagnie» allemande Germanwings (filiale de Lufthansa), «fin 2013 avec à son actif quelques centaines d'heures de vol». Une autre source évoque «300 heures de vol». Sa nationalité n'est pas connue avec précision. Lufthansa avait précisé que le pilote, quant à lui, avait «plus de 10 ans» d'expérience et «plus de 6.000 heures de vol».
Selon le journaliste de CNN Richard Quest, si l'un des pilotes quitte le cockpit, il doit systématiquement être remplacé par un autre membre d'équipage de manière à ce que deux personnes soient présentes en permanence dans le poste de pilotage. Les éléments rapportés par le New York Times n'indiquent pas si c'était le cas au moment du crash.
○half point
#13話「どれみ,お嫁さんになる?」でMAHO堂全員のライブ曲として歌われたのが印象深い。
MAHO堂の中でも一番変わった存在でもあり、同時に変わらない存在でもあるおんぷちゃんらしさを歌っている。
おんぷちゃんの始めてのソロ曲ということもあり、かなり印象深い曲です。
○we can do
もっ〜と18話「密着!!チャイドルの一日」で秘話が語られた曲。
エピソード自体は、アニメ本編を見ての通りだから置いておくとして、無印、#を経験してMAHO堂のみんなと親密になったおんぷちゃんの心情が歌われている歌詞もいい出来!
おんぷ曲で1つ選ぶならこれだなあ。
○北極星
これは本編では使われていない曲ですね。
We Can Doのカップリング曲だけに、ちょっと地味な印象。
ただ、前二曲と違ってしっとりした曲調で、おんぷちゃん本人が目指す大女優に相応しい貫禄のある曲だと思います。
明るくて楽しい曲なんだけど、なんかおんぷらしくないというか、おジャ魔女らしくない曲かも。
これも本編では使われていない曲です。
それだけに思い入れもなくて印象が薄いです。
下記リンクに2014年のオフィシャルドキュメントらしきものがあるので要約する
http://www.ittf.com/stories/pictures/2014_Basic_principles.pdf
日本卓球協会による要約があった(このページ書いてから気付いた)
http://www.jtta.or.jp/ranking/wr/system2014.html
auction@emagazine.rakuten.co.jp OR auto@emagazine.rakuten.co.jp OR bag@emagazine.rakuten.co.jp OR bargain@emagazine.rakuten.co.jp OR beauty@emagazine.rakuten.co.jp OR borderless@emagazine.rakuten.co.jp OR campaign@rakuten-shashinkan.jp OR checkout@emagazine.rakuten.co.jp OR cosme@emagazine.rakuten.co.jp OR delivery@emagazine.rakuten.co.jp OR dining@emagazine.rakuten.co.jp OR disney@emagazine.rakuten.co.jp OR eagles@rakuten.co.jp OR edy-rakuten@emagazine.rakuten.co.jp OR entertainment@emagazine.rakuten.co.jp OR familysale-news@emagazine.rakuten.co.jp OR freeshipping@emagazine.rakuten.co.jp OR gift@emagazine.rakuten.co.jp OR girls-mag@infoseek.co.jp OR golf@emagazine.rakuten.co.jp OR gourmet@emagazine.rakuten.co.jp OR groupbuy@emagazine.rakuten.co.jp OR grt-news@rakuten.co.jp OR hoken.master@rakuten.co.jp OR incentive@emagazine.rakuten.co.jp OR inner@emagazine.rakuten.co.jp OR interior@emagazine.rakuten.co.jp OR is-estate@emagazine.rakuten.co.jp OR jewelry@emagazine.rakuten.co.jp OR keiba@emagazine.rakuten.co.jp OR kitchen@emagazine.rakuten.co.jp OR ladies-fashion@emagazine.rakuten.co.jp OR media@emagazine.rakuten.co.jp OR mens-fashion@emagazine.rakuten.co.jp OR moneynews@emagazine.rakuten.co.jp OR netsuper@emagazine.rakuten.co.jp OR newproduct-cosme@emagazine.rakuten.co.jp OR newproduct@emagazine.rakuten.co.jp OR news-mag@infoseek.co.jp OR news-master@books.rakuten.co.jp OR news-master@rakuten.co.jp OR news@business.rakuten.co.jp OR news@ticket.rakuten.co.jp OR pc@emagazine.rakuten.co.jp OR point-campaign@emagazine.rakuten.co.jp OR point-g@emagazine.rakuten.co.jp OR pointup@emagazine.rakuten.co.jp OR r.auction@emagazine.rakuten.co.jp OR rakupon@emagazine.rakuten.co.jp
net_syomei@emagazine.rakuten.co.jp OR buyer@emagazine.rakuten.co.jp OR casual@emagazine.rakuten.co.jp OR rakuten-recipe-s@rakuten.co.jp OR rakutenbroadband@emagazine.rakuten.co.jp OR ranking@emagazine.rakuten.co.jp OR rental@emagazine.rakuten.co.jp OR rpoint@rakuten.co.jp OR select_shop@rakuten.co.jp OR seller-r.auction@emagazine.rakuten.co.jp OR shoes@emagazine.rakuten.co.jp OR sports@emagazine.rakuten.co.jp OR sweets@emagazine.rakuten.co.jp OR toolbar-news@emagazine.rakuten.co.jp OR toy@emagazine.rakuten.co.jp OR uranai-mail@emagazine.rakuten.co.jp OR wedding@emagazine.rakuten.co.jp OR wine@emagazine.rakuten.co.jp OR dog@emagazine.rakuten.co.jp OR baby@emagazine.rakuten.co.jp OR digital@emagazine.rakuten.co.jp OR seafood@emagazine.rakuten.co.jp OR sake@emagazine.rakuten.co.jp OR hobby@emagazine.rakuten.co.jp OR health@emagazine.rakuten.co.jp OR is-chintai@emagazine.rakuten.co.jp OR rakutencash@emagazine.rakuten.co.jp OR hoken-hikaku-master@rakuten.co.jp OR rakuten-toto@rakuten.co.jp OR affiliate@emagazine.rakuten.co.jp OR booking@golf.rakuten.co.jp OR info@rental.rakuten.co.jp OR flower@emagazine.rakuten.co.jp OR eagles-v@emagazine.rakuten.co.jp OR cat@emagazine.rakuten.co.jp
近年、関数型プログラミングの重要性はいろんなところで叫ばれています。
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に)興味を持ってくださって、ホームセンターの大人用オシメのコーナーが大賑わいになれば幸いです。。
本を買うにあたり少しでも出費を抑えたいと考えて、クレカ会社のオンラインモールをまとめてみました。
これは、特定のクレカで買い物をする場合に、カード会社のモールを経由することでポイント還元率が上がるようなサービスです。
さらにポイントサイトも比較対象だったりします。面倒すぎますね。
東方ビーエムエスの差分譜面の作者として、作者と交流を続けていた。また、ニコ生にてプレイ配信も行っており、
以降出てくるDとはtwitter内のダイレクトメッセージのこと
2013年9月頃までニコ動での動画投稿や、PSO2(ネトゲ)等を通じネットで活動?
2013年11月スパーダ稼働 この頃から、ツイッター(一部はスカイプ)上にてビーエムエスクラスタからお金を借りようとしていた?
「○○からD来た?」「来てないから、不採用(審査落ち?)だな」
といった会話がされていた。これに気づいた被害者達が情報をまとめ、「某氏から不審なDが来ています」と警告。翌日借金の件も追加し警告。
20数人がDを受け取っていたことが判明した。
TL上でフォロワーに絡もうとするが、過去に関わりのあったビーエムエス作者やプレイヤーからは
「自業自得」「金の切れ目が・・・」といった空中リプが飛んだ。
それを受け謝罪しようとする。しかし、自分の口からは「借金」という単語は全く出さず、
Dを送った相手にこっそり謝罪した後、
「お詫びを申し上げたい」「関係者だけに話したい」と呟き、プロフィールを全て消しアカウントを非公開に。
PCは所持していないのか、ツイッター以外の情報は全く変更されていない。以下引用(下が古い)
はい。もう喋りません。でも謝罪だけさせてください。 みなさん本当に、本当に申し訳ありませんでした。深く謝罪させてください。
嫌われ者だよね。この状況耐えれそうにない。とにかく謝罪と全部話す。
ほんとはあんなDM送りたくなかったよ!
あかん…あそこだと一般にも見えちゃうか…。関係した人だけにみてもらいたいけど…。
あそこならブログ的なので書けると思ったらPCじゃないと無理だった…。
まだ送れてない方々に 本当に謝罪したい
全部話したいけど監視されてるかもと考えると書けない…。
DM消すべきではなかった…誰に送ったかわからなくなってる…。
「DM来てないぞ!」って方々、ほんとごめんなさい…。
30人以上に対し「お金を貸してほしい」旨のDを送りお金を借り、
その期間ゲーセンに行っており
全く返済しないままツイッターに復帰しようとしていた模様。(Rウサ氏に対する警告リプライから)
DJPは2014年3/18確認時点で約13000、プレイ履歴にラストダンスやジークフリートが確認出来た。
初期のゲーセン行脚履歴が確認できないが、高知、愛知、滋賀、愛媛、広島エリアでプレイした模様。
期間工絡みの呟きがあったことから、工場での仕事を転々としながら
ゲーセンで遊んでいたと思われる。
なお、LR2の履歴は2013年九月末?今回問題のには絡まないと判断した。
http://chiebukuro.search.yahoo.co.jp/search?sort=0&p=%E5%80%9F%E9%87%91+%E7%9F%A5%E4%BA%BA&ei=UTF-8
音ゲーおよびビーエムエスクラスタの30人以上に借金を頼むDを送り、数人?に対し返済もせず
月に1万前後程度とはいえゲーセンに入り浸っていたのは、人からお金を借り生活が困窮しているレベルとは思えず、
誠意が感じられない。
また、ツイッターのDだけで謝り鍵をかければいいという認識は甘い。
作者の横の繋がりは強いし、プレイヤーも大勢いる。間接的ではあるが数千人だ。
彼がこのままtwitter非公開の状態で復帰したところで
以前のような評価は得られないだろうし、自分は下心を感じてしまう。