Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「Clojure」を含む日記RSS

はてなキーワード:Clojureとは

次の25件>

2025-08-28

anond:20250828124154

AIに聞きつつ調べてみたけど、ミスを防ぎつつ簡単にできる対策は無いっぽい?

(返り値は必ずdeepコピーして利用するというのは忘れがち。イミュータブルな型で返す、はネストした構造まで考慮すると簡単ではない)

ということで、デフォルトイミュータブルな値を扱うClojureをみんな使おう

Permalink |記事への反応(0) | 13:00

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-08

JavaでスタティックオンリーにするぐらいならScalaなりClojureなりで関数型プログラミングにしようという話にはなる

Permalink |記事への反応(0) | 10:17

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-25

anond:20250325102011

それはPython場合

実装言語によって違う。

Clojure辞書型についてAI解説してもらった。

Clojureのimmutable persistent datastructureについて

Clojureのimmutable persistent datastructureは、データが変更されるたびに新しいバージョン作成し、元のデータ構造を保持する仕組みを備えています。この特徴により、データの不変性と効率的メモリ使用が実現されています。以下では、Clojure代表的データ構造であるmap型(hash-map)を例に、その仕組みを解説します。

Clojuremap型と不変性

Clojureのhash-mapキーと値のペアを保持するデータ構造であり、以下の特徴を持っています

具体例:キーと値の追加

以下に、Clojureキーと値を追加する操作(assoc関数)を例として説明します。

(deforiginal-map {:a 1 :b 2})(def updated-map (assocoriginal-map :c 3))

元のmap (original-map):

{:a 1 :b 2}

新しいmap (updated-map):

{:a 1 :b 2 :c 3}

この操作では、元のmapは変更されず、新しいmap作成されます。ただし、効率化のために、元のデータ構造(:a 1と:b 2)はそのまま再利用されます。新しく追加された:c 3のみが新しいノードとして構築されます

内部実装:Hash ArrayMapped Trie (HAMT)

Clojuremap型は、Phil Bagwellによって提案されたHash ArrayMapped Trie (HAMT)というデータ構造を基盤にしています。この仕組みでは以下が行われます

利点

まとめ

Clojureのimmutable persistentmap型は、不変性と効率性を両立させる設計により、信頼性の高いデータ操作可能にしています。これらの特徴は特に並列処理やトランザクション管理などで有用です。

Permalink |記事への反応(0) | 10:34

このエントリーをはてなブックマークに追加ツイートシェア

2023-09-28

anond:20230928140751

そりゃあScheme教科書にでてくるしClojureJVMだしさぁ、LispといったらCommon Lispの話だよ、きっと。

Permalink |記事への反応(1) | 19:46

このエントリーをはてなブックマークに追加ツイートシェア

anond:20230928002757

既にSchemeClojureの話が出ているようだが

Permalink |記事への反応(1) | 14:07

このエントリーをはてなブックマークに追加ツイートシェア

2023-09-27

anond:20230927172558

仕事Lisp書いてるけど仕事Scheme書いてる人間には遭遇したことがない。。。Clojure書いている人間は思ったより多いんだが

知ってたらどんな職場か教えてほしい

Permalink |記事への反応(0) | 22:13

このエントリーをはてなブックマークに追加ツイートシェア

anond:20230927111127

7つの言語 7つの世界

著者Bruce A. Tate 著、まつもとゆきひろ 監訳、田和 勝 訳

  ・・・ この本、面白そうなんだけど、取り上げられている言語が「Ruby、Io、PrologScalaErlangClojureHaskell」なので、ある程度プログラミング経験がある人が対象かな。たぶん複数言語を多少なりとも使ったことのある人向けかと。

ちなみにオックスフォード大学では1年生向けの最初プログラミング言語としてHaskell が選ばれているとか。凄いよね。そして彼らが2番目に教わるのがOberon だとか。言語定義が最もコンパクト言語からとか。(ケンブリッジ大学最初に教えるのはOCaml だそうです。)

Permalink |記事への反応(0) | 12:42

このエントリーをはてなブックマークに追加ツイートシェア

2021-07-18

