1 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 18:41:38.12 ] JVM上で動作するLisp方言「Clojure」のスレ。 Clojure - home clojure.org/ www.try-clojure.org/ 前スレ: 【Lisp】プログラミング言語 Clojure【JVM】 hibari.2ch.net/test/read.cgi/tech/1255533519/
2 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 18:42:06.81 ] 【リファレンス】 API Overview - Clojure v1.3 (stable) ttp://clojure.github.com/clojure/ Clojure-contrib API Reference ttp://richhickey.github.com/clojure-contrib/index.html ClojureDocs ttp://clojuredocs.org/ Clojure Examples Wiki ttp://clojure-examples.appspot.com/ 逆引きClojure (日本語) ttp://rd.clojure-users.org/ Rosetta Code ttp://rosettacode.org/wiki/Main_Page clojure-euler ttp://clojure-euler.wikispaces.com/ 【ブログ・ML・質問箱】 Clojure ttp://groups.google.com/forum/#!forum/clojure Clojure Dev ttp://groups.google.com/forum/#!forum/clojure-dev planet clojure ttp://planet.clojure.in/ stackoverflow.com tag:clojure ttp://stackoverflow.com/questions/tagged/clojure github.com clojure ttp://github.com/languages/Clojure Clojure-jp (日本語) ttp://groups.google.com/forum/#!forum/clojure-ja
3 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 18:42:25.94 ] 【チュートリアル】 Clojure Programming ttp://en.wikibooks.org/wiki/Clojure_Programming labrepl (おすすめ) ttp://github.com/relevance/labrepl 4Clojure ttp://www.4clojure.com/ Clojure - Functional Programming ttp://java.ociweb.com/mark/clojure/article.html Clojure Tutorial For the Non-Lisp Programmer | Moxley Stratton ttp://www.moxleystratton.com/article/clojure/for-non-lisp-programmers Clojure - Functional Programming for the JVM ttp://java.ociweb.com/mark/clojure/article.html PCL -> Clojure (Practical Common Lisp のサンプルコードを Clojure に) ttp://blog.thinkrelevance.com/2008/9/16/pcl-clojure 【コーディング規則】 ttp://en.wikibooks.org/wiki/Learning_Clojure/Coding_Conventions Library Coding Standards ttp://dev.clojure.org/display/design/Library+Coding+Standards
4 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 18:42:49.55 ] 【その他】 InfoQ: ClojureがSTMとLISPをJVMにもたらす ttp://www.infoq.com/jp/news/2009/02/clojure-interview-halloway InfoQ: Rich Hicky氏、Clojureの特徴と実装について語る ttp://www.infoq.com/jp/news/2009/06/hickey-clojure Writing/Coding: Clojure Series: Table of Contents ttp://writingcoding.blogspot.com/2008/06/clojure-series-table-of-contents.html 【本】 Programming Clojure ttp://www.pragprog.com/titles/shcloj/programming-clojure ttp://www.amazon.co.jp/dp/4274067890 (日本語版) The Joy of Clojure (本は電子ブックがついてくる 要 manning 登録) ttp://joyofclojure.com/ ttp://www.amazon.co.jp/dp/1935182641 ttp://www.infoq.com/jp/articles/the-joy-of-clojure Practical Clojure ttp://www.apress.com/9781430272311 ttp://www.amazon.co.jp/dp/1430272317 Clojure Programming ttp://shop.oreilly.com/product/0636920013754.do ttp://www.amazon.co.jp/dp/1449394701 Clojure in Action ttp://www.manning.com/rathore ttp://www.amazon.co.jp/dp/1935182595 【テンプレ終了】 テンプレ収集場所 tinyurl.com/clojure-2ch (ID:guest Pass:cl)
5 名前:デフォルトの名無しさん [2011/10/13(木) 19:12:09.10 ] 京都大学霊長類研究所では、未知の感染症が蔓延し、 感染した研究員はどのスレッドにも同じコピペを 繰り返すといった症状が報告されています。 研究員によると思われる書き込みがあっても 近づかないようにしてください。 京都大学
6 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 20:53:34.46 ] 乙 開発サイトが1.4に書き換わってる
7 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 15:54:21.82 ] lispで書かれた実用的なソフトってなんかあるのか?
8 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 17:43:27.01 ] Emacsとか初代Yahoo!のWebsiteとか。
9 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 17:51:25.35 ] www.byflow.com/ はClojureで作ってるらしいね 開発者ブログとか始めてくれないかな
10 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 18:21:38.05 ] 人工知能のための超マイナー言語とおもっていたが、 結構面白いことできるんだな。
11 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 18:55:17.54 ] 最初に発明された頃人工知能の研究がブームだったので自然にそれに 使われた例が初期には多いってだけなんだが
12 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 18:59:20.37 ] 当時GCを持つ言語がLispぐらいしかなかったってのが大きい 人工知能みたいな大きな問題をGCがない言語でやりたいとは思わん
13 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:32:09.87 ] 「Lispは人工知能の言語」は、今は「Cはカーネルの言語」よりも怪しい Lispの後、1970年代にPrologが開発されたし 最近のAI系研究室は(Perl|Python|Ruby)を使ってる所もあるってたまに聞くし
14 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:34:20.58 ] >>7 Lispだと却下される案件でもClojureだとWarファイルで納品できるので通ったりする 実際2つほどプロダクトをリリースしてる。 今3つめの案件をClojureで書いてる
15 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 22:04:14.16 ] いいね。実運用での所感聞かせてよ。
16 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 22:15:03.81 ] eclipseでもemacsでもswank経由のREPLで即時実行テストができるのでコードが完成系になる為のサイクルがもの凄く短い HTMLテンプレート展開はPHPとかのフロントエンドとデザイナ組に任せてバックエンドのロジックをringでガンガンつくっておいて、実サーバではTomcat等にWarで渡せる なので実運用時のメンテコストも既存のservletと変わらないが開発サイクルが短いのとプログラマが嬉々としてコード書くのでチームのモチベーションが高い 最初上を説得するの大変だったんだけど、あっという間にプロダクトがリリースできるのを目の当たりにさせたら通った。 #ドカタが戦力になったというか
17 名前:初心者 [2011/10/15(土) 23:12:14.89 ] Clojureを勉強しようと思って、 Eclipseで counterclockwise(以下 CCW)をインストールしました。 新しいClojureプロジェクトを作ると、 自動的に、プロジェクトフォルダ直下に clojure.jar, clojure-contrib.jar, clojure-contrib-src.jar, clojure-src.jar が置かれていて、 すぐに、Clojureのプログラムが始められて便利でした。 それで、最近、1.3がリリースされたようなので、 1.3を使おうと思ったんですが、 CCWで作成されるプロジェクトは依然、1.2のままです。 (CCWは最新にアップデートしているつもりです。) プロジェクト作成時に、Clojreの1.3 を選んだり、あるいは、プロジェクト作成後にClojure1.3 にする方法はありますか? 後者は、ホームページから、clojure.jar, clojure-src.jar くらい探してきて 置き換えれば十分でしょうか?? (1.3からはcontribがなくなっているようなので、削除して。) ちょっとよくわからないので、教えてください よろしくお願いします。
18 名前:初心者 [2011/10/16(日) 03:50:52.02 ] 自己レスです。 要はEclipseの使い方でつまずいていたようです。 Clojureのサイトからダウンロードしてくると、clojure-1.3.jarなどが入ったファイルが落とせるので、 それを、Eclipseのプロジェクトの中に入れます。 それで、Project>Properties>JavaBuildPath で、Librariesに clojure-1.3.jarを追加して、Orderで、srcディレクトリの上に追加。 もとの、clojure.jarとかclojure-contrib.jarなどは削除する。 という感じで、一見問題なく使えています。 sourcepath を設定していませんが、(デフォルトでは、clojure.jarはclojure-src.jarなどをsourceパスとして設定していましたが) 自分での作り方がわからないので、設定していません。 一応、問題なく使えています。 以上
19 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 11:51:28.16 ] eclipse/netbeans/inteliJで、mavenやleinningen、cakeのmaven経由で管理できるんだろうけど IDEとの連携ってそれで機能するのかな
20 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:33:40.07 ] lein-eclispを入れればいい。
21 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:36:21.25 ] inteliJはla clojure+leiningen プラグインを入れる。eclispよりか こっちのほうが出来がいいと思う。
22 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:43:11.47 ] 前スレが埋まる前に新スレ使っちゃうのがクロージャ使い ユーザーの民度が低い言語です
23 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:48:09.06 ] スレ違いだけど、>>16 の開発者が嬉々としてって羨ましいな。 俺がちゃんとコスト対効果と有用性を提示できてないのが悪いんだけど、 「コードなんて若い奴らに書かせとけばいいだろw」と言われて凹んだわ。 そして若手からも「今Javaで出来てるんだから、それでいいじゃないですか」と。 ジョブズ並とは言わんが、もちっと説得力あるプレゼンしないとな。スレチごめんなさい。
24 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:51:04.51 ] >>23 うん、お前が悪い
25 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:59:37.82 ] チュートリアルみたいなのを作って、啓蒙するとか。 Clojureは、チュートリアル的なものが少ない。英語でも。
26 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 14:07:23.19 ] 簡単なところなら、演習問題や実例は99problemsやProject Eulerを使えばいいしね。
27 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 18:09:50.83 ] >>25 >>3 のlabreplはマジオススメ
28 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 21:20:08.61 ] >>16 >プログラマが嬉々としてコード書く kwsk.....。
29 名前:デフォルトの名無しさん [2011/10/18(火) 00:09:36.78 ] 結局、JVMを捨てて.NETメインにするまではマイナー言語のままなんだよな。
30 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 01:43:20.82 ] JVM言語だと、haskellがまともに動くようにいじってたり競争が激しいが、 作者さんは、2003年にDotLisp(.net)、2007年にclojure(JVM)と移ったのであまり.netに手を出す気はないらしい。 なので、別の人がclojure-clrをポートしてる。
31 名前:デフォルトの名無しさん [2011/10/18(火) 13:37:01.57 ] Clojure1.3です。 defvar ってよくわからないんですが、 どういう働き、使い方をするんでしょうか。 変数を初期値とドキュメント文字列で定義する、もののようなので、 下記のようにしていますが、エラーがでます。。 (defvar vartest 123 "document") (println vartest (class vartest)) defvar が何かわからないというエラーなんですが。。 def と同じような働きをすると思って、使ってみたんですが。。
32 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 15:19:28.51 ] (defvar vartest 123 "document" ) ↓ (def ^{:doc "document"} vartest 123) これをするのと一緒
33 名前:31 [2011/10/18(火) 21:03:13.70 ] defvar 使うと、 Exception in thread "main" java.lang.Exception: Unable to resolve symbol: defvar in this context というエラーが出てしまうんですよね。 インストールの仕方が悪いのでしょうか。。
34 名前:31 mailto:sage [2011/10/18(火) 21:10:07.39 ] https://github.com/getwoven/clj-time/pull/13 もしかして、1.3では、defvar はデフォルトで削除されている??
35 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 21:40:36.51 ] see clojuredocs.org/clojure_contrib/clojure.contrib.def/defvar
36 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 09:28:09.80 ] defvarは大分前からcontribにあるし、1.3ではdefがdocstringを受け付ける (def foo "A meaningless number." 123) これはdefnやnsと同じdocstring→内容という順番に揃えられた (ns bar "A useless namespace." (:require [clojure.string :as str])) (defn baz "Returns \"foo,bar,baz\" always." [] (str/join \, ["foo" "bar" "baz"])) 1.2で関数ではないvarにdocstringを付けるには、contribを使うなり、>>32 のように書くなりすれば良い
37 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 09:39:30.11 ] s/docstring→内容/名前→docstring→内容/
38 名前:31 mailto:sage [2011/10/19(水) 22:45:49.36 ] なるほど。そういう流れだったんですね。
39 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 23:05:02.26 ] >>28 今時入ってくる新人ってREPL以前にMSXみたいなBASIC環境すらしらないんだ で、コンピュータが対話環境で使えるときに感じる自分の能力の拡張みたいな感覚にアヘン吸ったみたいな快楽を覚えてしまって ものすごい集中力でコード書きだして周りのほうがびっくり状態になってる。 実際ここ数年Unitテストとかで対話に近いテストサイクルでもモチベーションが少しだけ上がったんだけど Realな対話環境がもたらす単体関数の即時テスト(たんにSlimeでevalするだけなんだけど)が面白くてしょうがないって言ってる。 だから16で「ドカタが」って最後に書いたんだけど、こいつらがそのまま会社に居着いてくれればうれしいけど、収入上がんないとこれ何人かは流れちゃうかもしれない。
40 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 23:42:45.18 ] アヘン吸わせると良いのか
41 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 00:00:15.66 ] >>39 それはぜひどこかの媒体で発表してもらいたいな。Clojure党支援につながる 笑
42 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 10:12:07.78 ] BASICを知らない新人が多いのは想像できるが 今時REPLを知らない新人が多いなんてことがあるのか
43 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 10:38:50.24 ] まだ「プログラミング教育はJavaでやってます()」って結構多いだろ Windowsしか使ってないとテキスト端末環境を使うことにすら慣れない奴も多いし
44 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 19:07:49.41 ] まるでプログラミング教育をJavaでやるのがおかしいかのような書き方だな
45 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 19:51:51.16 ] >>44 初めて使う言語スレに移動すればこの手の話はいっぱい出てる。これを話しだすと フレーム論争になるし、オフトピになってしまう。
46 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 19:55:40.69 ] >>41 ここに書いただけでもばれたらやばいので雑誌や論文誌でとかミリ
47 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 23:20:09.54 ] うん
48 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 00:02:17.41 ] 煽りでもなさそうなのに「ドカタ」とか「Java()」みたいなことを平気で書いてしまうのは痛いな プロダクトを2つリリースして今3つめって、見る人が見れば一発でバレるようなことを書いといて バレたらやばいってのも意味が分からん ちょっと頭の弱い人なのかな… こういうのがいると言語自体の印象が悪くなるし、ホント迷惑だわ
49 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 00:26:02.75 ] 2チャンの中ってほんとキチガイめいた人(キチガイかもしれない。)が いて、行動の善悪の判断がずれてる人がいるから慎重になったほうがいい ところ。彼らの思い込む正義のためなら何でもしてしまう危険な連中がい るから。 JavaをしらんからJava()で煽りになるんかどうかすら俺は知らん。土方は この板じゃ差別用語なのは知ってるが。
50 名前:デフォルトの名無しさん [2011/10/21(金) 22:45:23.90 ] KCLの御大がご退官されるとのこと。
51 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 23:30:54.79 ] Smalltalkだったら失神するな
52 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 14:12:36.72 ] 東大京大どっち?
53 名前:デフォルトの名無しさん [2011/10/22(土) 17:18:47.63 ] lispスレに書き込むべきだったが誤爆したな。 京大のほう。
54 名前:デフォルトの名無しさん [2011/10/23(日) 16:25:10.65 ] 〜 Clojureで改行はいつするのかとRubyist 〜 Clojureでのコーディング規約というか、改行をどこで入れるのかとか、 説明したサイトありますか??
55 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 17:35:04.23 ] >>54 スレの1からのリンク集いおいてある。
56 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 12:44:11.48 ] FP Day 2011, Cambridge UK www.fpday.net/fpday2011/programme.php 名前に対してこじんまりとしたイベントだけど、 キーノートにMSRのhaskellとF#の御仁が来て、 Hands-onとCaseStudyには追加でClojureコースがあったという。
57 名前:デフォルトの名無しさん [2011/10/25(火) 19:18:36.65 ] Clojureで、 [ ]括弧を使うのは、 let, defn の仮引数部 ,with-open とかだけど、 これらに共通するのは何か?? なぜ、def では[ ] 括弧を使わないのだろうか。。
58 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 23:09:16.71 ] defを含むスペシャルフォームだと、let,fn,loop clojure.org/special_forms
59 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 12:16:53.17 ] シンタックスの一部としてベクタを要求するフォームは主に二種類ある。 ・引数を表すベクタ(例:fn、defn、defmacro) ・その式の「内側」で有効な束縛を作るベクタ(例:let、binding、dotimes、loop) defはそのどちらでもない
60 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 12:25:13.19 ] あ、引数のベクタも書式は名前と値のペアではないが 「内側」で通用する束縛を作っている点で共通すると考えてもいいな
61 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 14:21:51.20 ] Lispの生みの親が逝ってしまった・・
62 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 16:00:36.34 ] クソ言語生み出した奴は死んで当然
63 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 17:40:00.11 ] >>62 死んで詫びろ今すぐ
64 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 18:42:02.83 ] ClojureのSTMは使い物にならない ? JUMPERZ.NET Blog ttp://kanatoko.wordpress.com/2011/05/06/clojure_stm_too_slow/ Clojure での並列プログラミングはシンプルな記述も出来ない、パフォーマンスも悪い、という事ですが。 Clojure はマルチスレッドプログラミングの複雑さを解決するとか聞いていたのに、話と違うような気が…… どう思いますか?
65 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:31:17.00 ] またそれか
66 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:09:31.58 ] あまり共有せずイミュータブルな構造に見合った設計すればいいんじゃないかな? 最近なイントロ用スライド https://github.com/strangeloop/2011-slides/raw/master/Sierra-ClojureIntro.pdf
67 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:11:49.07 ] https://github.com/strangeloop/2011-slides/blob/master/README.md Richyの講演 simple made easyのビデオ
68 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:17:10.72 ] https://github.com/strangeloop/2011-slides/raw/master/Marz-Storm.pdf github.com/strangeloop/2011-slides/raw/master/Tellman-EventDrivenProgrammingInClojure.pdf こういうのやってるぐらいだから、なんとかなんじゃないの?
69 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:31:15.21 ] >>64 匿名でブログことは余りコメントしたくないな。コード規約的に余り見たくないんだよな。
70 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:32:52.96 ] >コード規約的にあまり見たくない 日本人の方、いらっしゃいましたら翻訳をお願いします
71 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:47:21.13 ] _で始まる変数がキモイとかそういうことかしらね?
72 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 03:06:23.37 ] 他人のコード見ると、コード規約を忘れてしまう、とエスパー。
73 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 09:11:32.09 ] > 匿名でブログこと 日本語でおk
74 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 10:11:06.01 ] ensureとかcommuteとか www.slideshare.net/kakuda/clojure-3844723 www.slideshare.net/marblejenka/clojurestm 変更を観測するadd-watchというのがあるのか groups.google.com/group/akka-user/browse_thread/thread/ff909a4cd9f6159c java.ociweb.com/mark/stm/STM_1up.pdf あとは、retry回数とかの統計も欲しい。
75 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 01:03:32.08 ] rob-rowe.blogspot.com/2011/10/getting-started-with-clojure-clr.html 少し使ってみた感じ、monoがターゲットじゃない(.netメインにする意味はwinでWPFやVSぐらい?)、ikvmとかでjvm向けの命令補完する仕組みがあるとちょっといいのになと思った。 なにに使えばいいのか分からん。 そういえば、dynamic導入するのかな。
76 名前:デフォルトの名無しさん [2011/10/28(金) 13:38:25.12 ] Clojureと、elisp とで、クオートの意味合いは少し違いますか?? たとえば、.emacsの設定ファイルにある (add-to-list 'foo-bar-alist '(name . value)) のは、 普通のClojureの関数だと、 (add-to-list foo-bar-alist '(name value)) こういう感じで、foo-bar-alistに、クオート必要ないですよね。 (もちろん、クオートが必要なようにadd-to-list関数を書くこともできると思いますが。。) ClojureからLispに入っているので、 普通の人にはわかない疑問かもしれませんが、 皆さんの感覚を教えてください。
77 名前:76 [2011/10/28(金) 13:40:56.12 ] クオートというよりは、 あるいは、デフォルトの、 変数や、シンボルの扱いが違うのでしょうか? その辺り教えてください。よろしくおねがいします。
78 名前:電波いっぱい mailto:sage [2011/10/28(金) 20:25:16.28 ] 言語やの違いとかではなくて、破壊的な変更をしたいときのやり方が違うだけ。 emacsのadd-to-listは破壊的な関数で、内容を書き換えたい変数そのものを渡すためにクォートしてる。clojureで同じことをするにはatomなんかをはさむからそうならない。
79 名前:電波いっぱい mailto:sage [2011/10/28(金) 20:33:35.12 ] あ、言語の違いではあるな。クォートの違いではない。ごめん。
80 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 05:21:18.42 ] >>76 クオートは評価を遅らすという意味で違いはないでしょ。 確かにクオートとかシンボルはすごい混乱しやすい所。 俺も初心者の頃はreplでずっと考えを整理してた。 まず先頭が関数かマクロかをはっきり認識しておく。 関数なら引数は左から順に'評価'されていく。 評価とは以下のことだ。 (ここでめんどくさくなったのでやめる)
81 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 13:13:38.75 ] toki.2ch.net/test/read.cgi/scienceplus/1319679294/
82 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 13:42:10.79 ] >>76-77 中途半端にいろいろ考えるよりも、 Lispにおける関数とマクロについて勉強してみたらいいんじゃないかな? なぜ関数の引数にクオートが必要になる場合があるのか。 なぜマクロなんてものが必要になるのか。 クオート、関数、マクロ、に対する考え方は、elispもClojureも変わらないはず。
83 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 00:01:10.88 ] elispのadd-to-listでは、 foo-bar-listというシンボルが何を束縛するかを変更するから、 foo-bar-listをクオートしてシンボル自体をadd-to-listに渡す必要がある。 普通のClojureの関数?では、 シンボルが何を束縛するかを変更するのではなく、 シンボルが束縛してる物の状態を変えるから、 シンボル自体を渡す必要が無く、シンボルが束縛してる物を渡せば良い。 したがってシンボルをクオートする必要が無い。
84 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 03:00:44.69 ] lein-multi, clj-stacktrace, slingshot, lein-difftest, robert-bruce technomancy.us/154
85 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 03:41:12.09 ] 1.3系って1.2の頃とcontribの扱いが違うのですげー戸惑っちゃうんだけど、感覚的に行き先がわかるようなドキュメント転がってないかな。
86 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 09:57:36.37 ] 1.2でもばらばらのやつ使えるってあるけど、coreに取り込まれた奴はどうすればいいんだ。 >85 感覚的か分からんけど 概要や関数名インデックスで検索とか API Overview -clojure-contrib v1.3 (in development) clojure.github.com/clojure-contrib/branch-master/index.html 開発サイトのドキュメント(まとめ、新旧対応表) dev.clojure.org/display/doc/Clojure+Contrib dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go
87 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 10:59:52.87 ] >>86 おおー、この最後のリンクだわ欲しかったの 感謝感謝!
88 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 12:11:14.32 ] 1.2でコアに入ってなくて、1.3で入ったcontrib由来のライブラリって何があったっけ
89 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 09:08:37.59 ] 2週間で80レスか。22−3週でレスを消費するペース
90 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 13:23:41.36 ] www.cafepress.com/technomancy?utm_medium=cp_social&utm_source=addthis&utm_campaign=CafepressShop#.TqoexsC5DuE.twitter
91 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 14:13:43.12 ] LeiningenよりかClojureのロゴが入ってるマグカップが欲しいわ。
92 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 17:50:17.95 ] >>91 いいなそれ Land Of Lispでもいいや
93 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 18:11:02.67 ] この際、Half-Lifeでもいいよ
94 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 19:33:03.52 ] >>93 λしか合ってねぇ
95 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:48:27.74 ] www.zazzle.co.jp/clojure?st=date_created&ps=15#products そこのサイトもこちらのサイトも勝手に作れるのかな? マグカップは無いようだ、、
96 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 06:51:00.51 ] 先月22日に、ClojureCLRの(開発者ほぼひとりなので個人でなく)公式blogが始まってた。 いきなり10日間の利用調査をおこなって、 clojureclr.blogspot.com/2011/10/2011-clojureclr-survey-is-open.html 結果発表してる。 clojureclr.blogspot.com/2011/11/results-of-2011-clojureclr-survey.html clojure(.core)1.3の99%機能実装してる javaのweb,db環境に依存してる 開発環境に不安 CLRのジェネリックスのサポートがない monoで動かない 調査中2人しか個人利用でも常時使ってない など、いろいろ書いてあった。
97 名前:名無しさん@お腹いっぱい。 [2011/11/06(日) 10:04:05.57 ] GUIやDB操作のClojure独自の使用できないのかね
98 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/11/06(日) 10:57:19.00 ] >>97 使用× 仕様
99 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 19:11:20.97 ] >>97 jdbcとかコネクションプールとか、チョロく使えすぎるのでだれもわざわざ書いたりしないんだよね
100 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:46:51.95 ] GUIだったらseesawとか。
101 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 10:13:06.73 ] を、非公式な1.3互換のclojure.contribだって https://github.com/arohner/clojure-contrib/tree/1.3-compat いまのところ、clojarsなどには置いてないので、ローカルに置いて使うようだ。
102 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 23:06:18.43 ] clojure 1.3にすると1.3へ未対応なライブラリが一杯あって^dynamicせいや!と山ほど警告が出るのがいやだなぁ clojarsのサイトみてもdependencyは実際読むまでわからんから困る(clojarqlが山ほど居てどれが対応版かわからんとか)
103 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:54:43.02 ] ^{:dynamic true}なら1.2で構文エラーにならずに済むらしい
104 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 07:27:02.56 ] ループ内でpersistent hashをassoc,dissocして新しいの作ってばかりだとGCやら処理コストで遅いかとおもってたらjava.util.HashMapと殆ど速度かわらないのね。 ものすげー驚いたわ 現実的な部分だとSTMを高速に書き換えるスレッドが競合するようなアホな事しなければjavaでsynchronizeに神経使うよりも開発効率めちゃくちゃいいわ。
105 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:13:51.00 ] clojure/conjスライド https://github.com/relevance/clojure-conj/tree/master/2011-slides ことしのツイートは大分増えた気がする twitter.com/#!/search/%23clojure_conj%20-rt
106 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 02:10:22.64 ] >>104 haskellでもミュータブルなArray使って実用的な速度出したりしてたから、 実装を工夫してイミュータブルでGC減らしたりするのは、 関数型全体でも実装面で影響が有ったみたい。
107 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 00:30:59.40 ] >>16 二つのプロダクトは何人で開発していたの? 完成形になる速度は、どのくらい違うもん? もっと熟練度が上がれば、どのくらいになりそう?
108 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 02:43:53.39 ] Evangelizing Clojure rhebus.posterous.com/79870335 ・Know your enemy Scala, Clojure and Groovy are in competition, but they are not enemies of each other. The real enemy is the status quo. status quo - ラテン語で現状(というか現実?) dictionary.goo.ne.jp/leaf/ej3/81156/m0u/status+quo/ マインドシェアって英語はWP7で聞くようになったな。
109 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 03:21:53.85 ] Scala,Clojure,Groovyは競走中じゃが、お互いに敵ちゃうよ。本当の敵じゃ 現状じゃよ。 *Clojureやるなんてデカイリスク抱えるやん。確かなのがいい *ClojureはJavaよりええ選択やとおもうけど、Javaは産業の標準や わしは、Clojureを選んでプロジェクトが失敗しよったら、より非難しそうや。 *Clojureを選んだら、よう知ってるClojure開発者をやとえるか知らん。 とこんなところがthe status quoの内容ですね。
110 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 09:49:42.45 ] 2つめのこと (Javaを使ってプロジェクトが失敗する時)より非難しそうや。
111 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 09:58:13.31 ] https://groups.google.com/forum/#!msg/clojure-cake/GG7DbCQmmW4/Uh7IdWNFmdwJ cakeとleiningenが統合するらしい。 これでlein replは最初は起動は普通だが2回目は速くなりそうだな。
112 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 11:40:27.98 ] >>110 昔、「IBMを選ぶ理由は、IBM以外を選んで失敗したら何言われるか判らないから」って話があった。
113 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 12:52:17.49 ] そういうどうしようもない底辺は相手にする価値がない
114 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 13:27:32.58 ] 結局管理者の立場になると、自分の責任になってくることをなるべく減らす ために、既存の権威というのか常識にあわせて、そちらに責任転嫁をするように できるというのは魅力的なんだろう。 海外ですら(あのブログの人どこの人かしらんけど。)あの状態だから、より 保守的な日本ならその常識がもっと重要なんだろうね。
115 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 20:51:52.28 ] groups.google.com/group/clojure-dev/browse_thread/thread/dd506abb7f0188cb ライブラリ作ったら、clojure MLで発表しよう。 そこが、みんなの集まる場所(だとおもっているので) RH うろ翻訳。開発MLで呼びかけてるんだなー。大黒柱っぽくていいね。
116 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 05:35:56.30 ] なんでその内容をdevで周知してるんだろ。
117 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 07:29:02.90 ] clojureを購読してる人に「お前らもっと自分のコードアピールしろよ」ってことではなく 「clojure-devはcontributor向けのMLだから、こっちでアナウンスしても気付けない人がいるよ」ってことじゃね
118 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 14:05:38.06 ] そうだと思うけど、ツイートするだけじゃなくって言ってるのが一般向けに見えた。 それにdevでアナウンスしてる人なんて見当たらないし。
119 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 20:47:43.78 ] そこのあなた(ライブラリ作成者)に呼びかけるんだったら、(無いから開発サイトになってしまうが)公式ブログやtwitterに書いた方がいい内容だよね。 開発MLは閲覧自由だけど、core,contribの開発という目的にあわせてコントリビューター宣誓しないとメンバー登録出来ない。 逆説的なせいか、なんかこうしっくりこないんだよなー。 clojure.org/contributing dev.clojure.org/display/design/JIRA+workflow
120 名前:デフォルトの名無しさん [2011/11/16(水) 23:32:47.34 ] 遅ればせながら意訳してみた。 君はClojureライブラリの開発者かい? 何かリリースしたばかり? メインのClojureグループでアナウンスした? もししてないならやった方が良い。 あっちは現在でも何千もの人々に情報提供できる主たる場所なんだ。ツイートも良いけど、Clojureグループも入れてやってよ。 よろしくね。 リッチより
121 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 09:10:53.52 ] www.manning.com/rathore/ 正式に発売されたみたいね。 Clojure in Action is a hands-on tutorial for the working programmer who has written code in a language like Java or Ruby, but has no prior experience with Lisp. とあるんで、すでに一つ言語を習得した人向けの本かな。 Clojure in Action は職業プログラマーのための実践的チュートリアルです。 JavaやRubyの言語でプログラムを組んでいる人向けで、Lispの経験はなくて もいいよ。(使ってる言語:他の情報からだとOOPを扱った言語のことを指してるのかな。) というようなこと。内容は多義に渡ってるのかな。基本から応用まで、実践例 を交えてるとのこと。manningは掲示板に登録したりしてメール広告をもらうよう にしておくとクーポンは簡単に手に入る。
122 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:56:19.81 ] スレタイだけど、clojureならスレの番号はベクタで [3] とかにして (プログラミング言語 clojure [3]) っていうのはどう?
123 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:25:21.20 ] >>122 なんか nilとか戻されそう
124 名前:デフォルトの名無しさん [2011/11/19(土) 16:06:40.75 ] conterclockwiseで開発しようとしてるんですが、何度も再起動ってどうやってやるんですか? どうも、起動するたびにREPLというのが起動してとても遅い気がします 簡単な計算ならLoad File in REPLで素早くREPL内で起動するようですが、Swingを使うと Load file in REPLでウィンドウが現れなくなってしまうようです
125 名前:124 mailto:sage [2011/11/19(土) 16:33:45.32 ] うーん、REPLが起動していないと、エディタ内の補完も効かないみたいですね しかもSwingアプリを終了させるとREPLも終了してるようで、 補完が効かなくなってしまう しかも特定の補完の仕方をするとめちゃくちゃ遅いですね intelliJ IDEAのLa Clojureはこうした問題が何もないので、 こっちを使うことにします。
126 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 16:41:22.11 ] intellJ IDEAのほうがいいと思うよ。leiningenプラグインもあるから そちらも入れておけばいい。外部ライブラリを使うようになれば こちらはかなり重要だ。 でも、一番いいのは、leiningen+slime+emacsだから。 ものによったら、eclipseに限らずSwing アプリを終了したときにREPLも落ちることはある。
127 名前:124 mailto:sage [2011/11/19(土) 16:53:43.92 ] >>126 親切にありがとうございます。leiningenってツールが良いんですね。 Emacsという手もありましたか。 検討してみます。
128 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:11:59.60 ] Swingアプリケーションを終了した時にREPLが終了するのって setDefaultCloseOperationにEXIT_ON_CLOSE(ウィンドウを閉じたら終了する)を指定したとか どこかでSystem.exitを呼んでるとかではなく?
129 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:16:21.89 ] あと、IDEは一連の作業でそう何度も再起動するようなものじゃないと思うが…… viやnanoならファイルを開く度に起動して用が済んだら閉じるけど
130 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:21:45.78 ] viで開発するならscreenつかってバックグラウンドでreplを動かさないと 効率が上がらん。
131 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:54:44.61 ] 俺も時間取って書く時はバックグラウンドで走らせる
132 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 19:32:51.60 ] viよりemacsの方が良いのか
133 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 21:42:45.45 ] >>132 一種のIDEだし, なじめば, まぁ... slimeなれたら離れられなくなるとおもう
134 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 22:25:04.20 ] clojure 1.3で、 (def a 1)は警告でないのに(def *a* 1)は警告が出る。 二つの使い分けってあるの? あと警告文の「名前を変えろ」の意味がよくわからんけど*取れってこと?
135 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 23:13:09.48 ] vimも良くなってる。vim+lein(cake)+screenという組み合わせは、 かなり機動力が高いと思うよ。vimclojureかslimzかどちらかのvimプラグイン を入れれば、シンタックスは対応できるから。
136 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 00:03:26.02 ] >>154 1.3から*で囲われたvarは再束縛できなくなった、んで ^dynamicつけないといかんぞって警告が出てくる CommonLisp慣れしてると結構面食らう
137 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:49:11.33 ] monoにも、llvmのバイトコード吐く仕組みがあって、 www.mono-project.com/Mono_LLVM www.mono-project.com/Mono:Runtime:Documentation:LLVM この記事の通り下のSciMarkをmono-llvmで回したら通常の1.5倍ぐらいのスコアだった。 ただし起動時の初期化が長いので短いプログラムでは遅くなるかも。 www.cs.ucsb.edu/~ckrintz/racelab/PhxCSBenchmarks/index.html ちなみに同じくubuntu11.10 amd64で、gcc -O2で2倍、-O3 i7-avx最適化で、2.5倍ぐらいだった。 openjdk7で2.1倍。
138 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:50:06.86 ] 誤爆
139 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 01:54:58.65 ] *var-name*をclojure.jarでは定数に使ってるので、みんなも定数に使ってねって事だったかも。
140 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 03:11:36.80 ] >>136 あー、*で始まって*で終わる名前はdynamic専用の名前にすっからよろしく、ってことか。 >>139 定数・・・なのかな。定数は*なしで定義するのかなと思った・・・けど*clojure-version*が謎。
141 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 03:24:59.74 ] *つけるのはbindingで値を変える前提のVarだけにしとけって事。 みんなバラバラの意味で使って混乱するから強制にしたんじゃね。 逆に^dynamicついてないとbindingできなくなったし。 ついてないのを無理やり変えるならwith-redefsかalter-vat-rootかな。
142 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 04:03:30.08 ] clojuredocs.org/quickref/Clojure%20Core 変数だから、警告は名前変えてじゃなくて、dynamic付けろっていってくれた方がいいよね。
143 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 04:11:50.98 ] clojuredocs.org/clojure_core clojuredocs.org/clojure_contrib 索引
144 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 10:02:15.44 ] >>142 二文目で ・(動的に再束縛することを意図しているなら):dynamicメタデータにtrueを付加する(indicate ^:dynamic) ・(慣習を知らずに、単に*で囲ってるvarをよく見かけるから付けたのなら)名前を変える(change the name) のどちらかをやれ(Please either)と明記してるだろ?
145 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 10:30:56.37 ] それから、>>136 は「*で囲んだシンボルだけがデフォルトで再束縛できない」という意味合いにも解釈できるから >>139 は「Clojureでは*で囲んだシンボルを定数に使っているんだろう」と解釈したんだろうけど 「すべてのvarが動的に再束縛できる」→「:dynamicがtrueなvarだけが動的に再束縛できる」に変わっただけで *で囲んだvarだけ特別に動的な再束縛を禁止しているわけではない (>>136 は、Common Lispのdefvarから類推すると、Clojureの"var"はすべて動的に再束縛できて当然だから面食らったって話……だよな?)
146 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 10:33:15.76 ] あ、ごめん もしかして136と139は同じ人?
147 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:10:00.67 ] >>145 面食らった件はそう、他のライブラリでも*db*とかを再束縛してたりしたので1.3で結構面食らった *付きじゃないと警告でなかったような気もしたのだけど気のせいかな? >>146 136だけど139じゃないです
148 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:44:32.03 ] >>147 *で囲まれていなければ警告は出ないが、動的に再束縛できない点は変わらない *で囲んだ時だけ警告されるのは、慣習と実際が食い違っているから 逆に、1.2まではこんなこともできた(:inlineでインライン化される場合は効かない) (binding [println (fn [& args] nil)] (println "hello, world")) ; 出力されない
149 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:34:13.12 ] >>148 動的束縛全面禁止になったのか、で、*はよく用いられていたから警告だすようになったって事でFAってことかな?
150 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 21:12:01.18 ] 全面禁止じゃなくて、:dynamicがtrueなvarに限定された よく使われているというか、Clojureでも動的に再束縛できる変数は*で囲む慣習がある ただ、名前によって動的な再束縛の可否という振る舞いを変えるのではなく 移行時に警告で振る舞いの変更を知らせるようにした
151 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 09:28:11.55 ] まったくの初学者で、labreplはじめたんだけど、It's all dataとloopingの間に 深い深い溝があるような・・・みんな、軽々と乗り越えたん? いきなりrecurだのベクター中の&だのif-letだの出てきてわけわからん状態で挫折しそう。
152 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 15:41:09.31 ] https://sites.google.com/site/clojurejapanesedocumentation/home/reference labreplやるにも、 ここら辺は必要なのかな? &は残りの引数という意味らしい。
153 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 16:47:58.20 ] 全くの初学者でよくそれを見つけたなw 今動かしてみたけど、結構良くできたチュートリアルだね。 でも確かにloopingの2番はいきなりdefn、loop、分配束縛、if-let出してきてそれ使えってのは無茶だな。 たっぷり例示してからやればいいのに。
154 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 17:45:00.44 ] テンプレでおすすめに入れてるから。
155 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 18:05:38.78 ] vimeo.com/channels/fulldisclojure このビデオキャストイイね。advanced course だけど、プログラミングclojure を読み終わって更に力を付けたいという人には向いてる。 ただし、英語の放送ですが。
156 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 18:55:25.38 ] おまえら予約した? Amit Rathore "Clojure in Action"
157 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 20:26:31.69 ] >>156 ebook版なら先週くらいに買ったよ
158 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 21:09:21.64 ] >>152 さん、ありがとうです。やっぱり難しいですよね。 labreplは>>154 さんのいうとおり、テンプレのお勧め見て 試して見ました。・・・が、>>153 さんの言われている単語すら よくわからない状態で。精進します。
159 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:12:48.46 ] >>155 まだ2つしか見てないけどいいわこれ 教えてくれてありがと
160 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:59:16.34 ] joy of clojure買ったのに読んでなかったわ
161 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 23:55:04.58 ] media.pragprog.com/newsletters/2011-11-21.html どこ標準時か判らないけれど、11/25(金)だけ40%オフだそうで。 pragmatic bookshelf pragprog.com/titles プログラミングClojure第二版 翻訳されるなら英語版買わんでも、と思うがどうなんだろう。
162 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 01:16:19.86 ] in actionのmanningは感謝祭の前日50%引きセールだそうで。 西海岸は、22日の午前8時過ぎだから日本時間だと今日17時までかなあ。
163 名前:157 mailto:sage [2011/11/23(水) 04:03:33.67 ] くぅ、まだ100ページ(四分の一)しか読んでないのに半額セールとか涙出そうだ ショボーン 木曜休みとってあるからこの連休で全部読むしか orz
164 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 04:33:38.69 ] 感謝祭前後には毎年なにか割引があること覚えておかないとなあ。 apressの場合、去年は12中旬ぐらいに25%セールがあったけど今年はどうだろ。
165 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 14:44:07.82 ] clojureスレにきてるやつって なにげに英語余裕で読み書きできそうなやつがそろってそうな 気がしてならない。
166 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 16:07:52.55 ] >>165 まだ裾野が狭いからね。日本語のリソースをもっと増やさないといけ ないのはわかってんだが。手が回らない。
167 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:28:11.01 ] クックブックみたいのが出るといいと思うんだがねえ。 入門はあの翻訳本でいいとして。
168 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:22:12.21 ] > 入門はあの翻訳本でいいとして。 取り上げてる例に興味が持てなかったので未だに積んであるんだが
169 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:41:40.13 ] 俺もLancetには興味なかったけど、あの本のLancetパートは 別に熱心に読まなくてもいいというか、章末の復習ついでに実装が進んでいく感じ 第二版は全体の構成が少し変わってるけど、Lancetパートはあるんだろうか
170 名前:157 mailto:sage [2011/11/23(水) 23:58:22.32 ] Leiningenを例にする本がでればいいのにとか重いながら、Clojure in Actionをこの2日で180ページまで読んだ どんどん濃くなるのでうれしいが今年中に読み終われるかギリギリな感じ >>165 高卒のおばかなプログラマの俺でも興味のあるものの為に辞書片手に読むようになったらここ2年ですごい読めるようになったよ。 なんで生徒時代あんなに英語赤点だったんだろうかってくらい(大学入試ムリなくらいなレベル)
171 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 02:41:49.52 ] 第二版は、はじめの方でちょろっとlein使ってるぐらい。 実践の部分はclojure.test(.generative),clojure.java.jdbc,compojureの説明があって、 それを使ってゲームを作る流れ。(jdbcは使ってないかも) パフォーマンスの説明は、いまのところ、メモ化やlongとuncheck使った四則演算の話が少しある。
172 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 18:49:15.23 ] Lancetのところはみなすっ飛ばしたわ。笑 キョーミなかったし。 それでもなんとでもなるよ。基本的なことはそれ抜きに書かれてるから。 私はLisp系の基本だと思ってる関数で関数を返すといった技法絡みは無いけどさ。
173 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 18:56:52.57 ] 技術的なことは分からんが、leinが簡単過ぎて嬉しい。 Mavenとかantとか複雑過ぎて俺の脳みそには入らん。 自動化ツールを自動化しなきゃダメな時点でどうなんだと。 アホのeclipseのために専用のプロジェクト作らなくても、emacsでほいほい開発できるし単純に楽だわ。
174 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 21:24:18.01 ] >>173 激しく同意
175 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 23:43:11.28 ] 質問です。 LinuxerのサンデープログラマLisperなんですがJava未学習者がclojureを 覚える強いメリットっありますか? あとOSごとにソフトを作り込んだ方がヘビーなエンドユーザーは使いやすいと 思うんですが、実際の所はどうなんでしょうか?
176 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:46:13.24 ] こういうメリット云々ぬかす奴は嫌い。
177 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:47:09.55 ] JAVA嫌いなら出来ない おわり
178 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 01:07:46.30 ] 俺ジャバは知らないけど、使ってるよ。若干困るところはjavaの機能を 使おうとする部分かな。ライブラリ知らないのは資料だけならネットに いっぱいあるから問題なしかな。protocolところは混乱するかもしれな いけど、固有の機能を使うGUIだってseesawのようなものも出てきてるので そんなに問題はないかな。 迷信のように、Javaを知らなければ、Clojureを使えないと言ってる人は いるようだけど、(検索などで見かけた。)あれは真っ赤な嘘か、発言者の 頭のスペックの問題と考えていいよ。
179 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 01:21:03.33 ] >>175 javaしらなくても十分やる価値があるよ Lispよりも純粋関数型言語の思想の方が強く関与してるおかげで副作用なしの関数の学習に適してるから Emacs+Slimeの様なインタラクティブ環境でそれができるのは希有な上に学習曲線が緩いClojureは一押しだったりする 他にも関数型でHaskellやML系とかJVMならScalaもいるがこれらよりは優しいと思う まぁ本人が何したいのかにもよるんだけどね。
180 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 03:29:57.95 ] みんなLancet飛ばしててわろた。
181 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 03:50:23.70 ] ビルドツールが例ってのはちょっとややこしいよなぁ。 そもそもAntって何だっけ状態だったし。
182 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 04:20:46.34 ] leiningenは良くできてるよなー。 このビルドツールの使いやすさもclojure普及に一役かってると思う
183 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 06:22:55.93 ] >>178-179 純粋関数型言語を勉強する気が起きたらならそれに適した言語で勉強します。言語マニアでも ないので無駄な勉強時間は割きたくありません。 ようするに強いメリットはないようですね。こちらのスレが伸びていたのは知っていたので もっと明確な答えが返ってくると期待したのですが間違いでした。 回答、ありがとうございました。
184 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 07:00:39.64 ] >>182 一役どころじゃないよな。 プラグインを個々にインストールする仕組みになったからproject.cljも変更しないで済んで更に便利になったし。
185 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 08:48:20.69 ] >>183 web屋さんには強いメリットはあるけどね。
186 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 08:49:08.28 ] 415 名前:デフォルトの名無しさん [sage] :2011/11/25(金) 06:41:33.57 >>410 各ディストリでそんなに環境依存ってあるもんなんですか? >>395 のリンクでもありますがCで触れるのは最後にチューニングできるのは強みのような気もするんですが。 Richちゃんのいつごろ書いた記事? >>411 朝、起きて気づいた。こっちの方が書き込み多いのは驚いた。Clojureスレのヤツはウンコだな。 >>412 それならGaucheで良くね? CLならsbcl, clisp。個人の日本語解説サイトもあるから日本語資料には困らんよ。 日本語資料では間に合わなくなったら辞書片手に読めば良い。以上。 Clojureスレのヤツはウンコだな。
187 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 09:15:58.30 ] 最近は質問する奴の方が偉そうなの多くなったのかねぇ >>183 後出し設定乙でありますとしか、何がしたいために知りたかったのかが伝わらない質問した自分を恥じなさいな
188 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 09:46:08.48 ] ClojureスレからCLスレに転載したかと思えば、CLスレからClojureスレに再び転載 お前は一体何がしたいんだ
189 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 10:20:59.99 ] 煽れば教えて貰えると思ってるんだろ。 皆通る道だ。
190 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 12:22:51.15 ] lisp使いでこっち見てるなら、関連スレにもいるに決まってんだろ。 本当頭悪い奴だな。 頭悪いついでに、LISP総合スレは Lisp Scheme Part33 hibari.2ch.net/test/read.cgi/tech/1318150738/
191 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 12:54:33.21 ] Herokuはいいとして、 GAEやbeanstalk,RUN@cloudなんかは、javaのインフラが使えること分からないとどう利用してるのかイメージつき難いのかな。
192 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:52:07.72 ] googleのえらいさんでPAIP/AIMAの著者とhyperspecの中の人の文章です。 www010.upp.so-net.ne.jp/okshirai/tutorial-on-good-lisp-programming-style-ja.txt これはcommon lispのスタイルについて書いてる文章だけど、 基本的なことはclojureのプログラミングについてもつながってるので、 読んでない人がいたら一読をおすすめする。
193 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:07:18.76 ] 翻訳頼むわ↓
194 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:21:56.62 ] blog.raynes.me/blog/2011/11/27/the-clojure-community-and-me/ >I had a lot of time to do these things because I’ve always been > home-schooled. >I always say that Haskell was my first language. >I’m 17 >I also landed a book deal with No Starch Press. I’m currently > writing a book called Meet Clojure for them. 17ってのも驚きだけど、Land of LispやLearn You A Haskellの堅苦しくない 出版からClojureの本を出すことになってるってのも驚き。 Learn You~は大学生が出したHaskellの本だが。 中学生でHaskellをやったんかなぁ。
195 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:23:26.41 ] meetclj.raynes.me/ これがアナウンスしてる予定の本。 Land~もLearn~も好評だったからなぁ。
196 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:38:46.33 ] nostarch.com/ 伝統(?)の黄色い表紙は、キッチリしてるんじゃないかな。 オーム社のマンガガイドの科学シリーズが翻訳されててベストセラーにいつもはいってる。 英訳で始めてオーム社でこんなの出してたんだというのを知った。
197 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 04:49:12.48 ] >>193 ハングルはアニョハセヨぐらいしか知らんよ
198 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 19:54:39.36 ] user=> (map doc '(list)) java.lang.Exception: Can't take value of a macro: #'clojure.core/doc (NO_SOURCE_FILE:179) というエラーが出てしまうんですが、どうすれば欲しい結果を返すことができるんでしょうか? version1.3.0 user=> (doc list) ------------------------- clojure.core/list ([& items]) Creates a new list containing the items. nil user=> (map + '(1 3)) (1 3) user=> (type list) clojure.lang.PersistentList$1 user=> (map type '(1 list)) (java.lang.Integer clojure.lang.Symbol)
199 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 20:26:53.31 ] これならとりあえず動いた。versionは1.2.1。 user> (map print-doc (list (var list))) (------------------------- clojure.core/list ([& items]) Creates a new list containing the items. nil)
200 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 20:55:40.85 ] レス、ありがとうございます。 version 1.2.1で動作確認しました。 ;;version 1.3.0 user=> (map print-doc (list (var list))) CompilerException java.lang.RuntimeException: Unable to resolve symbol: print-doc in this context, compiling:(NO_SOURCE_PATH:22) 欲しい結果がちょっと抽象的でしたので具体的にします。sbclでやるとこんな感じです。 CL-USER> (mapcar #'(lambda (f) (documentation f 'function)) '(list setq defun)) ("Return constructs and returns a list of its arguments." NIL "Define a function at top level.") あと"(defun &ENVIRONMENT ENV NAME ARGS &BODY BODY)"という情報も欲しいです。 で、最終的にはこんな感じにしたいです。 ("------------------------- clojure.core/list ([& items]) Creates a new list containing the items. nil" "------------------------- hogehoge ..." "------------------------- fugehoge ..." ...)
201 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:04:47.37 ] clの場合 (describe シンボル名)
202 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:06:28.19 ] (mapcar #'(lambda(x)(describe x)) '(cons defun))
203 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:32:55.00 ] >>198 はメッセージの通り、docというマクロ自体を引数として与えようと事によるエラー Clojureのマクロは今の所それ自体の「値」を直接手に入れることができない >>200 は1.2では内部関数であるprint-docが外部にむき出しになっていたのが 1.3でちゃんと外部から直接呼べないようになったので動かなくなった ところで、要するにdocの出力を文字列として受け取ればいいんだよな? Clojureでは標準入出力を直接使う代わりに*in*や*out*という名のvarを使い、それらがデフォルトで標準入出力になってる with-out-strは内側で*out*を動的にStringWriterへ束縛して、*out*に出力された文字列を返り値にする なので、こうすれば望んだ結果が得られる (map (fn [name] (with-out-str (doc name))) '(list))
204 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:45:56.51 ] あ、*in*などを使うのは強制ではないし、System/inなどをハードコードしてる場合もリダイレクトできるってわけじゃない coreは勿論、大抵のClojureライブラリも*in*などを使ってるんだけど、出力先を指定できないJavaライブラリを使うときは注意
205 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:56:08.39 ] >>203 俺もそんな感じでいけるんじゃないかと思ったが docが変数名そのものから展開してしまって思うようにいかなかったわ そのコード例だと、(fn …)の返り値が全部#'clojure.core/nameのドキュメントになる >>200 (defmacro docs [& xs] (apply list 'list (for [x xs] `(with-out-str (doc ~x))))) とマクロを定義して (docs print println def defn) で(doc …)の文字列のリスト取得できるようになる…と思う 可変長引数じゃなくてベクタやリストを渡したければ[& xs]を[xs]にでもしてくれ
206 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 21:57:50.54 ] (source doc)してみれ docのマクロは読める。
207 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:07:29.05 ] 1.3で(macroexpand '(doc list))するとどうなるの? 1.2.1だと(clojure.core/print-doc (var list))になるんで>>199 にしてみたんだが。
208 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:13:49.63 ] >>207 1.3だと((var clojure.repl/print-doc) (clojure.core/meta (var list)))になったよ それじゃあと、(use '[clojure.repl :only (print-doc)])としてみたんだが IllegalAccessError print-doc is not public clojure.core/refer (core.clj:3774) というエラーが出た。
209 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:15:50.28 ] >>205 ああ、本当だ。間違ってたごめん 最初に#()で書いたら""が返ってきて「%というシンボルを探してるのか」と気付いてたのに大ボケかましてしまった
210 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:25:52.02 ] >>208 ならば、これでどうだ。もう本題から離れちゃってる気がするけどw (map (var clojure.repl/print-doc) (list (clojure.core/meta (var list))))
211 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:28:04.52 ] >>207-208 1.3でprint-docはvarではなくメタデータを取るようになった (source doc)すれば分かるけど、docにはいくつかの特別な名前の為の処理があるから、print-docだけではうまくいかない useのエラーは上で書いた通り、内部関数のprint-docは1.3からは直接呼べない(:privateがtrue)が、シャープクォートを使えば迂回できる (docの内部でシャープクォートを使ってるのも、展開先で呼び出せる必要があるから) (#'clojure.repl/print-doc (meta (var list)))
212 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:39:18.85 ] >>203-208 みなさん、ありがとう。 とりあえず、長考するわ。 長考する前にデバック(on slime)についてのおすすめの英語サイトありますか?
213 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 22:41:11.81 ] >>211 なるほど。:privateみたいなのでアクセス制限できて、それを (var xxxx) = #'xxxx で回避できるのね。
214 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 05:32:02.34 ] docの結果は値としては返ってこないのか。 返ってくるのは結果をどこかへ出力する副作用をもった遅延シーケンスだから、 >>203 みたいなことしないと出力を文字列として得ることができないと・・
215 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 05:58:24.60 ] >>214 最終形は>>205 ね。まだコードの行数も少ないからgitで追っかけるかな。
216 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 16:33:31.53 ] 結構面白い問題だから、公式のグループで聞いた方がいい。
217 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 18:05:27.24 ] 求人伸び率最強はClojure…元々が少なかっただけだろうけど yfrog.com/ocsykp
218 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 01:45:33.47 ] 金持ちが居たら受けて感想でも教えてくれ。$325だってよ。 codelesson.com/courses/view/introduction-to-clojure
219 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 22:57:23.02 ] clojureで作った関数をjavaから呼び出す方法ってありますか? 出来上がった.classファイルを解析するしかない?
220 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 23:26:49.80 ] Clojureの関数はCallableとRunnableを実装してるので それらを実装した他のクラスと同じ感覚で呼び出せる 望むならjava.util.concurrentのタスクスケジューラなどに渡すこともできる
221 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 01:16:22.04 ] >>219 clojure.org/compilation
222 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 16:45:38.26 ] >>220 >>221 ありがとう。 英語苦手だからとりあえず:gen-classって付けてみたけど、 欲しい関数はどこにあるかわからなかった。 ゆっくり読みながら試してみます。 とりあえず"hello"ってStringを返すだけのdefnを javaから呼べるようにすることからはじめてみます。
223 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 18:30:08.22 ] >>222 最近MLで見たよ、その話。書いておいた。 Java から Clojure の関数を呼び出す rd.clojure-users.org/entry/view/77001 あと、Google Group の メンバーステータスを 「各メッセージが投稿されるたびに受け取る」にしておくのおすすめ。 メールがうざくないなら。
224 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 18:57:06.14 ] おいら、java側コードを道具としてつかっちゃうからjava側からclojureの関数呼び出すとかいう発想自体無かった どんなときに有用なん?(出来ないのは困るってのはあるけど)
225 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 19:23:12.22 ] Javaアプリケーションのスクリプト環境として使う時? GIMPのScript-Fuみたいな感じ
226 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 22:04:38.82 ] Clojureで作成したライブラリをJVMで使いたいときは、下記の機能知ってると、細かいところまで用意できるけど、 まず上に出てきた、コンパイル時の-Dclojure.conpile.path=classesと実行時の -cp classes:…、ソースの(:gen-class)とdefn -main[&args]で、javaのメイン関数的な呼び出しさえ出来れば良いんじゃないかと。(かleinのコマンドと設定)
227 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 22:05:26.14 ] Java Interop clojure.org/java_interop のSupport for Java in Clojure Library Functionsの項 Clojure で適切な型定義を選択 するためのフローチャート cemerick.com/2011/08/09/flowchart-for-choosing-the-right-clojure-type-definition-form-jp-translation/
228 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 09:51:34.33 ] >>227 わかりやすくて感動した!
229 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:12:52.20 ] >>227 壁紙にした!
230 名前:デフォルトの名無しさん [2011/12/04(日) 16:28:18.48 ] Clojureの勉強のつもりで、EvernoteのAPIを使ってみようと。 んで、 (import '[com.evernote.edam.userstore UserStore$Client]) って叩いたら、 IncompatibleClassChangeError Implementing class java.lang.ClassLoader.defineClass1 (ClassLoader.java:-2) とか怒られるんですよね−。 他のインナークラスは大抵importできるのに。implementsされてたらアカンいう事? 色々調べたけど、英語がそんなに得意でないこともあってもう限界。 だれか解決方法ご存知の人教えて下さい。
231 名前:デフォルトの名無しさん [2011/12/04(日) 16:28:33.22 ] Clojureの勉強のつもりで、EvernoteのAPIを使ってみようと。 んで、 (import '[com.evernote.edam.userstore UserStore$Client]) って叩いたら、 IncompatibleClassChangeError Implementing class java.lang.ClassLoader.defineClass1 (ClassLoader.java:-2) とか怒られるんですよね−。 他のインナークラスは大抵importできるのに。implementsされてたらアカンいう事? 色々調べたけど、英語がそんなに得意でないこともあってもう限界。 だれか解決方法ご存知の人教えて下さい。
232 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:42:30.39 ] 大切なことなので2階言いました。
233 名前:デフォルトの名無しさん [2011/12/04(日) 17:38:59.42 ] ミスっただけです
234 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:02:20.53 ] >>231 そのAPIを使ったことが無いので、ちょっと試してみたけど そのコード自体は問題なく通ったよ user=> (import '[com.evernote.edam.userstore UserStore$Client]) com.evernote.edam.userstore.UserStore$Client user=> 自分がやった方法は leiningenを使って、プロジェクト作ってlein depsした後 lib/以下にevernote-api-1.19/java/lib/に入ってあった * evernote-api-1.19.jar * libthrift.jar の2つを置くだけ そのエラーの原因は、メソッドやクラスの関係にズレが生じて 整合性がとれなくなるときに起きるエラーのようだよ 例示すると "interface Aが定義された.classと、それをimplementsしたclass Bが定義された.classがあるとして Aをabstract classとして定義し直して再コンパイルしたがclass Bのほうは古いまま" のような場合に起きるらしい >>231 がどういう環境を使ってるかは良くわからないので これでは解決にはならないかもしれないが、良ければ参考にしてくれ
235 名前:デフォルトの名無しさん [2011/12/04(日) 18:37:59.57 ] >>234 おおお、ありがとう! なんかかんやと出したり引いたり弄くっているうちにズレたのかも。 未知のバグだったら手も足も出んなぁ思っていたから、 そうじゃないと判っただけでもとても助かりましたです。
236 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 00:38:49.33 ] www.infoq.com/news/2011/12/date4j-vs-joda-time JSR-310がJoda Timeそのままでは無いようなのだけど、 JVM言語はどうするんだろう。 すでにJSR-310の勝手バックポートがあるみたいだし、 ちょうどclojure1.4になにかしら用意したいという話から意見募集してるみたいだけど。 groups.google.com/group/clojure-dev/browse_thread/thread/940c4225b439367e/8d1563a2e13df1b1?#8d1563a2e13df1b1
237 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 11:12:10.34 ] 勝手→リファレンス あと、記事のdate4jはjsr-310と無関係
238 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 04:46:02.38 ] よろしくお願いします。 リスト操作・lambdaの扱いが慣れていないlisper見習いなんですが、clojureを効率よく 勉強するにはclojureでの再実装を意識しながらsbcl or cclで実装してからcloujureで再 実装した方が基礎を固める意味で良いでしょうか? それとも動くはずなのにエラーに苦しみながら何度も調べながらclojureで実装した方が したっぽいが良いでしょうか? clojureに慣れたらわざわざ他のclで実装する必要もなくなると思いますが。
239 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 08:45:00.24 ] 動かないのなら、「動くはず」はただの思い込みだよ、ClojureでもCLでも Clojureを学ぶのが目的なら最初からClojureをやればいいし どのLisp方言を学ぶか選んでる最中ならCLと比較しながらやればいい あと、念のために言うけど、Clojureの頭にCLの二文字が付いてはいるけど SBCLやCCLのCL (Common Lisp)とは特に関係ない、別の言語だからね
240 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:07:36.94 ] 驚き最小の法則()
241 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:42:22.08 ] Clojureは他のLisp方言に比べたらちょっと個性的だと思う。(破壊的処理 のところがね。副作用の部分をモナドで囲むようなHaskellのようなわけ方を してる。もっともJava固有のコレクションや配列を直接扱うときはこの保護 機構を使わなくても書き換え可能)
242 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:55:58.35 ] >>239 Clojure is not CL.は知りませんでした。 後出しですがemacs lispも勉強したいのでCLベースで基礎を固めた方が良いのかな。 >>241 ちょっと個性的ですよね。記法を覚えていないとか、慣れの問題があるんでしょうけど。
243 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 13:46:12.60 ] Clojureは可変な値ではなく、refなどの可変な参照が指し示す値を変える事で可変な状態を扱う、って考え方だから 同じように「囲んで」いるように見えても、モナドとは考え方の背景が違うけどな printlnみたいにむき出しにしてる部分も多いし、Clojureではそれも悪くはない モナドが欲しい時はalgo.monadsを試すといい
244 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 16:01:06.27 ] >>242 JVM で動く CL 実装は ABCL 。 一応書いとくと、elisp も CL とは違うよ。
245 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 16:30:56.69 ] >>243 当然背景も考え方も違うよ。
246 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 16:53:57.78 ] >>238 ClojureはCommonLispとはかなり性格が違うので一緒にやると混乱するよ EmacsLispも学びたいって言う事から察するとLisp族初めたばかりだと思うからいくつか助言するとしたら 1.Clojureから先に覚えれば、破壊操作が楽な他のLisp族へは移行が優しい 2.通常の言語で高度なプログラムが書けるならCommonLsipからやる方が優しい 3.興味や学術方面から入るならSchemeがオススメ の3つの選択肢があるのでどれか一つから始めるといいよ。 どれから始めてもカッコが気にならなくなったらいつでも他のLisp族にうつれるから気にしなくて良いよ、ただし3つのどれも同時に始めるとLisp族が嫌いになると思うのでできれば一つに集中してほしい
247 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 18:50:09.35 ] >>244 I know "Emacs lisp is not CL". Why clojure? Clojureが流行っているのは大量書き込みに難があると噂だけど並列処理ができるから? >>246 (1)重要な要素ではないです。(3)Schemeでcar, cdrを覚えました。そして、本格的にプログラミング しようと思って、速くて下品そうなCLに移って来ました。CLはEmacs lispと多少コードの互換性がある ので再利用できるのもCLを選びました。(2)高度なブログラムを書けないけど、CLが体に馴染んで来ました。 カッコがないとむしろ気持ち悪いくらいです。 自分の判断としては(2)のコースで必要があればClojureで再実装なのかな。今、そこまで実装したいと いう気持ちはありませんが、簡易なBlogシステムとか、Web関連でちょっとした遊びがしたいですね。
248 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 01:38:27.41 ] 既にCL使ってるのか、 それなら、CLでもweb frameworkあるよ。 比較するならclojureだとjavaのservletを使ったSaaSにデプロイするのという手段がとれるので楽だと思うけど。(Herokuなど) あと、CLとClojure比較するのに参考になる話題ではないけれど、 java以外のJVM言語のなかでは言語の組み込みなデータ構造と機構だけで、 デーモン上にて大量のオブジェクトを扱った場合でも比較的ヒープの使い方がうまいらしい。 (1,2年前の話。良く分かってないけど、2GB以上ヒープメモリつかっても、GC周りの地獄になりにくい?)
249 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 08:25:12.93 ] ヒープの使用効率は永続的なデータ構造(persistent data structure)の影響かな 今年のClojure/conjで発表した人だと、Phil Bagwellが永続的なデータ構造の論文をいくつも発表している
250 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 08:50:14.37 ] >>248 Clojureであってもヒープを大量に消費すればfull GCが走って遅くなる ただ、可能な限りデータ構造を共有する(不変性のおかげで、書き換えられる心配がないからコピーしなくてもいい)ので、例えば (def a [1 2 3]) (def b (conj a 4)) (def c (conj b 5)) と書いても[1 2 3]と[1 2 3 4]と[1 2 3 4 5]をヒープに置く必要はなく [1 2 3]と[<aの内容を参照> 4]と[<bの内容を参照> 5]を持っていればいい これが>>249 の「永続的なデータ構造」で、ヒープの効率向上に貢献する 実際の仕組みはもう少し複雑なので、正確に知りたい人はこれを読むといい blog.higher-order.net/2009/02/01/understanding-clojures-persistentvector-implementation/
251 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 10:04:41.70 ] >>250 これってCommonLispで明示的に書いてできないもんなの?
252 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 11:31:41.32 ] >>251 もちろん永続的データ構造を実装すればできる
253 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 11:46:21.54 ] Common Lispで永続的なデータ構造を実装した例 d.hatena.ne.jp/sile/20100929/1285733544 ここで参照されてる"Ideal Hash Trees"はPhil Bagwellの論文
254 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 11:21:11.16 ] >>253 (loop FOR i FROM 0 TO 9 COLLECT i)という書き方が興味深かった。(loop For i From 0 To 9 Collect i)と いう書き方ってコストじゃないからこういう書き方の方が良いのかな。
255 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 16:32:44.59 ] Amazonからお支払番号きた。 買う/買ったやついる? 1 Clojure in Action ¥3,652
256 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 19:46:51.46 ] 買ったやつの大半はmanningからDL購入してると思われる。
257 名前:デフォルトの名無しさん [2011/12/13(火) 20:43:49.40 ] >>255 こーてへんけど、本にはクーポンがついてて電子ブックは登録すれば 無料でもらえると思うよ。
258 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 23:06:58.99 ] >>255 e-book版ならだいぶまえに買ったよ
259 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 00:28:06.36 ] こーたり
260 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 20:22:03.70 ] やっと発売か
261 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 11:28:08.78 ] 全体的な構成を変えたclojure1.3 出たタイミングだから、 いままでのバージョンアップの時より なぜだというツイートが多かったりするね。 今後の本はどうするんだろう。 来年1月予定 450p shop.oreilly.com/product/0636920013754.do 来年2月 250p pragprog.com/book/shcloj2/programming-clojure
262 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 17:23:19.39 ] どうするって何が? Programming Clojureの2nd Editionは以前から1.3ベースって宣言してるし オライリーのClojure Programmingも作者的に1.3非対応にはしなさそうだけど
263 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 17:51:33.97 ] 牛のブライアンに直接聞いてみたらなんか返ってくるかも 笑 彼日本語(漢字)勉強してるみたいだから。
264 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 18:40:18.52 ] 誰か、凸れ
265 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 20:22:59.00 ] ライブラリさがすのってここでいい? clojure-libraries.appspot.com/ 他にいいとこある?
266 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 20:25:08.39 ] >>265 clojars.org/ で苦労して探してたけどそこいいね
267 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:06:08.30 ] もちろんクリスマスはclojureを書いて過ごしたよね?俺だけじゃないよね?
268 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:43:08.92 ] >>267 イヴの夜は寒くて教会に行くのサボって、当日は顔を出して、ベイクセールで 募金したぐらい。あとはClojure : CL : Elisp : conf = 3 : 3 : 2 : 2で オナっていたぜ。
269 名前:!omikuji !dama mailto:sage [2012/01/02(月) 01:58:29.88 ] 本年がClojure祭りでありますように
270 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 09:47:55.24 ] >>268 今の教会って、「イブ、とは前日の事ではない」と教えないのか。 ウリストじゃないよね?
271 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 10:39:59.70 ] そもそも午前零時に日付が変わる、という意識が一般化したのが近世ないし近代。 それ以前の慣習については、日の出または日没が日の区切りである可能性がある、 というのがごく一般的な話。
272 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 10:51:00.76 ] クリスマスに Compojure が1.0.0になってたのな
273 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 12:04:37.90 ] 真夜中に一日の区切りを持って来る事については、天文学者が猛反対した、という話も。
274 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 17:49:53.49 ] 連中は、今でも正午を区切りにしようとか画策してる秘密結社だからな。
275 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 14:50:53.81 ] 30時間制っちゅうのがあって、朝6時に切り替えって発想は星方面にはあるよ。
276 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 15:23:45.59 ] ClojureでAndroidとかやってみたけど、当たり前だけど文法が変わっただけで、やることは手続き型だった。 適材適所って大事ね。
277 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:13:54.18 ] >>276 ラップして楽するようにすると面白いっすよ つかAndroidでswankできてもうなんかモニョモニョしちゃうくらいもだえたぜ
278 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 03:32:20.41 ] 梱包じゃ
279 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:58:55.34 ] 苦労じゃ
280 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:07:59.48 ] >>277 なんか例えばこんな時に…みたいなのってある? AndroidというとUI部品への値の読み書きがほとんどで、Clojureが活躍する領域が思い浮かばない。
281 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 07:04:35.90 ] contribっていつ1.3が出るのかと待っていたが、別々のライブラリに分かれたのか。 dev.clojure.org/display/doc/Clojure+Contrib いろいろ減ったような? みんな1.3に移行してる?
282 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 09:24:29.29 ] >>281 活発にメンテナンスされてなくて、メンテナーに立候補する人もいなかったライブラリと 既にclojure.jarに取り込まれてメンテナンスされているライブラリは移行してない 古いcontribもorg.clojure.contrib/standaloneかどこかで一応引っ張ってこれるはずだけど保証は出来ない 移行してないけどこれがないと困るってライブラリがあったら IRCやMLで訊けば代替を教えてくれるし、メンテナーに立候補する手もある 実際、1.3リリース後に移行したライブラリもある 俺は今の所基本1.3でたまに1.4の様子を見てる
283 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 01:44:03.19 ] なるほど
284 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 22:22:46.37 ] swing utilsは代替がないね、
285 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 07:21:23.54 ] GUIFTWやSeesawを使えば良いんじゃね GUIライブラリじゃなくてswing-utilsそのものが使いたいのなら、移行しないのか尋ねてくるといい
286 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 20:25:49.85 ] JavaしらんClojure使いだが。ちとJavaのことを知りたいなと思ってみたけど 本がわんさかあって、何がええやらよくわからんです。 初めてのRuby見たいな、他の言語習得者向きの本って無いんですかね? 洋書の安いのがあれば一番いいかも。 Head First Javaはamazon.comで売れてるみたいだし、検討中なんですがね。
287 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 20:54:44.82 ] PerfectJavaがおすすめ。網羅的に場広く解説さるてる。
288 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 22:36:12.43 ] >>287 ありがとう。今度本屋で確認してみます。:)
289 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 10:38:05.77 ] swank-clojure が動かない。 debian で clojure 1.2.1 leiningen 1.6.2 をインストールして、 $ lein plugin install swank-clojure 1.3.4 ~/.lein/bin/swank-clojure の CLASSPATH="/home/なんとか/..." を "$HOME/" に(多分これはバグ)変更。
290 名前:289 mailto:sage [2012/01/18(水) 10:38:34.35 ] $ ./.lein/bin/swank-clojure Exception in thread "main" java.lang.IllegalArgumentException: Wrong number of args (0) passed to: swank$-main (NO_SOURCE_FILE:0) at clojure.lang.Compiler.eval(Compiler.java:5440) at clojure.lang.Compiler.eval(Compiler.java:5391) at clojure.core$eval.invoke(core.clj:2382) at clojure.main$eval_opt.invoke(main.clj:235) at clojure.main$initialize.invoke(main.clj:254) at clojure.main$script_opt.invoke(main.clj:270) at clojure.main$main.doInvoke(main.clj:354) at clojure.lang.RestFn.invoke(RestFn.java:436) at clojure.lang.Var.invoke(Var.java:373) at clojure.lang.AFn.applyToHelper(AFn.java:167) at clojure.lang.Var.applyTo(Var.java:482) at clojure.main.main(main.java:37) Caused by: java.lang.IllegalArgumentException: Wrong number of args (0) passed to: swank$-main at clojure.lang.AFn.throwArity(AFn.java:437) at clojure.lang.RestFn.invoke(RestFn.java:399) at clojure.lang.AFn.applyToHelper(AFn.java:159) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invoke(core.clj:540) at user$eval1637.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:5424) ... 11 more
291 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 13:56:10.59 ] >>290 $ lein swank じゃねーの?
292 名前:289 mailto:sage [2012/01/18(水) 22:17:50.98 ] >>291 https://github.com/technomancy/swank-clojure ここ見てやっていたのだけれど、さっきできた。 $ lein new myproject して、Emacs 上で myproject に移動後 M-x clojure-jack-in するだけではだめ。 myproject に空の core.clj を作ってから M-x clojure-jack-in でできた。 project.clj の書き方も分からないので、 問題の切り分けのためにスタンドアローンのサーバを立ち上げようとしたけれど、 (それは今もできないけれど)まあいいや。
293 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 07:02:32.08 ] >290 のところは、>291 ではなくキャンセルして、最近おすすめのclojure-jack-in使ったんだよね? あと、.emacs.elあたりにreqire 'clojure-modeがあると、拡張子がcljならclojure-modeを呼び出す状態になってる。 さらに、clojure-modeならswank-clojure関連でclojure-jack-inが呼び出せるようになってる。 みたいな感じをイメージを想像出来るといいね。 clojureある程度やってみたら、 少しemacsとjavaのことも勉強すると周辺環境の理解が深まるかも
294 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:02:50.63 ] >>293 流れとしては 1. プロジェクトを作らないとサーバが起動できないらしい 2. 作ったけど、 M-x clojure-jack-in で起動できない 3. project.clj かプロジェクト下の他のファイルが悪いのかも、でも何が悪いのか分からない 4. プロジェクトを作らない方法もあるから、そっちを試そう 5. 4 も駄目だ 6. $ lein new myproject すると Look over project.clj and start coding in myproject /core.clj とでていたので、 myproject /core.clj を作ってから M-x clojure-jack-in するとできた という感じ。 Emacs + slime で Common Lisp は以前から使っていたけれど、 JAVA は久しぶりにインストールしたよ。
295 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 08:41:16.28 ] scalaよりは名前カッコいいしLISPerの後押しもあるしで そこそこ流行りそうだな
296 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 09:30:34.90 ] 少なくとも日本ではScalaの方がずっと多く本出てるし Lisperと言ってもそれぞれ好きな方言があるだろうからなぁ…… 俺はどちらでもないから分からないけど、多分CLerやSchemerは 「Clojure(に〇〇があれば|が〇〇だったら)もっと良かった」って点をいくつか挙げるだろうし
297 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:11:22.03 ] >>296 javaから来たらscalaの方が覚えるのは楽だと思う lispしってりゃclojureの方がreplで楽ができるから俺はclojureの方が学習コスト低かったけど
298 名前:デフォルトの名無しさん [2012/01/29(日) 20:48:28.62 ] Tiobeの最新ランキング見ると Groovy > Scala > Clojureらしいね。 Lisp(CL?)が13位でRubyの次にランクインしていたのには驚いたな。 www.tiobe.com/index.php/content/paperinfo/tpci/index.html
299 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 08:57:49.42 ] 本当にScala流行るかわからんし少なくともすぐ流行るとも思えないから Java使いが取り敢えずで新しいことやりたいならClojureという選択肢もありなのかな
300 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 09:23:04.95 ] >>299 むしろアリだと思うよ、Lava使いがLisp族を覚えるのにこれほど適した言語は無いし 覚えて損することも無い
301 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 04:40:16.59 ] scala は一時的なもんだろうな。一部引き始めてるから、大きなうねりには ならんだろう。 なによりコミュニティが北斗の拳だし・・・。
302 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 10:31:25.95 ] Clojureは j の点の部分を四葉か三葉のクローバー、下をクローバーの 茎に見立てたデザインにすればきっと格好良くなる
303 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 10:35:09.95 ] >>301 北斗の拳?
304 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 12:26:39.16 ] >>301 「おまえは既に死んでいる」と言う事かな?
305 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:31:09.29 ] モヒカンがヒャッハーみたいな 世紀末でカオスな状態になってる ってことだろ多分
306 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 19:36:14.88 ] うん。殺伐ってこと
307 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:20:58.87 ] へえ。そんなに殺伐としてるのか。
308 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:30:44.55 ] 水嶋の真似をしようとした連中が、scala初心者に対して学術風味なご高説を垂れてるらしいな。 で、中にはご高説同士で「当然論文はご覧になってますよね?」的なノリの人格批判でうぼぁー。 って聞いた。
309 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 00:11:29.21 ] 北斗の拳って言うからてっきり「今日より明日なんじゃ…」って言いながら非互換変更入れたり 自分のライブラリが標準ライブラリに採択されたら「神はわれわれを選んだのだ!」って叫んだりしてるのかと
310 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 09:35:57.89 ] 名指しで他のコミュニティのことはとやかく言わないようにしよう。 誰も得しない。
311 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 18:33:47.97 ] clojurewest.org/sessions clojure/west 講演一覧 講演したことある主要clojure開発者のtwitterアカウントの8割ぐらいいってそう。
312 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 18:39:36.54 ] osxにて、HomeBrewのcake.rbがなくなって、 brew install cakeでは、いけなくなっていた。 gemからはいけた。 古いHomeBrewのcake.rbでは、-HEADオプションつければ入るが、結局動かなかった。 たぶん、gem install cake使ったhomebrewのcake.rb書けばいいんだろうけど。
313 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 22:09:58.98 ] emacsのcompilation-error-regexp-alist に良い指定の方法ないかな?、自分がやるとスタックトレースに出てくる方までひっかかっちゃって
314 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:28:22.44 ] emacs使った開発をしようとしていますが、 regionを関数に抽出したりするなどの、リファクタリングや 括弧の数が合わなければ色を変えて、教えてくれるなどの機能は、どんなプラグインを入れれば良いでしょうか。 ベタなコードをkill/yankで別関数に抜き出すと、括弧の数が合わなくなったりして、 よく無駄にハマる時間ができてしまいます。 あと今はparedit, clojure-mode, slimeをいれていますが、その他clojure開発でオススメがありましたら教えていただけると嬉しいです。
315 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 20:22:33.58 ] paredit使ってるなら括弧の数合わなくなることはあんまないでしょ。 あー、キルヤンクの時ね。C-Spaceとかで手動で範囲指定するとあわなくなるけど、 C-kやM-C-@とかで括弧単位でコピペするのが楽だね。 swank-clojure使ってるならC-c C-k すれば大体のエラー箇所は教えてくれるよ。 括弧の数合わないとか定義されてない変数使ってるとか。
316 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 22:28:15.46 ] >>314 www.emacswiki.org/emacs/RainbowDelimiters 括弧関係だとこんなのもある ちょっと目に来るのでつかわなくなってしまったけど
317 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:25:15.07 ] Clojure でのツリー・ビジター Java の Visitor パターンを関数型 zipper で更新する Alex Miller, Senior Engineer, Revelytix www.ibm.com/developerworks/jp/java/library/j-treevisit/ もっと日本語版もある技術サイトに載って、興味もってくれる人が増えるといいな
318 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:06:32.53 ] 後方互換性にとらわれないとはいっても、 プログラミングClojure第一版のコードすら結構動かないものがあるというのはどうかと。 仕様が固まってくるまでどれくらいの時間がかかるのかな。
319 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:09:41.76 ] いま固まりました
320 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:25:05.41 ] 1.3では、大幅変更があったからなぁ。 高速化はどんどん期待したいけど、仕様変更だけは、4,5年くらい 変更なしでも動くような事のほうが使いやすいよね。
321 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 09:01:56.88 ] プログラミングClojure第一版は1.0(日本語版は訳者による開発中の1.1に基づいた脚注あり)だな コアに取り込まれたcontribライブラリを使ってたり(例、c.c.duck-stream→c.c.io→clojure.java.io) typeやprotocolにまったく触れてなかったり、proxyはあるけどreifyはなかったりと 1.1〜1.2の変化も書かれてないから、1.2でもちょっと古いコードになるな 原著第二版は2012-03-06発売予定か
322 名前:デフォルトの名無しさん [2012/02/11(土) 14:08:31.04 ] JVMに縛られてる限り駄目だわこの言語
323 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 14:46:55.26 ] 釣りにつられて スルーができるのか?みなさん
324 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 15:36:06.63 ] >>322 一度でいいからRichが書いてる事読んでから言えよ JVMにこだわっているのじゃなくPlatformからの独立について語ってるって知るべき.
325 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 15:36:54.73 ] 俺は後方互換性なんてあんまり考えないで欲しい。 より良い言語になるなら。
326 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:04:56.06 ] 言語が良くなってもライブラリが付いてこないからな。 黒板言語と呼ばれて良ければそれでもいいんだろうが…。
327 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:56:07.41 ] >>326 javaライブラリの利用はさほどむつかしくないから、そうとはならないと思うが。
328 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:23:16.62 ] しばらくclojureを追っかけてなかったけど、contribの事どうなったの? 動向を追いかけてる人いるの?
329 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:19:34.16 ] clojure1.4.0-beta1、1.3から1.4でなにが変わったかあまりよく分からないが・・・ groups.google.com/group/clojure/browse_thread/thread/71e19a6097cb74a1
330 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:37:03.91 ] contribのことは、ここらへんにまとまってる。 dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go dev.clojure.org/display/doc/Clojure+Contrib next release (現在は1.4) dev.clojure.org/display/design/Release.Next+Planning
331 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 05:31:03.26 ] instant literal とかいうのが入ったね。 使いどころがよくわからんが。
332 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 06:33:42.28 ] 何それ
333 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 07:58:07.39 ] 変更点はgithubのcommitsをブラウザで見るか、ワーキングツリーが手元にあるならgit logでとりあえず見られる >>332 dev.clojure.org/pages/viewpage.action?pageId=950382 dev.clojure.org/jira/browse/CLJ-871 https://github.com/clojure/clojure/commit/6afdf43f200fb902d36b31d3094ba166eb84aa14
334 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 09:13:52.03 ] >>330 さんくす。 大分整備が進んでるね。
335 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:24:55.66 ] clojarsのリポジトリとかがClojureのバージョン別に検索しやすくなってくれないと正直leiningenやcakeで困るわー
336 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:29:40.80 ] ライブラリの最新バージョンとかいちいち調べるのすごいめんどい。
337 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 16:17:15.41 ] https://github.com/ato/clojars-web
338 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 16:34:33.72 ] Clojureとライブラリのバージョン対応の問題は1.3.0以降急激に増加しているので、 なんとかmaven系の設定ファイルで管理してほしいところではある。
339 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 16:38:15.07 ] clj-httpがメンテナーが変わって、clojure, contribみたいにCIツール使ってて、こっちは、githubから使えるものを使ってた。 ビルド失敗マークが付いていてなにか大きな変更があるのかとおもったら、lein2へ移植中となっていた。 チュートリアル mmcgrana.github.com/2010/08/clj-http-clojure-http-client.html 現在のmaster https://github.com/dakrone/clj-http CI travis-ci.org/#!/dakrone/clj-http/builds leiningenのmasterブランチでは、2.0.0を準備中で結構変わるみたいだね。 https://github.com/technomancy/leiningen/blob/master/todo.org https://github.com/technomancy/leiningen/tree/master/doc
340 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 16:47:28.82 ] https://github.com/maravillas/lein-multi 複数のclojureバージョン対応project.cljは、lein multiでなんとか作れるけど自動でバージョンチェックしてはくれないからな・・・
341 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 16:55:10.64 ] 1.3リリース以降*db*関係でSQL系ライブラリが大混乱 これなんとかならんかなぁ 1.3の数値primitive指定使ったチューニング凄いんだけどDBでclojureql使いたいと思うとvarのdynamic指定関係でライブラリが選択しにくい(というかclojureのメインバージョンに引きずられる依存関係の解決ができない)
342 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:37:43.83 ] 気付いたらパッチを送ってくれると大勢が助かる
343 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:13:47.17 ] disclojure.org/2012/02/12/intertweets/ pycljとかlein-scalacとか何じゃろう?
344 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:44:35.73 ] >>315 ,316 遅くなりましたがありがとうございます。 RainbowDelimetersはこちらの黒背景だとそこまで目にうるさくないし、 明らかに足りないところは赤で分かりやすいのでちょうどいい感じです。 またお伺いしたいことがあるのですが、swank-clojureでエラーが消えません。 再現方法は 1. 適当にlein newでプロジェクトを作ります。 2. core.cljで (defn xxx [] (+ 1 2)) というコードを書きます。 3. clojure-jack-inでswankを起動します。ここでrepl上で (xxx)を呼ぶと、当然3が返ってきます。 4. ここで間違ってreplで (xx) と呼ぶと、Unable to resolve symbol: xx in this contextが返ってきます。 5. 以降、repl上でどんなコードを入力しても、Unable to resolve symbol: xx in this contextが返るようになります。 (xxx)を呼ぶと、別bufferにエラーが表示され、replには 3 が返ってきます。 C-c C-kをしてもダメで、emacsを再起動すると(というかswankを再起動?)、また正常になります。 emacsは23.4.1でclojure-modeは1.11.5(Marmaladeで落としました)、OSはMac OS 10.7.3です。 エラー情報をクリアするようなコマンドはありますでしょうか。
345 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 00:23:54.01 ] アメリカではClojureの本が最近、結構出版されてるな
346 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 00:43:02.80 ] >345 Clojure In Action Joy of Clojure Clojure Programming の他にもでたん?
347 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 10:30:57.26 ] The little clojure The reasoned clojure The seasoned clojure Land of Clojure 。。。妄想でどうぞ。
348 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 17:44:50.72 ] >>347 Land of Lispは買ったんだがなぁ、あのビデオクリップDVDでだしてくんねぇかな
349 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 21:58:15.04 ] pragprog.com/book/shcloj2/programming-clojure 3/6予定にはなってるが、どうだろう?
350 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 22:06:20.81 ] www.manning.com/marz/ Marzのbigdataも、どれぐらいclojureの記述があるのかな。 DSLとして取り上げるのはclojureだとおもうが、目次からは推測出来るところがない。
351 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 00:34:03.35 ] 実際のところ並列プログラミングでプログラムを高速化させたい場合は C/C++で書いたほうがずっと早いんだよな 理由は ・もともと早い ・最適化するほどさらに速くなる(差が広がる) ・並列プログラミングも制限がないので早くできる (関数型とかの並列プログラミングに対する利点は所詮、 並列プログラミングの力を削ぐ形で制限し、プログラムしやすくしているだけ)
352 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 07:40:02.95 ] C++との比較は見てみたいな。 結構な規模でコードの複雑さとパフォーマンスがどのぐらいになるのか。 小さな問題じゃ参考にならないや。
353 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 08:49:29.02 ] IOセンシテイブな分野でも、 HBaseとhypertableの話みたいな話あるからね。 hypertableのが速いけど、HBaseのが諸々の事情で普及してしまった。 www.hypertable.com/why_hypertable/hypertable_vs_hbase_2/ www.infoq.com/jp/news/2008/05/hbase-interview ヘテロジーニアスな並列計算環境だと、最近はネイティブコードジェネレータも増えてきてるとおもう。
354 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 09:16:57.22 ] >>351 immutable/persistentなデータ構造はスレッドセーフでスケーラビリティも良好って事はCでも言われてるんだが とBoehmのcordを最近知った俺がしたり顔で言ってみる CやC++の方が速くしやすいのは確かだろうけど、俺はプログラムしやすい方がいいな プログラマの時間よりCPUの時間が高価な分野にいないから持てる、甘えた考えかもしれないけど
355 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 11:29:08.37 ] 手間暇かけていいんなら、そりゃCで書くよね。
356 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 12:47:21.07 ] やだよ
357 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 17:32:16.40 ] >>351 C++やCで並列化コード書く時ってOpenMPみたいなライブラリつかって丁寧に作らないとバグった時の悲惨さがでかいんだよな(特に何処かで実行単位相互に書き換わっちゃったみたいな計算結果がおかしいようなときのバグ) 実際機械コードに近いから実行効率はいいんだろうけど、万が一の時にリカバリする時間の労力考えるとマルチスレッドレベルでの並列コードならClojureはかなり優秀だと思うぞ(特に1.3以降)
358 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 22:29:24.24 ] 最初から並列処理させるつもりで書かないと駄目だけど、 OpenMPは十分楽ちんだと思うけどなぁ。 Clojureも好きだけどね。
359 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 00:09:43.60 ] >>358 それぞれ違う特徴もってるからどっちが良いとか一言でかたづける問いじゃないんだよね Clojureの場合スケール可能なのはコア数上限までで、それ以上のパワーが必要なら結局単体じゃムリだし。 その条件でも十分ならClojureで書く方がはるかに気が楽だったりするし
360 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 00:49:06.65 ] C++やhaskellのDSL sourceforge.jp/magazine/09/08/21/1128207 tanakh.jp/pub/start-haskell-0-fun.pdf www.logos.ic.i.u-tokyo.ac.jp/~tau/highly_productive_langs/users/scnews/doc/sacsis.pdf clojureだと最近avoutってのが出来たけど、まだ分散STMという話で 分散プログラム実行環境は、 hadoopとかstormとかjavaインフラ使って制御するんだと思う。 clojure in actionの著者のswarmijiってのもあるけど、メジャーではないし。
361 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 01:20:18.06 ] なんか下のリンクみたいな分野向けのclojureラッパーはあるのかな? www.slideshare.net/defza/mpi-java ateji.blogspot.com/2010/09/java-for-high-performance-computing.html www.azulsystems.com/blog/cliff/2009-09-06-java-vs-c-performanceagain
362 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 13:53:46.94 ] >>151 あたりでも少し話題が出たlabreplの"looping"の項だけど minを実装する節で出てくる以下のコード、4行目のseq関数って必要なのかな (defn min-1 [x & more] (loop [min x more (seq more)] (if-let [i (first more)] (recur (if (< i min) i min) (next more)) min)))
363 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 18:35:41.19 ] >>362 いらないね
364 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:00:02.22 ] >>363 そうだよな。ずっともやもやしてたんだ、ありがとう
365 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 22:45:33.36 ] (if-let [s (seq coll)] A B) 少し似てるけどこの位置のseqは意味のあるイディオム
366 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 06:26:46.92 ] EPLって、商業用に配布してもいいの?
367 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 16:10:07.47 ] いいよ というか、それが駄目なライセンスをIBMが書く(前身のCPL)わけがない ただし条件はちゃんと読んでね
368 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 16:25:24.66 ] いや、IBM云々以前にDFSGやOSDが商用利用を禁じるようなライセンスを認めてないんだったか
369 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 17:55:41.96 ] sourceforge.jp/projects/opensource/wiki/licenses%2FEclipse_Public_License ja.m.wikipedia.org/wiki/Eclipse_Public_License EPLライセンスされたプログラムの受領者は、使用・修正・コ ピーや、修正したバージョンの配布ができる。 しかし、修正したバージョンを配布する場合はソース コードの入手方法を示すなどの義務が生じる。 修正BSDやMITほど緩くはないが、 GPLと違って、リンクしただけで問題になるようなことはない。
370 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 05:29:34.77 ] 第1節で、別モジュールの場合はEPLが論じる「Contribution」に該当しないと 定義しているよ。 だからEPLなライブラリを動的リンクしたというだけで本体までEPLの効力が 及ぶことはなさそう。
371 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 16:14:51.18 ] cemerick.com/2012/02/27/clojure-programming-book-finished/
372 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 16:33:14.90 ] programing clojure 2ed. の方はb5が出て、出版向けのデザイン・レイアウトになってた。
373 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:07:25.30 ] pythonによる実装 https://github.com/halgari/clojure-py s-expって移植しやすいのかな
374 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 17:23:18.59 ] S式がどうこうというより、Clojure本体はclojure.langさえ移植すれば Javaのクラスライブラリを直接使ってる場所以外は少ない変更/変更なしで動くようになってる Clojureで書かれた部分がclojure.lang.RTを酷使してるのもそのため
375 名前:デフォルトの名無しさん [2012/03/07(水) 02:29:05.50 ] Lisp界隈の進歩が亀のようにノロい理由として、 すぐに俺実装を作りたがって開発リソースが分散しがちというのが 大きな理由としてあると思っている。
376 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 02:39:25.59 ] わざわざ他スレにまで具体例付きで書き込むとはご丁寧なことだが、 Lisp界隈の進歩が遅いとみなした理由を教えてくれ。
377 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 03:02:53.92 ] 俺がLispを嫌いな理由は。カッコの数を数えるのが面倒だから。 個人が勝手にやるのは自由だが、他人様に見せる物じゃないと思った。
378 名前:電波いっぱい mailto:sage [2012/03/07(水) 09:31:30.40 ] >>375 ここ30年くらい、括弧の数なんて数えたことない、。
379 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 11:07:23.50 ] >>377 プログラムの読み方を知らないとそうなる。 あと、vim/emacsでいいがエディタを選ぶ言語だってのはあるな。
380 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 13:21:58.10 ] Lispに限らず括弧の対応は自動的に処理される環境を使うだろ? 誰だってそーする、おれもそーする
381 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 13:46:06.11 ] >>377 割とマジで括弧の数なんか数えないぞ エディタの補助は使うけど、適切なインデントを用いることで括弧自体は存在自体が空気みたいなものだ Pythonのコードを置換で編集するときに空白削って涙目(パンチカードをばらまくのと一緒だけど)よりも括弧の方が遙かにましというか
382 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 23:38:53.60 ] scalaやrubyつかえよ
383 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:09:17.52 ] あーるゆーびーわいってなんだすか?
384 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:44:44.69 ] >>383 酸化アルミニュームの一種ですよ 閃光を与えると特定波長のレーザーを励起できる物質で、宝石としても扱われます。
385 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 00:48:59.74 ] トラックボールの支持球で有名な奴ですね
386 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 12:40:41.35 ] >>378 戦前から括弧の数なんて数えずにlispのプログラムを作ってるよ。
387 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:24:01.90 ] clojure-pyサンプルにあったシングルスレッド用らしいfactorial.cljの実行時間を測ってみたんだが、 作者のマシンでpypy48s jvm25sのところ、 OSX@C2D 2.4GHzでやったら、 clojurepy 0.1.0@pypy1.8.0 190s clj1.3.0@jvm1.6.0 79s だった。 比率はいいとして、最近のCPUのシングルスレッド性能そこまで高いの?
388 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:25:35.94 ] これだよね? ttps://github.com/halgari/clojure-py/blob/master/examples/factorial.clj Core i5 660@3.33GHz WindowsXP JVM1.6.0のClojure1.3で35秒 C2D E8400@3.00GHzの環境もあるのだが、こっちにはClojureをインストールしてない。 でも、上記の環境とくらべてそんなにCPU性能に差があるとは感じない。 79秒もかかるのは遅すぎだと思うのだが。
389 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:01:56.64 ] ちなみに、Core i5 660は2コア4スレッド動作で、 >>388 を動かしてる間は1スレッドがほぼ占有される状態で、 CPU使用率は25%〜30%をいったりきたりだった。
390 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 23:13:26.96 ] dev.clojure.org/display/community/Google+Summer+of+Code+2012 自前のページ用意したのか
391 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 23:17:53.71 ] って採択まえなので当たり前だった。
392 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:08:19.82 ] www.techworld.com.au/article/419328/clojure_inventor_hickey_now_aims_android > Hickey: We're on version 1.3; version 1.4 should be [available] in the next month or two. > InfoWorld: What's going to be the main attractions in that? > Hickey: The main improvement is an extensible reader. You can add your own data types to what can be read. reader macros, finally.
393 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 22:28:32.82 ] schemeベースにしなかったのは何か理由があるんでしょうか? 作者の趣味?
394 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:26:02.52 ] どういう意味でschemeベース? Clojure開発する前、RHは.netでdotlispというのを作っていたがこれもlispエキスパート向けではなくて、lispやschemeとちがった。 dotlisp.sourceforge.net/dotlisp.htm en.wikipedia.org/wiki/List_of_CLI_languages また、clojureを開発する前からJVM上ならcl(abcl), scheme(kawa)があった。
395 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:45:21.89 ] en.wikipedia.org/wiki/List_of_JVM_languages RHがlispプログラマーだったか、知らないけど、Clojureは(Arcみたいに)分かりやすいS式表現や不変データ構造が発想のベースにしあるため、clとschemeから離れてるんだと思う。 en.wikipedia.org/wiki/Arc_ (programming_language)
396 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 02:36:48.50 ] >>393 Clojureをつくったわけ www.geidai.ac.jp/~marui/clojure/rationale/
397 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 21:45:18.51 ] Rich Hickey 氏,Clojure/West で Datomic を語る www.infoq.com/jp/news/2012/03/clojure-west
398 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 23:35:06.36 ] 最近ちょくちょくと人気投票見かけるけど、 HackersNewsでもやってるんだね。 attractivechaos.github.com/HN-prog-lang-poll.png C++のスレで見かけたので貼ってみる
399 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 14:45:35.51 ] ライブラリが充実さえしてれば人気ない方がいい
400 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 23:25:50.53 ] >>399 なんとなく言いたいことは分かる。
401 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/02(月) 12:09:21.80 ] だがライブラリが充実するにはそれなりの裾野が必要というジレンマ
402 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/06(金) 21:24:47.52 ] Clojureにおいて #' を使うのはどういう時でしょうか (つまり var関数 をつかって直接Varを得るメリットということです。)? CommonLispだと、#' を使うと、関数の名前空間から、そのシンボルに対応する関数オブジェクトを探しますよね。 #'がないと、変数の名前空間から対応する値を探しますよね。 関数オブジェクトを明示できて有用だと思います。 一方、Clojureだと、関数も変数問わず、 どちらにしろ、同じ (var 名前) が実行されて、Varが返ってきて 少なくともCommonLispのような使い分けのメリットないですよね。 強いて言うなら、Varは ポインタみたいな役割を果たすのかとも考えたのですが、 いい具体例が思いつきません。 質問がわかりにくくてすみませんが、アドバイスお願いします。 よろしくお願いします。
403 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 23:51:15.80 ] (defn foo [f] (fn [x] (f x))) (defn bar [x] (str "1st-" x)) (def boo-fn (foo bar)) (def boo-var (foo #'bar)) (boo-fn "XYZ") => "1st-XYZ" (boo-var "XYZ") => "1st-XYZ" (defn bar [x] (str "2nd-" x)) (boo-fn "XYZ") => "1st-XYZ" (boo-var "XYZ") => "2nd-XYZ" とりあえず、boo-var 側の挙動が必要なときに使えると教えてもらった。
404 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 02:28:34.75 ] 鳥本くるんだね
405 名前: 忍法帖【Lv=4,xxxP】 mailto:sage [2012/04/15(日) 00:20:45.90 ] ホントにたまたま間違って開いたすれなんだけど 見てたらやりたくなってきたから、関数型知らないけどやってみる インストールから始めるかな
406 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:05:43.31 ] >>405 Leiningenからはじめた方が楽かも
407 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 22:01:14.45 ] とりあえずjre入れてjar落としてチュートリアルやってみた (+ 1 2 3)で6が返ってきた時の感動は半端ない 関数型って楽しそうだ。遊んでみる >>406 人居たのね よく分からないけどゴリゴリやってみてる
408 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:59:30.35 ] >>407 >>406 じゃないけど、このスレ割りと人いるんだぜ clojureの楽しいところは、泥臭いのは全部javaのライブラリが請け負ってくれる事なので、安心してclojureの世界だけで行けるってかんじ CommonLispのCFFIでOkみたいなのが全部java側なのでCFFIで必要なライブラリを呼ぶ苦労が全くないのがミソというか ま、楽しんでちょ
409 名前:デフォルトの名無しさん [2012/04/16(月) 12:10:14.52 ] https://github.com/clojure/clojure/blob/master/changes.md 1.4がきたのね
410 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:12:10.79 ] 1.2から1.3みたいな断絶はないとのこと。 corfield.org/blog/post.cfm/clojure-1-4-0-clj-time-congomongo
411 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:43:37.33 ] そりゃよかった
412 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:33:46.52 ] light table www.chris-granger.com/2012/04/15/light-tables-numbers/ www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/ まずは、clojureとjs対応(他の言語はプラグインで追加)の開発環境というか拡張エディタというか ちょっと話題になってる。
413 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:35:44.39 ] コンセプトモデルなので、これから作るという話みたい。
414 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 14:52:58.67 ] clojureは少し枯れ気味になるのを待ってるけど、何年先になるんだろうな。 1.2->1.3のようなことが何度もあるとちょっと使いづらい。
415 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 23:03:49.77 ] java1.4-1.6で動くように作ってたので、clojureの後方互換性も重視してるのかなと思ったけど、 思ったよりライブラリ関連での断絶があるし、告知や対応が分かり辛いかな。
416 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 00:26:45.03 ] sourceforge.jp/magazine/12/04/20/1025254 おっと、.や#に影響ある変更あるのか。
417 名前:デフォルトの名無しさん [2012/04/23(月) 17:52:06.34 ] 日本でClojure使ってるプロダクトやサービスとかってbyflow以外にあるのでしょうか? 海外だとミドルウェアでの利用を中心として、FlightCaster、Storm、Datomic、Prismaticあたりでしょうか。
418 名前:デフォルトの名無しさん mailto:sage [2012/04/23(月) 23:29:32.11 ] dev.clojure.org/display/community/Clojure+Success+Stories clojure MLで集まった海外の事例はここにあるよ。 去年募集したときのがほとんどなので、最新はもっと増えてる気はする。
419 名前:デフォルトの名無しさん [2012/04/24(火) 13:09:26.53 ] おお!ありがとうございます。 ただ日本の事例がのってないのですね・・・