anond:20210718161714

https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%89%E3%83%AF%E3%83%BC%E3%83%89%E3%83%BB%E3%83%AD%E3%83%BC%E3%83%AC%E3%83%B3%E3%83%84

Wikipedia引用すると、

計算結果の検証のため同一のデータを初期値として複数回シミュレーションを行うべきを、

ここまではよくわかる。それで物理学数学的なカオス理論を押す連中が間違っていると思うのが、

二度目の入力の際に手間を惜しみ、初期値の僅かな違いは最終的な計算結果に与える影響もまた小さいだろうと考えて、小数のある桁以降の入力を省いたところ、

ここ。ここが諸悪の根源だ。まず計算科学の連中が大学に入って最初に引っかかるミス大御所がひっかっている。たとえば、0.4 - 0.3 は計算科学では 0.1 じゃない。それは十進法から二進法に変換するという計算機の特性理解してない人がやるミスだ。嘘だと思ったら、0.4 - 0.3 == 0.1 と C なりRuby なりPython なりJava なりHaskell なりでやってくれ。ちなみにJavaScript なら 0.4 - 0.3 === 0.1、Lisp族のClojure は (== (- 0.4 0.3) 0.1)、PHPちょっと自信がないので省かせてもらう...。浮動演算ユニットがついているプロセッサIEEE 754 の類をサポートしているなら「偽」となるはずだ。ここでは「桁あふれ」「丸め誤差」なんかは説明しないが、計算機で小数を扱うのは注意が必要ってことだ。閑話休題、つまり計算機で数学物理学実数のように小数点を扱うなら 3.0 と 3.1と3.14 は別物として扱う必要があって、カオス理論創始者であるローレンツは「有史に残る」ミスを犯した。

結果が大きく異なった。

これは金融界隈のエンジニアたちにとっては、コンピュータが現れてから悪夢のような形で襲っていて、ゴースト・イン・ザ・シェルの題材にすらなっている「既知の未知」という類のエラーだ。はっきりいうと、大御所にこんなことを言うことは憚れるが、エンジニアだと3年目以降だとしないミスMITエリートがやっているという、なんというか「そりゃ、そうなるだろ」的なミスをしでかした結果なんだよ。例えば、古典物理学だと有効数字ひとつ下の数値は切り上げて四捨五入するというのは教科書的には正しい。だがね、計算科学だと小数点の扱いは事故の元なんだよ。具体例を出すと「Ruby円周率を100回掛け合わせる、Ππ(パイパイ、n=100)みたいなことをする。

puts [3.0, 3.1,3.14].map{|i| 100.times.reduce(i) {|j, k| j *= k + 1}}# 2.7997864633183236e+158# 2.893112678762268e+158# 2.930443164939848e+158

もう一度、特に高校物理をやった人は考えてほしい。数値を切り捨てしないだけで、これだけの差が生じるのだ。そりゃ、ローレンツ大先生も驚くわな。現実世界では起きないような気がするのはなぜか?、と思うじゃん。そこで、わたしはこう思うわけですよ、

計算機は実数を正しく扱えない」

とね。だからこそ、

計算機を正しく扱わないことで生じる偏見差別

というもの科学する学問があって良いのじゃないかと。つまり

それこそが【計算科学】というもの

なのではないかと。


異論は認める

Permalink |記事への反応(1) | 18:12

このエントリーをはてなブックマークに追加ツイートシェア

2020-11-05

最近ウェブ系は以前よりもPHPが目に付く気がする

以前とかあいまい表現使っちゃったし自分の見てる範囲問題かもしれないが、Go やらScala やらClojure やら Rust やらweb系に強い静的型付け言語があるなかで、型を重視してみたいな文脈PHP使ってます見たいなのをちょろちょろ見るようになった。

別に型がどうのという話でなくてもそれなりに技術スタックPHPがいまだに根強い。

PHPの動向は追ってないし追う気もないんだが、それなりに時代に合わせた言語機能進化をしてるってことなんだろうな。

Permalink |記事への反応(1) | 19:11

このエントリーをはてなブックマークに追加ツイートシェア

2019-06-21

Javaをメインで書いているわけではないけど

別にJava良くないか

なんならRubyより静的言語だという点で優れているような。

最近Go流行っているが、それならJavaだって同様に良さそうな気がする。

Java批判すべき点ってなんなんだろう。

-記述冗長

- nullがたまにうざい

- なんか重厚な感じがする

-重厚アーキテクチャ流行りすぎた?

- ORMとかが重厚なのが多かった

-ビルドツールが洗練されていない時代があった

- 故に環境構築が大変だった

-tomcat +jar みたいなのがだるかった?

-strutsがしんどかった

- 未だにstruts脆弱性が見つかったりするところ

-xml地獄からアノテーション化したりいろいろと模索していた

- なんかJava案件地雷が多かったとか?

-ちょっと昔には「俺たちイケてるプログラマ」はみんなRailsに移っていった流れがあった?

- EffectiveJavaよいが、そもそもそういうtips意識せずにそう書けるような言語仕様になってほしかった気もする

- 非同期処理やスレッド処理がやや難しかたか、あるいは言語側でのサポートが薄かったか(?)

言語仕様的な批判と、エコシステム的な批判に分けられそうなきがするな。

関数型言語の関心はScalaClojureに全フリしてもらって、Javaシンプル機能を持つGo方向性なModanJavaになっていってくれれば良さそうな気も。

httpサーブレットとかそのへんが微妙だったかもしかしてGoみたいにnet/httpライブラリが標準であればそれをベースにすることでオレオレフレームワークの乱立を避けることができるか、と思ったけどJAX-RSとかがあるな。

Goだって冗長記述必要言語だが、好かれているし、Javaも悪くない言語な気がするんだよな。

まあ何でもいいが。

ロジカルに考えているようで結局なところ雰囲気的なところに左右されているエンジニア多い気がする。

まあわいも、人気な言語に乗っておいて高単価を得られたほうがいいのでそうするが。今の所Goが肌にあっているんだよな・・。3年ぐらい使って熟練度上がってきたし、さほど悩まずにコーディングすることができる。

PHPの人が好きな、あるいはRubyのmethod_missingなど活かしたテクコードは、書いているやつは気持ちいかもしれないがわいは明示的にinterfaceがわかるコードが書かれていたほうが好きだ。型で振る舞いがわかったり制御されていないと分かりづらくない?複数プロジェクトを掛け持ちするから、読むときに前提知識が少なく読めるコードがいい。

まあJavaもリフレクションでテクいことができる気がするな。

Goがいい。誰が書いてもだいたい同じコードになるから、誰かに作業を振ったとしてもレビューやすい。

まあこれからJavaを書く気はしないが、GoAPI書いているマンから見ると、JAX-RSとかでゴリゴリAPI書いていくの全然悪くないんじゃないかと思うのであった。

最悪別にGeneric入らなくてもいいかもな。別にそんなに困ってない。はいってくれるなら、はいってくれたほうがいいが。sliceに対してmap, each, filter, existsなどのメソッドが生えることになるイメージかな。まあそれは欲しくなるけどな・・・

Scalaもいいんだが、たまにイキったコードを書くと分かりづらくなる時がある。イケてるコードを書こうと思ったとき結構パワーを使う言語だ。なんかモナドってジェネリックを更に強くしたやつだとも捉えられるような気がするな。ゴリゴリ関数型で書こうと思った場合プロジェクト全体に影響がある話なのでアーキテクチャ設計に力がいる気がする。

年をとると大事にするポイントが変わってくるな。昔はスーパープログラマになりたくて関数型言語とかやっていたが、今はいかに効率よく仕事をする=金を稼ぎ自由を得るかを重視している。職業プログラマとなったわけだ。仕様固めたりリリースしたり不具合対応したり運用したり、フリーランスなら税金計算したり、金儲けの方法考えたり忙しいんじゃ。今は結局スーパープログラマとは何か悩ましいよ。「プログラマとして」キチガイレベルにすごい人間というのはまだ見たことがないかもしれない。コーディングが早い?バグ修正が早い?パフォーマンスやばいコードを書ける?設計が優れている?

わいのレベルが低くて、高い人間凄さに気づけていないのかもしれないな。

Permalink |記事への反応(0) | 02:17

このエントリーをはてなブックマークに追加ツイートシェア

2019-01-29

Land ofLisp読み終わった

一周目は軽く読み流し、二周目にコードを書きながらしっかり読んだ。2週間かかった。

これに手を付ける前のLisp歴は1週間。ネットLisp入門読んだ程度。

オライリーの本にあるまじきファンキーな表紙なだけでなく、中身もジワる漫画イラストがちょくちょくある。

にもかかわらず内容は恐ろしく難しかった。

読んでいて素晴らしい技術書だと絶賛されているのがわかったし私もそう思うが

Lispを学ぶのに一冊目の本としては適さないと思った。

一冊目の本は機能解説に特化すべきだ。

ソケット通信ゲーム木、ミニマックス法によるAI実装など出てきて

それを今学習中の未知のプログラミング言語解説されるので二重の複雑さ・苦しみになっていた。

とは言っても他にLispの本なんてないし、これをやるしかないのだろう。

Permalink |記事への反応(1) | 01:24

このエントリーをはてなブックマークに追加ツイートシェア

2018-06-02

anond:20180602223530

最初言語は何を選びましたか

C言語

当時はゲームを作りたかったら、まずはC言語に手を出す時代だった。

最初一年間でどんな成果物を上げましたか

何の成果もなかった。

というか、挫折した。当時は中学生だったのだ。

現在プログラミング歴何年目で、どんなプロダクトに携わっていますか?

最初挫折から数えていいなら、20年以上経っている。

プロダクトは…。具体的には内緒

汎用的な部品とかそういうタイプのものを作っている。

勉強中の言語技術はありますか?

Clojure

関数型言語を1個も使えないのが悔しくて、趣味でやっている。まだ本を1冊も終わっていないので、先は長い。

どんなプログラマを目指していますか?あるいはあなたの考える理想プログラマとはどんな人ですか?

プログラマであり続けたいが、こういうプログラマになりたいというのは無い。

Permalink |記事への反応(1) | 23:02

このエントリーをはてなブックマークに追加ツイートシェア

2017-04-11

オライリーに出てくるフレンズ

参考:http://www.oreilly.com/animals.csp

Permalink |記事への反応(0) | 23:58

このエントリーをはてなブックマークに追加ツイートシェア

2016-04-22

プログラミング。好きだけど、さようなら

追記(2015 5/20)

洋食屋ジョブチェンジを果たしました。

---

1年の間、プログラマとして働いていたが、続けていくことが無理だと思い、さようならする話。

プログラマになる前は、コーヒー屋で働いていた。しかし、色々とあり辞め、職業訓練校に通ってプログラミング(php)を学び、60人ほどのソフトウェア開発会社就職した。

会社に入ると、まずC#研修があった。研修と言っても、C#で内製ツールを独りで作るという研修だった。この研修中に「あれ、オレ、プログラム書けねー」と思ったりしたが、研修は終えることができたし、社内の人にも「なかなか良く出来ている」と言ってもらえ、大丈夫だろうと思っていた。

研修が終わり、C#の社内で実際に使われているツールに、機能をいくつか追加する仕事を振られた。前任者にどんな設計になっているのか大雑把に聞き、なんとなくイメージができ、コードを読み始めたのだが、これが全く意味不明で、何のために有るかがわからないクラスが大量にあった。名詞王国だと思った。前任者に、何故このクラスは、この単位で分割されているのか聞くと、「単一責任原則だよ」とか「hogeパターン使うと、後から機能追加しやすいじゃん」というような回答をもらった。納得は出来なかったが、プルリクも承認されて、このツールデプロイされていたので、社内的にも、このコードは、クソコードと言われる物では無いはずだと思ったので、自分プログラムを書き続けていれば、こんな感じの設計に慣れてくるんだろうと思った。モヤモヤは残っていたものの、仕事はしなければいけないので、前任者のコードに習うように、クラスを追加したりして、機能を追加した。プルリクを出すと、設計には何も言われずに、タイポや、テストコードを注意されただけだった。指摘された点を修正すると承認された。振られた仕事は完遂した。が、結局最後まで、モヤモヤは消えなかった。むしろモヤモヤモヤモヤになった。

次に振られた仕事は、内製ツール設計から自分で行い作成する仕事だった。言語Goだった。Goで書いてと言われた時は、以前から自分モヤモヤオブジェクト指向のせいで、モヤモヤしているんじゃないかとも思っていたので、喜んで!という感じであった。が、Goを触ってみると、結局、Go継承の無いオブジェクト指向言語やないかと思った。Goの標準ライブラリinterface名もHogerみたいな感じに接尾辞に-erを持ってくることが慣習らしく、この命名だと、interfaceを満たす構造自身が-erになるので、正にオブジェクトだなぁと思った。巷での「Goオブジェクト指向ではない」というのに期待していたのだが、自分にとっては、とてもオブジェクトしていました。

Goに対する印象は良くなくなったが、ツール設計をしないといけなかったので、Go構造体をC#クラス見立て、前回の前任者のコードのように、単一責任も持つ構造体に(無駄に)分けて、プログラムを書いて、プルリクを出した。自分でクソなコードだと思いながら。だけれどもレビューでは、「errorのチェック忘れ」「標準ライブラリにこの機能ある」「こんな風に書ける」といった感じだった。こんなコードで良いんかよと思ったが、良いらしい。ワケワカメだった。

ここらで、プログラムを書く仕事は、無理だと悟った。現実世界は、自分自然だと思う方法と違う方法で、プログラミングをすることを強要してくる。

ちなみに、仕事ではC#Goを書いていましたが、オブジェクト指向と仲良くなるためにSqueak(Smalltalk)で、オレオレ言語作ってみたりもしましたが、何が嬉しくて、オブジェクト同士のメッセージパッシングプログラムを作るのかわかりませんでした。

Lisp語族言語も触りました。

Clojureは、気持ち良くプログラムを書いていても、Javaが顔を出すところでフラストレーションが溜まってしまって、つらくなりました。

Common Lispは、自分が触った言語の中でも、秀でて良いと思いました。プログラマを辞めても、プログラム書く必要に迫られたらCommon Lispで書こうと思うくらいにです。Land ofLisp楽しいです。あと、CLOS総称関数の考え方が大好きです。

最後に、この投稿は、一種の決別の表明です。いつまでも自分に向いていなかったことに、時間を掛けてしまっている自分との決別です。

最後まで読んでいただきありがとうございました。

自分共感をもった参考リンク

Permalink |記事への反応(0) | 22:03

このエントリーをはてなブックマークに追加ツイートシェア

2016-02-26

関数型プログラミングのことは嫌いにならないでください!

高階関数はいいぞ!

lambdaはいいぞ!

ミュータブルはいいぞ!

homoiconicはいいぞ!

マクロはいいぞ!

Clojureはいいぞ!

Permalink |記事への反応(1) | 22:20

このエントリーをはてなブックマークに追加ツイートシェア

2015-10-14

http://anond.hatelabo.jp/20151014205607

マイナー言語オレオレフレームワークを作って公開する

RustとかClojureとか尖ったやつで

Permalink |記事への反応(0) | 20:59

このエントリーをはてなブックマークに追加ツイートシェア

2015-05-02

clojureのjはjavaのj

閉包を意味するほうのクロージャ綴りはclosureなのだが、

時々、クロージャ(clojure)という表記を見かける。

それ、JavaScriptに変換されても.NETに行ってもjavaのjが消えないあのLisp方言だ…。

そんな間違いするなんてご苦労じゃー。

Permalink |記事への反応(0) | 09:45

このエントリーをはてなブックマークに追加ツイートシェア

2014-06-04

http://anond.hatelabo.jp/20140604122737

変数副作用)が使えるかどうかはデカイ。

全然方言じゃない。

変数脳でHaskellとかClojure書こうとすると再帰で頭パンクする。

Permalink |記事への反応(0) | 12:35

このエントリーをはてなブックマークに追加ツイートシェア

2014-04-28

http://anond.hatelabo.jp/20140428003850

言語国内トップ企業決めようぜ

Ruby NaCL

Python BeProud

PHPYahooJapan

JavaISID

.NET日立ソリューション

Clojureにゃんぱすー

Permalink |記事への反応(0) | 10:49

このエントリーをはてなブックマークに追加ツイートシェア

2014-04-20

SIerを辞めさせてくれなかったのでエロサイト作りました

結論から申し上げますエロサイト作成いたしました。

ゆーすけべーさんが以前に作ってたimeeroみたいな感じです。画像Blogスクレイピングしてエロ画像効率的に見るサイトです。

だらだらエロ画

なお、先程解約手続きを済ませたので4月末くらいに見れなくなりますエロサイト自体にあまり興味がなく、ローンチしたらやる気が無くなったのです。

主要な技術

生産性よりも憧れの昇華を重視しました。

テスト駆動開発がやりたく、DSLに強いロック魂を感じたRSpec

はやりに乗ってBootstrap

特にCapistrano名前キュートでやっていることがカッコイイのでどうしてもやりたい技術でした。

あと、メインとなるRailsこの記事に書いているスキルの中で唯一経験が無かったというのが一番の理由です。Rubyが好きなのもありますけどね。

辞めたい理由
会社を辞められない理由

いやぁ、退職しようとすると会議室で8時間説教されるって都市伝説じゃないんですね〜。

ところで転職活動をした感覚だと、今より給与が2倍出るところでも簡単に内定が出ることが分かりました。

転職活動やエロサイト作成を通して精神的な余裕も出ましたので、もう少しSIerのものの問題、仕事の進め方などを熟考した上で、本当に正しいSIerのあり方を考えたいと思います。無理そうなら逃げます

以上、よろしくお願いいたします。

Permalink |記事への反応(0) | 18:38

このエントリーをはてなブックマークに追加ツイートシェア

2014-04-11

http://anond.hatelabo.jp/20140411144631

できるだけイミュータブルにすべき、だと関数型でいいじゃんってなるよね。

多態とかはHaskellでもClojureでもできるし。

Permalink |記事への反応(1) | 15:02

このエントリーをはてなブックマークに追加ツイートシェア

2014-01-16

http://anond.hatelabo.jp/20140116110557

Clojure

基本全部 staticfinal

Permalink |記事への反応(0) | 11:08

このエントリーをはてなブックマークに追加ツイートシェア

2014-01-15

http://anond.hatelabo.jp/20140115004151

Haskell,Clojure

副作用が限定されてる言語なら、自動的テストやすコードになるよ!

Permalink |記事への反応(0) | 09:16

このエントリーをはてなブックマークに追加ツイートシェア

2013-05-14

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、女はどう答えたらいいの?

あ、まず前提として、

貴女プログラミング大好き男を夢中にさせることが、

はたして貴女幸福にするかどうか、それはまた別問題だけれど。

はいえ、プログラミング大好き男たちは玉石混交ながら、

IT系の超かしこい男なども多く、

多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこ学生まぁこれは有望株)か研究者系なんか、

あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、

したがって、釣り師たる女たちにとっては、

なかなかあなどれない釣り場です。

では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女は、どう答えれば理想的でしょう?

まず最初に、その男COBOLのようなタイプレガシーコード

あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、

そんなタイプ場合は、

貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、

「わたしが、仕様書を作ってあげる♪」

これこそまさに必殺の答えです。

そこでプログラミング大好き男が、えへへ、とやにさがったならば、

貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを

ひそかに練習しておきましょう。これで成功まちがいなしです。

しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の

落とし方をお伝えしましょう。

この場合貴女は、こう答えましょう、

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

もしも貴女がそう答えたならば、

その瞬間、プログラミング大好き男の目はきらりと輝き、

かれの貴女への恋心は、

20%増量になるでしょう。

なぜって、Scalaは、

ちょっぴりお洒落Ruby風味に記述できて、

Maybeモナド差し込んで、

コンパイルは遅いながらも、そこがまた

ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。

しか関数型言語としての不変変数・不変Listを実装して

質高くふるまっていて、なおかつ、

JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド型推論を実装した功績もあって。

したがってScalaこそは、

本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、

インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、

この世界で唯一(いいえ、JVM系列のJRubyClojure と並んで唯三)遭遇しうる場所です。


では、参考までに、危険な回答を挙げておきましょう。

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女がこう答えたとしましょう、

MicrosoftVisual Basic forApplicationが好き♪ 週3回はExcelコーディングするの。」

その瞬間、プログラミング大好き男の貴女への恋心は消えます、

なるほどMicrosoftは、世界最大のOS供給メーカー

特にOfficeは平凡ながら、ま、無難にまとめてあるものの、

しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、

VBAはさらプログラミングについての謬見を撒き散らした罪がありますからプログラミング大好き男にとっては天敵なんです。

ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど

社内SESIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。

また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」

と答えたとしても、同様の効果をもたらすでしょう、

なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、

しかし2000年代うそうからセキュリティ関係の問題で転落し、

いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。

(注1)

またもしもたとえあなたプログラミング言語が大好きで、

「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、

最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」

と、答えたとしたらどうでしょう

なるほど、貴女の趣味は高く、

しか.NET Frameworkは、C# がcoolであるのみならず、

.NET Framework上で動く F# やIronPythonIronRubyマネーJScriptも最高においしいんですけれど、

しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、

(なんだよ、MS信者な女だな、カネかかりそう)って。

(注2)

貴女が、プログラミングが大好きで、言語の名を挙げるにしても、

たとえば、JavaScript(node.js)ならば安心でしょう、

なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、

貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたプログラミング言語おた宣言をしているとは受け取られないでしょう。

しろへぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。

男は嬉々として、30個くらいのnode.jsフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)

あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。

しかし、たとえば、世界が(つーか竹内先生ポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、

selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、

バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすRubyにせよ、

まったく読めない$_だらけで頭悪い仕様リセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、

気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語ひまわりなでしこにせよ、

基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、

そういう言語名前をいきなり挙げるのは、ちょっぴり微妙。

ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクトオイラーの問題もうほとんどHaskellで、解いちゃった♪」

と答えたならば、どうでしょう

これはかなり博打な答え方で、

なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、

あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、

へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら

鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、

しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、

なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから

しかも、この答えには、もうひとつ問題があって、

男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、

もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、

そこにはもはや、男が貴女圏論モナド教育する余地がまったく残されていません、

したがって貴女のその答えは、

プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。

ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが

しかし、ああ見せて、プログラマープログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数名前一つにも気を使い、女と自分の将来に夢を持っています、

貴女の答え方ひとつで、プログラマー貴女への夢は大きくふくらみもすれば、

一瞬で、しぼんでしまいもするでしょう。


では、スキットを繰り返しましょう。

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、

貴女はこう重ねましょう、

それからね、いま、わたしが使ってみたいWebアーキテクチャは、

PlayFramework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。

あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」

これでもう完璧です。

PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。

そうなったらこっちのもの

デートの日には、ペアプロ用にHappy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、

github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。

その日からプログラミング大好き男は貴女の虜になるでしょう。

では、釣り師としての貴女の、愛の幸運幸福をお祈りします!

注1:

(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)

(あと、マジで機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)

注2:

もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。

注3:

プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。

半数くらいのプログラマーしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、

過度でないていどにフリルがついたものオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーときの色だ)ので、薄ピンクホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。

補記:

 元ネタhttp://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/

補記2:

  「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。

補記3:

 言うまでも無いけど、ネタです。 

 また、COBOLとVB、C++ではまったくもって難易度が違うことも分かっています。後者になるほど圧倒的に難しい。

Permalink |記事への反応(2) | 02:26

このエントリーをはてなブックマークに追加ツイートシェア

2013-05-12

http://anond.hatelabo.jp/20130512182240

clojure本家javaに取り込まれるのか!と思ったら

clojureじゃなくてclosureのtypoかよ

Permalink |記事への反応(0) | 19:58

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp