1 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 11:03:28.38 .net] JVM上で動作するLisp方言「Clojure」のスレ。 Clojure - home clojure.org/ www.try-clojure.org/ 前スレ: 【Lisp】プログラミング言語 Clojure #2【JVM】 toro.2ch.net/test/read.cgi/tech/1318498898/ 【Lisp】プログラミング言語 Clojure【JVM】 hibari.2ch.net/test/read.cgi/tech/1255533519/
2 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 11:12:57.06 .net] 【リファレンス】 API Overview - Clojure v1.5 (stable) ttp://clojure.github.io/clojure/ Clojure Libraries (Clojure Contrib, Leiningen, ...) ttp://clojure.org/libraries API Overview - clojure-contrib v1.2 (stable) ※廃止 ttp://clojure.github.io/clojure-contrib/ 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/
3 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 11:13:29.98 .net] 【ブログ・ML・質問箱】 Clojure ttp://groups.google.com/forum/#!forum/clojure Clojure Dev ttp://groups.google.com/forum/#!forum/clojure-dev Clojure Confluence wiki dev.clojure.org/ Clojure JIRA tickets and patches dev.clojure.org/jira planet clojure ttp://planet.clojure.in/ stackoverflow.com tag:clojure ttp://stackoverflow.com/questions/tagged/clojure Reddit(clojure) ttp://www.reddit.com/r/clojure github.com clojure ttp://github.com/languages/Clojure Clojure-jp (日本語) ttp://groups.google.com/forum/#!forum/clojure-ja
4 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 11:22:49.04 .net] 【チュートリアル】 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 Full Disclojure (中級者向け;英語動画) ttp://vimeo.com/channels/fulldisclojure 【コーディング規則】 Library Coding Standards ttp://dev.clojure.org/display/community/Library+Coding+Standards コミュニティベースのClojureスタイルガイド(bbatsov/clojure-style-guideの日本語訳) ttps://github.com/totakke/clojure-style-guide
5 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 11:35:03.40 .net] 【その他】 Clojureをつくったわけ ttp://www.geidai.ac.jp/~marui/clojure/rationale/ 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 InfoQ: Clojureに関するコンテンツ www.infoq.com/jp/clojure/ InfoQ: All of Rich Hickey's Content www.infoq.com/author/Rich-Hickey RailsConf 2012 基調講演 Simplicity Matters 翻訳書き起し ttp://eed3si9n.com/node/141
6 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 11:59:03.50 .net] 【本】 ttp://www.amazon.co.jp/s?field-keywords=clojure Programming Clojure (2nd edition) ttp://blog.practical-scheme.net/shiro/20130417-programming-clojure-2nd (日本語版) ttp://pragprog.com/book/shcloj2/programming-clojure The Joy of Clojure, Second Edition ttp://www.manning.com/fogus2/ ttp://www.joyofclojure.com/2nd ttp://www.infoq.com/jp/articles/the-joy-of-clojure Clojure Programming ttp://www.clojurebook.com Clojure in Action, Second Edition ttp://www.manning.com/rathore2/ 英語版は、オフィシャルで40-50%ディスカウントクーポンや紙買った後に5-10ドルでebook追加できるサービスなど一部あり 【テンプレ終了】
7 名前:デフォルトの名無しさん mailto:sage [2013/09/28(土) 12:00:38.53 .net] テンプレ収集場所 wiki.fdiary.net/lisp/?%A5%C6%A5%F3%A5%D7%A5%EC+%28Clojure+%A5%B9%A5%EC%29 (ID:guest Pass:cl)
8 名前:デフォルトの名無しさん mailto:sage [2013/09/29(日) 16:29:28.68 .net] >>1 乙 そしてなぜ前スレが1000行く前に落ちてんだ
9 名前:デフォルトの名無しさん mailto:sage [2013/09/30(月) 18:10:34.01 .net] 2013.8-p.info/japanese/09-28-languages.html facebookが内部で形付きのphp拡張作ってるって。 typedscript含めて動的言語の型検査がトレンドになってきてる? typed clojureは0.2で、使える代物になってるので、circleciでは実践投入しているらしい。 blog.circleci.com/supporting-typed-clojure/
10 名前:デフォルトの名無しさん mailto:sage [2013/09/30(月) 18:11:07.14 .net] typed clojureは、別に宣言する形なので、 慣れの問題だろうけど、本文中に埋め込んでる方が簡潔にみえる。 m.imgur.com/hUGIXwq lisp族でもshenは埋め込んでたが、 racket, clojureで埋め込まなかったのは、構文の自由度に影響でるから?
11 名前:デフォルトの名無しさん mailto:sage [2013/09/30(月) 18:32:34.79 .net] >>8 980超えると一定時間経過で自動的に落ちるとかなんとか
12 名前:デフォルトの名無しさん mailto:sage [2013/10/01(火) 15:29:09.20 .net] Clojure Cupが昨日終了して、さっき一般投票が始まったみたいだけど、誰か参加した人っている? clojurecup.com/apps.html
13 名前:デフォルトの名無しさん mailto:sage [2013/10/01(火) 20:55:20.02 .net] おいしい本は、ライブラリのカタログとしてかなり範囲が広いし、ライブラリが複数ある用途についてはしっかり一番オススメ出来るやつを選んで載せてある。 本屋でパッと見るだけでも全体通して同じだから雰囲気わかると思うよ。 参考文献がないのはなんかのお約束なんだろうか? lolなところは、 入門書ではないが、leiningenのインストールのところはうまく初心者向けにかいてあるのに、javaのインストールには一言も触れてない点 関数脳って副題、内容関係なく編集者がつけた点 でした。
14 名前:デフォルトの名無しさん [2013/10/01(火) 21:08:13.26 .net] >>12 このチームは日本からの参加者みたい clojurecup.com/app.html?app=focusoncoding
15 名前:デフォルトの名無しさん mailto:sage [2013/10/02(水) 01:33:24.25 .net] >>13 javaというか、jreだけでOKだよね?
16 名前:デフォルトの名無しさん [2013/10/02(水) 23:32:43.22 .net] >>14 宣伝乙
17 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 00:32:32.27 .net] まあしかし、Rails Rumbleとかに比べてClojure Cupは全く盛り上がってないよなあ。そもそも母数が少ないから当たり前だが。
18 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 01:27:11.66 .net] おいしいやつけっこう評価いいっぽいな。買うかな。
19 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 01:54:41.31 .net] RunaとClimateが買収されたらしく、盛り上がってる。 どちらも、ネット上でClojureの人材募集してたのを見かけたことがあるけど、 コアな人材を集める気のあるところの方が、 買収する側にとっても独立したRD部署とするにはマッチするのかもしれないね。
20 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 01:54:42.31 .net] おいしい本は外部ライブラリ使った応用を紹介してるだけだから、文法的なことを期待して買うと塩漬けすることになる
21 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 01:58:06.93 .net] こういう話なのかね。 blog.livedoor.jp/lionfan/lite/archives/52682119.html
22 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 02:04:01.34 .net] おいしい本は、カタログ本なんでまず眺めてみたらいいと思うよ。 書店いくの面倒だったら、サンプルと草稿あるし。 gihyo.jp/book/2013/978-4-7741-5991-1 https://github.com/hellonico/niclojure/tree/master/textja
23 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 02:07:51.84 .net] https://github.com/icylisper/jark https://github.com/flatland/drip コマンドライン上で先にjava立ち上げておくツールは、 普段したのやつ使ってるけど、おいしい本では、上のやつが紹介されてた。
24 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 02:42:39.87 .net] どの本にも repl を終了するコマンドが書いてない件 (System/exit 0) で代用してるけど、いいのだろうか
25 名前:デフォルトの名無しさん [2013/10/03(木) 04:38:08.70 .net] >>24 stackoverflow.com/questions/4981584/how-to-exit-the-repl
26 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 08:12:26.22 .net] Clojure Cupのエントリー数は42か。 まあ初回だしこんなもんなのかな
27 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 02:21:37.58 .net] make-arrayで配列作ってたんだけど、状態変更不可だと聞いてたから、配列の値を変更するたびに新しい配列を作り直すのかと思ったら、中身はjavaの配列で普通に代入してる件
28 名前:デフォルトの名無しさん [2013/10/04(金) 02:32:30.29 .net] >>27 イミュータブルなデータ構造使いましょう
29 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 02:39:58.02 .net] 状態変更不可だと聞いたの聞き間違いだね ClojureにはJavaオブジェクトとかrefとかアトムとか 変更可能なものがいろいろ用意されてる
30 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 09:00:25.55 .net] clojure.org/java_interop ここで扱う構造は、java直接なので代入可能。 基本的なデータ構造がイミュータブルな関数型言語でも、 en.m.wikipedia.org/wiki/Hash_array_mapped_trie 上の高速なHash使って、実用的な速度というので注目を集めたのがClojureだった。 なので、もともとHaskellでも代入可能なデータ構造が用意されてたりするし、使ったりする。 www.haskell.org/haskellwiki/Arrays d.hatena.ne.jp/kazu-yamamoto/touch/20120706/1341546985
31 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 09:03:07.00 .net] hackage.haskell.org/package/unordered-containers これもclojureにインスパイアされて作ってたはず。
32 名前:デフォルトの名無しさん mailto:sage [2013/10/04(金) 23:28:39.24 .net] logaan.github.io/clojure/core.typed/2013/10/02/core.typed-game-of-life.html clojureから、typed clojureにしてみて、scalaとhaskellに移植して比較してみたらしい。 typed clojureが一番長いけど、納得いかないものではない、という感想になってた。
33 名前:デフォルトの名無しさん mailto:sage [2013/10/05(土) 00:53:56.11 .net] cup戦の投票結果発表してたよ。
34 名前:デフォルトの名無しさん mailto:sage [2013/10/05(土) 01:16:50.23 .net] en.m.wikipedia.org/wiki/Ctrie https://github.com/axel22/Ctries https://github.com/danlentz/cl-ctrie https://github.com/mcschroeder/ctrie 並行Trieは、scalaのチームが考えたのか。 clとhaskellの実装があるようだ。 名前からするとhash mapとstmが複数コアで速くなりそうに見えるけど、どうなんだろう。
35 名前:デフォルトの名無しさん mailto:sage [2013/10/05(土) 02:23:43.17 .net] clojure-py やってみようと思ったけど 開発止まってるこれはもう開発の余地がないほど完成してるってとってもいいのかな
36 名前:デフォルトの名無しさん mailto:sage [2013/10/05(土) 09:30:26.26 .net] https://groups.google.com/forum/m/#!topic/clojure-py-dev/ZyfAbg0UCpY The project is totally unactive right now, but it is in a reasonably usable state (you can start python2 clojure.py and get a working REPL). 前動かした時は、基本的なものは動くようにみえた。 ただ、javaのapi叩いてるようなライブラリは動かない。(主に、ioまわり)
37 名前:デフォルトの名無しさん mailto:sage [2013/10/05(土) 16:49:02.23 .net] Getting Pushy: pushing data from server to browser https://thestrangeloop.com/sessions/getting-pushy-pushing-data-from-server-to-browser > Join David Pollak, Lift’s founder, as he walks through Lift’s design decision > and then see those same design decisions applied > to a Clojure/ClojureScript/AngularJS side project that David has been working on. core.async登場にあわせて、Liftっぽいフレームワーク作り始めてるのか。
38 名前:デフォルトの名無しさん mailto:sage [2013/10/05(土) 17:20:31.97 .net] Schema for Declarative Data Validation in Clojure https://thestrangeloop.com/sessions/schema-for-declarative-data-validation-in-clojure ちょっと話題になってるデータバリデーションライブラリ これもスライドないのかな? セッション一覧 https://thestrangeloop.com/sessions スライド一覧 https://github.com/strangeloop/StrangeLoop2013/tree/master/slides/sessions
39 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 06:06:04.49 .net] setterという変数の内部の値を書きかえる関数があるとき、 (let [] (setter x) x) と (do (setter x) x) で結果が違うんですけど、これは仕様でしょうか? letの方はxが変更されなくて、doの方はxの中身が変更されます
40 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 12:12:08.07 .net] clojure.org/special_forms#Special%20Forms-- (let%20[bindings*%20]%20exprs*) clojure.org/special_forms#Special%20Forms-- (do%20exprs*) 基本的に副作用ある場合は逐次実行される様にdo系の逐次実行マクロで囲む必要があるという認識。 d.hatena.ne.jp/ryoasai/touch/20110604/1307201476 d.hatena.ne.jp/awacio/touch/20121009/1349796084 基本は、副作用考慮し
41 名前:ネい実行順序によらない並列評価になると思うので let使う場合も、(let [bindings*] (do (expr*)))にする必要がある(と思ってる)。 [] [ここ壊れてます]
42 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 12:55:16.43 .net] 逐次実行の外部計算ライブラリ利用したプログラムでベンチとった時に、cpuが100%(=1論理コア)以上使われてた。 検証せずに、とりあえず並列評価された可能性が高いってことにしておいた。 別件だけど、reducerでメモリまわりも節約出来るようだし、java1.6以降対応だから初めから使うようにしたいんだが、 javaのagentが立ち上がるので、明示的にjavaをexitするところの作法ってないのかな? tnoda-clojure.tumblr.com/post/60197800824/reducers tnoda-clojure.tumblr.com/post/59364812844/dispelling-tis-fud-about-clojure-part-one tnoda-clojure.tumblr.com/post/59416260402/dispelling-tis-fud-about-clojure-part-two
43 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 16:41:26.61 .net] exitする前にshutdown-agents呼んどく、という話ではない? ttp://clojuredocs.org/clojure_core/clojure.core/shutdown-agents
44 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 18:08:18.49 .net] ひょっとして、 do でも実行順序が保証されてなくないですか? user=> (map (fn [x] (do (println "print " x) x )) (range 0 40)) (中略) print 31 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 print 32 print 33 print 34 print 35 print 36 print 37 print 38 print 39 31 32 33 34 35 36 37 38 39)
45 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 19:19:42.62 .net] scheme の場合 gosh> (map (lambda (x) (begin (print "print " x) x)) (list-ec (:range v 100) v)) (中略) print 95 print 96 print 97 print 98 print 99 (0 1 2 3 4 中略 91 92 93 94 95 96 97 98 99) common lisp の場合 CL-USER> (mapcar (lambda (x) (progn (print x) x)) (range 100)) (中略) 97 98 99 (0 1 2 3 中略 97 98 99) clojure は変数の不変性を前提に変な遅延評価と最適化してるような気がする
46 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 19:39:25.70 .net] mapが返すのは遅延リストだから、 (do s1 s2 s3) s1 が s2 より前に実行されることが保証されているだけで、 s1 と s2 の間に他の処理をしないことは保証されていない s1 s2 が s3 の内部の値を書き換える操作の場合は s3 の内部状態が書き換わることは保証されない
47 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 20:28:02.08 .net] 遅延評価まじでウザいな なんでこんな欠陥を導入したんだよ
48 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 20:47:17.05 .net] 破壊的副作用に頼ったコードを書かなければどうということはない ・・・と言いたいところだけど、java呼び出しで書かざるを得ない時は結構ある 毎日clojureさわってる内はちゃんとdoallとかdorunとか呼ぶようにするけど、 ひさしぶりにさわると忘れてる事が
49 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 21:24:51.01 .net] データ構造を作った後に値を埋めていくタイプのコンストラクタはどうやって作るのだろうか…
50 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 21:25:48.60 .net] 遅延評価ではなく遅延シーケンスな
51 名前:デフォルトの名無しさん mailto:sage [2013/10/06(日) 22:44:50.69 .net] >>46 遅延シーケンスを否定するならClojureを使う意味はほぼ無いよ まさしくClojureの主要機能
52 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 03:31:05.01 .net] 順序問題はloop使うとちょっと逃げられる
53 名前:電波いっぱい mailto:sage [2013/10/07(月) 17:49:52.39 .net] >>48 doto を使うということではなくて?
54 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 23:35:18.05 .net] do一族 clojure.github.io/clojure/clojure.core-api.html#clojure.core/doall julianlaffey.wordpress.com/2013/04/25/untangling-clojures-do-functions-do-doall-dorun-doseq-dosync-dotimes-doto/
55 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 00:43:25.74 .net] 遅延なんて、カスと認定されて20年以上前に主要プログラミング言語から追放された昨日なのに どうして関数型を名乗る言語で復活してしまったのか カスなのに
56 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 02:47:32.00 .net] >>54 54の頭が20年前で止まってるから。
57 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 02:55:10.84 .net] そもそも追放されてなくね
58 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 03:57:57.56 .net] >>54 リストxs が f1 f2 f3 ... で構成されてて、 各fi が xs の部分集合から計算されるとき、 各fi の計算順序を無視して xs の定義を記述できる ので便利
59 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 09:16:54.87 .net] 副作用を制限する関数型言語の特性と遅延処理の相性がいいからねえ
60 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 09:27:51.29 .net] netflixの紹介は遊んでるな https://speakerdeck.com/daveray/clojure-at-netflix
61 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 17:45:21.27 .net] その作者、seesaw作ってた人か 当時は学生っぽく見えたけど、どうだったんだろう。
62 名前:デフォルトの名無しさん mailto:sage [2013/10/14(月) 11:35:08.95 .net] >>59 マクロの項目吹いたwwwww
63 名前:デフォルトの名無しさん mailto:sage [2013/10/15(火) 05:16:59.58 .net] それマクロスちゃうヴァルキリーやで っていう突っ込み欲しいんだろうか
64 名前:デフォルトの名無しさん mailto:sage [2013/10/15(火) 23:04:25.26 .net] netflix社内では、アニメ見放題なんだろうか。 最近見かけるようになった機械学習のSaaSっぽいやつのひとつ https://bigml.com/features バックエンドが99%clojureらしい。 blog.bigml.com/2013/06/21/clojure-based-machine-learning/
65 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 12:57:58.69 .net] 割とマジでコレが日本で流行らん理由がわからん。 PHPなんかよりよっぽどWeb関係作りやすいし安定してるのに。
66 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 14:16:47.21 .net] 流行らない理由「Lispだから」説 twitterでもネタで書かれてたけど 本当にこれありそうだよな
67 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 14:25:53.41 .net] Pythonみたいなのが流行りつつあるのを見ると やはりみんな括弧が嫌いなのかね 自分もエディタのサポートが無い環境なら 括弧の類が少ない言語を選ぶ気がするよ
68 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 15:28:06.39 .net] Lisp系の文法フリーな文化に慣れると 他の言語に手を出す気が失せる
69 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 15:59:06.29 .net] >>66 今の時代エディタのサポートなしとか余程の変態か初心者しかやらないし python流行ってるのは米軍とかgoogleが支援してるからも大きい つまりclojureにもいいパトロンがつけば
70 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 17:06:09.50 .net] 外野からすると単にカッコがというよりものっぺりしたコードの見た目に抵抗がある
71 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 18:06:07.41 .net] >>64 生のJavaScript書くのが辛いという理由で、Haxeみたいなのが人気が出てるのを見ると、 「コンパイラがエラーを指摘してくれる安心感」に魅力を感じる人が多いんだな、と思う。 Lispは発想を自由にコーディング出来るが、言い換えると開発者によって練度のバラつきが 大きく影響する--->人月で契約するプロジェクトマネージャーへの受けの問題だろう。
72 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 22:00:11.12 .net] マクロ書けなかったらClojure使う意味なんかないしなぁ
73 名前:デフォルトの名無しさん mailto:sage [2013/10/18(金) 13:15:25.70 .net] >>70 JavaScriptもClojureのREPLみたいに使えればそんなに書くの嫌いじゃ無いんだが開発環境がとてもショボイのが嫌いだ ってなわけでWeb環境はclojure+clojure scriptが楽だったりする。 プロトタイプはこれで作ってプレゼンする感じ でも実際の運営までにはPHPとかに変換しないと運営から文句来る orz
74 名前:デフォルトの名無しさん mailto:sage [2013/10/18(金) 16:00:03.29 .net] これはClojure->PHPのトランスレータのフラグ。
75 名前:デフォルトの名無しさん mailto:sage [2013/10/19(土) 10:07:41.65 .net] Twitter見てるとアニオタに人気の言語なのかね
76 名前:デフォルトの名無しさん mailto:sage [2013/10/19(土) 13:41:00.30 .net] >>74 PythonとRubyがアップを始めたようです
77 名前:デフォルトの名無しさん mailto:sage [2013/10/19(土) 20:10:23.28 .net] Haskell「所詮スポーツマンじゃの」
78 名前:デフォルトの名無しさん mailto:sage [2013/10/19(土) 21:31:27.19 .net] 今勉強中なんだけど、 セットとかマップって単にリストとか連想リストではいかんのだろうか。 そんなに効率が変わるようにも思えないし
79 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 00:36:22.11 .net] 普段はScala + Playをsbt + IDEAでコーディングしてるんだけど、 Clojureでウェブアプリ作ろうと思ったらどんな組み合わせでやるものなの? デプロイ先とかも簡単に見つかるのかどうかも気になります。
80 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 01:42:32.78 .net] Ring: RubyでいうRackのようなミドルウェア Compojure: RubyでいうSinatraのようなWebアプリ記述用DSL ということらしい、詳しくは知らん 参考URL ttp://d.hatena.ne.jp/oknknic/20130704/1372950152
81 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 12:28:05.95 .net] ringアプリでwarとか作れば、servletで提供できるよ。 www.ibm.com/developerworks/jp/java/library/j-paasshootout/ なので、openshift,run@cloud,gae,beanstalk,herokuなど無料から使えるとこで使える。
82 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 12:51:03.51 .net] mvc的なものなら compojure https://devcenter.heroku.com/articles/clojure-web-application luminus www.luminusweb.net RESTとクライアントJSアプリなら liberator clojure-liberator.github.io/liberator/ www.flyingmachinestudios.com/programming/building-a-forum-with-clojure-datomic-angular/ この本は、compojure中心 pragprog.com/book/dswdcloj/web-development-with-clojure クライアントサイドJSまわりは、clojurescriptというのでかけたりする。 www.oreilly.co.jp/books/9784873116129/ Railsのmigration、scaffold的なところがあるツールは、今のところないと思う。
83 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 13:38:55.00 .net] >>78 webアプリだと基本warに落とせる物が多いからAWSでもなんでも何処でもOKですぜ。 servletエンジン持ちもあるから単体jarで起動できる物も多いし。 JVMの有無だけじゃないのかなデプロイの可否
84 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 01:07:49.94 .net] ふっふっふ 社内で勉強会開始 emacsenが半数を占めていたのでCCWじゃなくnrepl-jack-inでclojure学習でだいぶいけそう
85 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 02:58:45.16 .net] メモ帳+コマンドプロンプト の俺は異端か…
86 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 03:51:38.44 .net] Lispでエディタ補助なしって拷問に近い LightTableがオシャレ
87 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 04:10:29.72 .net] メモ帳でLisp書くのとかどんな罰ゲームだよwww
88 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 05:31:08.88 .net] >>84 器用だな 不便感じないの?
89 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 07:49:10.16 .net] >>79 >>80 >>81 >>82 ありがとう。いろいろ選択肢はあるんですね。 少しずつ勉強してみます。
90 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 18:48:42.63 .net] >>84 xyzzyいいよー^^
91 名前:デフォルトの名無しさん mailto:sage [2013/10/22(火) 23:16:26.44 .net] メモ帳+コマンドプロンプトになれると、USBメモリにclojure1.xx.x..jarとコマンドプロンプトのショートカットだけ入れてればどこでもプログラミングできる
92 名前:デフォルトの名無しさん mailto:sage [2013/10/23(水) 02:58:00.41 .net] xyzzyにclojure-modeあるのか?
93 名前:デフォルトの名無しさん mailto:sage [2013/10/23(水) 14:58:22.80 .net] >>90 いっそのことlanternaとか使ったテキストエディタもとろもつくっちまったほうがよくね?(lanterna日本語とおらないのがアレ過ぎるけど)
94 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 03:44:18.58 .net] もはやメモ帳でコーディングする方が楽という領域に入ったが、 メモ帳閉じた後に自動インデント整形してソースを出力しなおしてくれるツールがあるとうれしい clojure.jarにくっつけてくれ、とだれが英語でリクエストしておいてください
95 名前:デフォルトの名無しさん mailto:sage [2013/10/25(金) 05:16:19.00 .net] www.infoq.com/jp/news/2013/10/core-typed 形システムについての日本語記事
96 名前:デフォルトの名無しさん mailto:sage [2013/10/26(土) 01:55:15.87 .net] >>93 vimとclojure.vim入れて、全行を「=」コマンドで整形して保存するだけのスクリプトを書いて実行 もしくはemacsで(ry コードの整形は流石にpretty-printでは無理か
97 名前:デフォルトの名無しさん mailto:sage [2013/10/26(土) 19:43:26.42 .net] leiningen使ってたら他の処理系のビルドが大変めんどくさくなってきて困る なんだかdameningenになった気分だ
98 名前:デフォルトの名無しさん mailto:sage [2013/10/26(土) 20:08:56.78 .net] githubのランキングが変わってた。 だいぶ前なのかもしれないけど。 トレンドなリポジトリ https://github.com/trending?l=clojure トレンドな開発者 https://github.com/trending/developers?l=clojure googleのリポジトリもあるんだね。
99 名前:デフォルトの名無しさん mailto:sage [2013/10/26(土) 20:19:48.05 .net] >>96 最近の、ビルドの最中までオンライン前提な風潮はどうにかならないのだろうか…
100 名前:デフォルトの名無しさん mailto:sage [2013/10/27(日) 17:15:30.86 .net] >>98 つlein -o
101 名前:デフォルトの名無しさん mailto:sage [2013/10/28(月) 01:28:01.73 .net] nrepl.elで (.start (Thread. #(println "anal"))) とかすると、出力がreplではなく*nrepl-server*バッファに表示されてしまう問題はいつ解決されるんだろうか
102 名前:デフォルトの名無しさん mailto:sage [2013/10/28(月) 21:17:40.45 .net] https://github.com/ayamada/clan doc.tir.ne.jp/devel/clan 作者が日本人だから日本語のドキュメントが充実してていいな
103 名前:デフォルトの名無しさん mailto:sage [2013/10/29(火) 20:25:42.06 .net] >>100 replの*out*をどこかにコピーしておいてbinding で*out*へ結びなおすのじゃだめなん? user>(defonce +nrepl+ *out*) user> (.start (Thread. #(binding [*out* +nrepl+] (println "anal")))) anal nil user>
104 名前:デフォルトの名無しさん mailto:sage [2013/11/02(土) 18:46:32.47 .net] >>102 そっか、それで良いのかありがとう pcallsとかならbindingしなくてもちゃんとreplに出力されるみたいだから内部で同じようなことやってるのかな それでも例外は*nrepl-server*に出てしまうけど
105 名前:デフォルトの名無しさん mailto:sage [2013/11/03(日) 08:59:14.28 .net] >>103 例外は補足してバッファにpopupさせる設定ができるから nrepl-popup-.* な変数を c-h vでチェックしてみるのがよさげ ;;; 最新版にしたらritzが動かないのでbreak-on-exception効かなくなってちょっとこまった >> nrepl
106 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 21:51:04.56 .net] cemerick.com/2013/11/05/2013-state-of-clojure-clojurescript-survey/ Clojure国勢調査2013 去年まではもう少し早い時期にやってた気が。
107 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 21:58:39.40 .net] Great Goodとか出してるNo Starchからclojureの本出すらしい。 > Good news everybody: I've signed a deal with No Starch Press to publish Clojure for the Brave and True! Not only that, the entire book will continue to be available for free online! www.flyingmachinestudios.com/programming/book-deal/ たくさん図のはいった本になるんだろうか
108 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 22:20:40.22 .net] 現在フリーで公開してるこれを No Starch からも出すってことじゃない? www.braveclojure.com/ これで勉強して Compojure で何か書いてみたいなあ
109 名前:デフォルトの名無しさん mailto:sage [2013/11/11(月) 23:53:23.54 .net] ニュー速VIP爆撃中の2ch定期書き込みツールqsocks lispで書かれたこのツールを誰か改造してください。 他板でも使えるようにしてください。 お願いします。m(ーー)m qsocks https://anonfiles.com/file/3fcd3edbf6000ecf37b61e8af186c453 qsocksソースコード codepad.org/uyuG7Ovg
110 名前:デフォルトの名無しさん [2013/11/12(火) 00:19:25.31 .net] 知らばく見てなかったけど、もちろんJVMとは決別したよな。
111 名前:デフォルトの名無しさん mailto:sage [2013/11/12(火) 00:32:31.14 .net] もうブラウザに移行しまうま。 来年ぐらいに構文解析的な用途では十分なCinCもできそう。 llvm、python、.net実装は利用者増えてない。
112 名前:デフォルトの名無しさん mailto:sage [2013/11/12(火) 00:33:43.41 .net] JJUGで発表あったような、、、
113 名前:デフォルトの名無しさん mailto:sage [2013/11/20(水) 08:19:00.09 .net] www.sankeibiz.jp/smp/business/news/131119/prl1311191038019-s.htm clojure cupに出てたのこのチームだったそうで。
114 名前:デフォルトの名無しさん mailto:sage [2013/11/20(水) 16:55:40.22 .net] もっとこういうClojureの採用事例が増えてくれるとうれしい
115 名前:デフォルトの名無しさん mailto:sage [2013/11/23(土) 01:29:58.21 .net] lispってemacsユーザーのオモチャっていうイメージがある
116 名前:デフォルトの名無しさん mailto:sage [2013/11/23(土) 03:14:20.49 .net] そもそもclojureはlispなのだろうか…
117 名前:デフォルトの名無しさん mailto:sage [2013/11/23(土) 07:37:57.01 .net] let over lambdaの作者がvimmer過ぎて、読んだらemacs云々はのイメージが薄れた。
118 名前:デフォルトの名無しさん mailto:sage [2013/11/23(土) 10:29:47.83 .net] >>114 逆ジャね? emacsがLispユーザのおもちゃじゃね?
119 名前:デフォルトの名無しさん mailto:sage [2013/11/24(日) 01:18:40.32 .net] SICPとemacsがプログラミング入門に最適だった 今でも、そこからスタートするのが良い素養を持てるはず C#,PHPがやることなんて、せいぜいlatexの延長か何か
120 名前:デフォルトの名無しさん mailto:sage [2013/11/24(日) 16:43:40.55 .net] SICPはschemeメインだから、SICPから入ると、loopを多用するlisp的なイデオムに拒否反応が出る
121 名前:デフォルトの名無しさん mailto:sage [2013/11/24(日) 18:43:19.94 .net] lein使おうと思ってダウンロードしてlein replしたら https://leiningen.s3.amazonaws.com/downloads/leiningen-2.4.0-SNAPSHOT-standalone.jar をダウンロードしようとして失敗する。
122 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:46:08.50 .net] 2.4.0-SNAPSHOTがないっぽい。 たしか、2.3.4にしたら動いた。 leiningen-2.3.4-standalone.jar
123 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 23:54:53.15 .net] blog.jonharrington.org/python/2013/11/21/clojure-python-lite/ Hy (lisp on python) docs.hylang.org/en/latest/ clojure-pyは活動停してしまったけど、 lisper向けな別プロジェクトがあるらしい。
124 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:02:25.56 .net] export LEIN_VERSION="2.4.0-SNAPSHOT" ここを"2.3.4"ね。 たまたま、普段使わないwindowsにいれようと思ってひっかかったので、 404 not found じゃなくて、403 Forbiddenだし、 過去の報告みてダウンローダーがおかしいのかと思ったんだけど、 取り敢えずファイルが公開されてないようだ。
125 名前:デフォルトの名無しさん mailto:sage [2013/11/27(水) 00:04:04.94 .net] hylasと微妙にカブる
126 名前:デフォルトの名無しさん [2013/11/28(木) 23:21:29.33 .net] incanterをRの代わりの使おうしたけど incanterは色々足りない感じがして残念
127 名前:デフォルトの名無しさん mailto:sage [2013/11/28(木) 23:51:11.37 .net] 資産を生かしたいなら、Rのラッパーがjavaやclojureにあればすむのかな?
128 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 02:46:50.26 .net] >>125 Incanter は現在もしっかりと開発されてるんだよな 数人がコツコツ作ってる印象だけど 物足りない感じるならなら開発に参加すべき
129 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 13:56:26.40 .net] JVM上で動くRやサーバーで動くRもあるらしいので組み合わせてみては https://code.google.com/p/renjin/ rforge.net/Rserve/
130 名前:デフォルトの名無しさん mailto:sage [2013/11/29(金) 20:41:34.26 .net] もうそれ素直にRやったほうがいいと思うの
131 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 13:16:22.87 .net] Common LispやSchemeとの関数の対照表はありませんか? まずmemberやfindに対応するものからしてわからない……
132 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 20:08:14.78 .net] define defun defnとか、set系とか、eq系とか、mapとmapcarとか、高階関数の引数で#'が必要かどうかとか もうあきらめてる
133 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 23:33:26.00 .net] つ hyperpolyglot.org/lisp
134 名前:デフォルトの名無しさん mailto:sage [2013/12/03(火) 23:49:14.67 .net] 2013利用者調査の集計終わったらしい cemerick.com/2013/11/18/results-of-the-2013-state-of-clojure-clojurescript-survey/ tech.puredanger.com/2013/12/01/clj-problems/
135 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:14:11.72 .net] jarkをraspberry piとbeaglebone blackで使えるようにして
136 名前:ルしい。 つまりarmアーキテクチャで動くjarkがほしい。 rpiもbbbもjvmとかreplとかの起動が信じられないほど遅くてclojureを使うモチベーションが 打ち砕かれてるのが現状だけど jarkが動くようになれば未来がガラリとかわる。 [] [ここ壊れてます]
137 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 01:01:07.13 .net] CPUは18ヶ月で2倍だっけ? atomのBayTrailなら普通に動くので、 あと二年ぐらいで、1万前後の組み込みボードでarmかatomがそこそこ動くようになってると思う。
138 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 14:54:34.68 .net] Incanter 最近動きないと思っていたけどこつこつと開発は進んでいたんだな
139 名前:デフォルトの名無しさん mailto:sage [2014/01/03(金) 18:29:49.53 .net] 同じような処理をするならリストかベクタどっちが早いの
140 名前:デフォルトの名無しさん mailto:sage [2014/01/03(金) 19:21:41.87 .net] >>137 その同じような処理がどんな処理かによる
141 名前:デフォルトの名無しさん [2014/01/04(土) 01:48:06.47 .net] >>138 要素ごとに関数を適応する場合と (+ n n+1 n+2)みたいな計算を全リストごとに計算をする
142 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 02:00:47.86 .net] 処理そのものの速さよりも、結果を他のコレクションに変換するときのコストを気にする方がいいような…
143 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 02:40:32.32 .net] >>139 ,140 1.5からmapvとかあるからvectorでもseqでも変換コストはかかんねぇような気がする
144 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 02:41:55.72 .net] あ、まちがい、出来上がった結果のvecやらseqやらをさらに遣って後から伸びる方法によるのか。(頭に足すかケツに足すか)
145 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 18:25:37.79 .net] >>141 mapv初めて知った >>140 リストをベクタにしたりとか変換しないようにしとけば特に問題ないんだな
146 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 16:16:29.71 .net] LightTableがOSSになったぞ
147 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 16:58:50.78 .net] >>144 見てきた cljsとはおもわなんだ ちょっとびっくり
148 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 03:02:37.00 .net] おいしいclojure読んだけど、外部のライブラリを導入するときに、インストールまで全部オンラインでやること前提になってるけど、今はそれが普通なのだろうか 必要なアーカイブをダウンロードして、あとはオフラインでやるというスタイルはもう終わりですか
149 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 13:52:56.12 .net] >>146 できなくはないけど、面倒くさい。
150 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 15:18:37.20 .net] jarファイルダウンロードしてくる部分のこと? yum(rpm)、gemとかと一緒だね、 leiningenとかで使ってるのは、javaのmavenレポジトリがベース rubygems.orgとか良くダウンしてたので、その時の為に、ローカルにリポジトリのdaly.axiom-developer.org/clojure.pdf ミラー作ったり、yumもインストールCDからしたり出来るし。ローカルネットワークのみの場合でもproxy経由でインストールしたりする。 mavenは詳しくわからないけど、 leiningenも、ローカルにミラーしたmavenレポジトリ追加したりということは可能かと。 あとは、独自版を使いたいときのために、localinstallプラグインというのがある。
151 名前:デフォルトの名無しさん [2014/01/25(土) 16:42:03.33 .net] 4clojureがちょくちょくつまる reverseなしでreverseするには空リストにintoとか 普通すらすらわかるん?
152 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 16:53:06.44 .net] >>148 普通にローカルの~/.m2/repositoryへ突っ込む手段はあるから問題ないんじゃ? ソースひっぱってきてmvn installでも lein installでも使える バイナリのjarだけを突っ込む方法はしらん;-p (~/.m2/repositoryをクローンで?)
153 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 21:21:53.70 .net] >>150 バイナリのjarだけつっこみたい時は、lein localrepoをつかう ttps://github.com/kumarshantanu/lein-localrepo
154 名前:デフォルトの名無しさん mailto:sage [2014/01/25(土) 23:42:38.80 .net] 起動時間なんとかしてくれー
155 名前:デフォルトの名無しさん mailto:sage [2014/01/26(日) 11:44:45.81 .net] jvmの起動時間て なんであんなに遅いの? どうにかならないもんなの?
156 名前:デフォルトの名無しさん mailto:sage [2014/01/26(日) 15:18:15.60 .net] leinは、32bitJVMのころにあった-clientに当たるような設定つけて起動してるみたい。 なので、サーバー用途にlein runそのまま使うと遅くなることも。 Android4.4に実装されているART Runtimeみたいに、AOTで起動早くすることもできるんだけど、 現状、AOT付いてるPC向けのVMはHotSpotVMより起動が遅かったりする。 そういうば、ART Runtimeだと今のところclojureでつくったソフトが起動時にclassのverificationで落ちて動かない。
157 名前:デフォルトの名無しさん mailto:sage [2014/01/26(日) 23:53:17.89 .net] 要望にあったものではないだろうが、こんなのが https://github.com/takeoutweight/clojure-scheme ClojureScriptのscheme版に改造したものらしい cljs系は面倒だけど、メンテナンスはしやすいかも。 pycljとかも、起動早いしそのまま使える。 でも、JVMに直接依存してるところは、動かない、、 こういうのって、OpenCLみたなHPC向けのコード吐けるものなら便利そう
158 名前:電波いっぱい mailto:sage [2014/01/27(月) 23:40:51.24 .net] >>149 そういうのに多く触れて来た人ならスラスラ解けるでしょうけど、そうで無い人の方が多いでしょう。 でも、そういう問題を解いて、他の人がどのように解いているのかということを知るのが4clojureの目的だよね。
159 名前:デフォルトの名無しさん mailto:sage [2014/01/28(火) 10:27:48.13 .net] >>156 なるほど、解いた後他人のsolutionを見ることに意味があるのか
160 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 00:07:51.81 .net] すみません leiningen を reple で起動したときに、jar をどっかからダウンロードしてると思うんですけど、そのjarっていったいどこに保存されてるのでしょうか? Windows7 です
161 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 05:22:55.78 .net] lein classpath とか打てば書いてあるんじゃね?
162 名前:デフォルトの名無しさん mailto:sage [2014/01/30(木) 11:22:48.47 .net] >>158 c:/Users/<アカウント名>/.m2 ここがmavenのリポジトリの在処 lein depsでひらってくると.m2以下に突っ込まれる
163 名前:デフォルトの名無しさん [2014/01/31(金) 22:17:30.83 .net] 大学生協に1冊だけあったおいしい本がなくなってやがる こんなマイナー本をピンポイントで 中身確認したかったのにorz
164 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 00:04:22.94 .net] おいしい本は、読者がネットに常時接続してることを前提にしている点に違和感がある
165 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 00:30:20.21 .net] ずっと繋がないといけない処理があったりするの? lein使うのやめてほしいとかそいうの?
166 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 00:34:29.85 .net] >>163 私の開発環境は完全にオフラインだから leinだと、USBメモリにjarファイルコピーしても、どこに配置すればいいのか分からん
167 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 01:00:42.53 .net] 確かに。昔は、何も使わないチュートリアルがあったけど、最近はlein中心だからね。 もともとそれで動くから、 ツール系はhadoopとかみたいに、libsフォルダにがっつりjarファイルが入ってて、コマンド用意して隠蔽してたりする。 jar置いて実行できるツールは必要かもね。clojurebox 基本はこれだけど、 clojure.org/repl_and_main unix java -cp jar1:jar2:..:jarn -m clojure.main win java -cp jar1;jar2;...;jarn -m clojure.main jarフォルダにいれてあれば、jar1:jar2:...:jarnを展開してくれるスクリプトみたいのあったかも。 leinプロジェクトの場合は、lein uberjarしてstandalone.jarをどっかからもってくるというて手もあるが。
168 名前:デフォルトの名無しさん [2014/02/01(土) 22:53:02.10 .net] ふと思ったんだけどClojureってClojureで実装されてんの?
169 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 23:15:13.68 .net] バイトコードにコンパイルするのに、sdkのjavac が必要ないことだけは分かってる
170 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 23:18:43.09 .net] >>167 .javaなruntimeクラスとかどうやってコンパイルしてるん?
171 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 12:57:22.64 .net] ローカルの ~/.m2 リポジトリをUSBメモリやモバイルPCに入れて、 オフラインで lein 使用できないかな?
172 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 13:49:18.44 .net] >>169 $HOMEを書き換えれば使えるんじゃね?
173 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 23:31:31.18 .net] Clojureは今のところJavaで実装されてる。ClojureのコンパイラをClojureで書き直すプロジェクトはClojure Contribの1つとして既に走ってるよ。
174 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 23:57:20.87 .net] Java言語習得済み人に聞きたいんだけどメソッドの大文字小文字の命名規則ってある? kとKの違いでプログラミングClojureのSnakeゲーム時間めっちゃとられた
175 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:30:48.62 .net] メソッド名は小文字から始まって、単語の区切りの先頭を大文字で なので単語はアンダーバーで区切らず、そのまま連結する というのが基本で、○○法とかの固有名詞の場合はそのときそのときで 今は日本語のメソッド名も使えるらしいが、その場合のルールは不明
176 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 01:04:01.73 .net] ClojureScriptでhello world書いたら1MB弱あるjsファイル吐かれて驚いたんだけどこれが普通なの? 一応pretty print切ったら600KB少しにはなった
177 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 04:30:37.09 .net] >>174 google closure compilerがゴリゴリ削るはずなんだけど :optimizations が :none とか :whitespace になってたりしない?
178 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 10:53:27.86 .net] >>173 なるほど、そういうことか そうやってクラス名とメソッド名を区別するわけか thx
179 名前:デフォルトの名無しさん mailto:sage [2014/02/05(水) 06:09:12.77 .net] haskel caml ml scala 使いのおれがclojureにうつるので今現在のおすすめ本ほしえてくれ 主要な本、英語か日本語で 特徴つけてくれたらうれしい
180 名前:デフォルトの名無しさん mailto:sage [2014/02/05(水) 06:55:56.35 .net] 日本語書籍 オーム社 プログラミング Clojure 第二版(PDF版アリ) Clojureの基本解説書、これよんだ後はclojarsとgithub探訪で事足りるような? 技術評論社 おいしいClojure フレームワークやライブラリの紹介集なので必要かどうかは微妙だが名前が類推できないものとかをちょろっと知るには便利 英語書籍(基本ebook) Joy of Clojure 入門書 Programming Clojureとどちらか片方あればOK Clojure in Action 入門書+α +αの所が良い感じ TDD, Data storage, web, DSLとか Clojure Programming これは読んでないのでしらない
181 名前:デフォルトの名無しさん mailto:sage [2014/02/05(水) 20:27:20.90 .net] Very thanks やっぱ日本語と英語じゃ理解の速度も深さもちがうから 日本語書籍 オーム社 プログラミング Clojure 第二版(PDF版アリ) を週末に買いに行くわ ただ、projectの組み方とか、開発環境の細かい使い方セッティングの仕方とか かいてあるのもほしい、eclipse for java みたいなののつかいかた lein とかの使い方、webあされば分かるんだろうけど、 まとまってるのがいい本とかで、その方が達成もあるし。
182 名前:電波いっぱい mailto:sage [2014/02/05(水) 23:26:58.73 .net] >>179 使い方方面であれば、これはいいと思う。 pragprog.com/book/dswdcloj/web-development-with-clojure webベースのいくつかのシステムを1から作り上げていく過程を解説するという流れで進んでいく。 clojureのバージョンも最新の1.5.1対応。 leiningenの説明もあり。 ideはLightTable。
183 名前: さておき、Joy of Clojureは入門書では無いと思う。一通り身についた頃に読むと、clojureらしい書き方っていうのがわかる本。 [] [ここ壊れてます]
184 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 00:57:12.73 .net] joy of clojureは本自体にそんなことが書いてあるもんなぁ
185 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 00:45:16.62 .net] プログラミングClojureの5,6章はJavaの前提知識がないと辛いものがあるな 7章はめっちゃすんなり読めるのに
186 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 00:51:17.32 .net] >>175 optimizationsをadvancedに変えたら素のJS並に減ったわ でもこれJSのライブラリと相性悪いみたいなんで萎えた・・・
187 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 08:52:33.77 .net] otabat.hatenablog.com/entry/20121123/1353674855 細かい指定方法があった
188 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 11:19:08.24 .net] それを読んだので萎えた
189 名前:デフォルトの名無しさん [2014/02/08(土) 16:01:14.48 .net] >>180 thanks 日本語の本読んでから見てみる
190 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 22:02:16.24 .net] 日本語の書評があったので、転載 1. Web Development with Clojure Clojure で Web アプリ開発する方法を調べようとして,ググり疲れた人向けです. 本書では Compojure/Ring の組み合わせについて, 一通りサンプル Web アプリケーションが動くまでを解説しています.そのほか (続く) 2. Clojure High Performance Programming この本はおすすめなので,絶賛します. この本の大部分は (遅くならない)普通の Clojure プログラムの書き方 の説明に費されています. そこで,この本は次のような人におすすめです. 初級〜中級レベルの Clojure プログラマをこれから目指す入門者 (続く) 3. Clojure for Domain-specific Languages これは、英語の書評があったけど、DSLが40ページで、残りが入門書とのこと。 あまりお勧めされてはいなかった。 似たような分野だと、 実践プログラミングDSL ドメイン特化言語の設計と実装のノウハウ と Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM がある。 そういえば、clojureの書籍での入門順は何ヶ所で見た気がする。こことか www.bigjason.com/blog/a-path-to-clojure
191 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 19:49:57.63 .net] nilと()って分けてみたはいいけどあまりうまくなかったという感じがしない? 利便性に振った結果か、結局色んな所で同一視してるし……
192 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 23:07:26.60 .net] nilとfalseを分けたschemeが嫌いな人には向いてると思う>>Clojure
193 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 00:23:41.32 .net] というか、嫌なら、適当なシンボルを偽に割り当てればいいのではなかろうか
194 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 20:03:15.49 .net] プログラミングClojure第二版の10.4の lein noir new clojurebreaker って lein new noir clojurebreaker の間違いじゃね?
195 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 08:03:30.33 .net] kindleマーケットで100円の本買ってClojureの勉強はじめた Android上で動くワンペインアウトラインプロセッサ作りたい
196 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 15:29:39.97 .net] あのkindle本、追体験出来るように書かれてるので独習にいいよね。
197 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 23:15:27.33 .net] seesawで表示させるとUbuntuだとテキストめっちゃ汚いんだけどWindowsだとどうなんだろ
198 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 03:54:07.02 .net] >>194 font設定しないと駄目じゃね?
199 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 04:24:20.25 .net] >>194 Javaのメソッドで直接アンチエイリアスの設定をしないと綺麗にならないよ。
200 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 04:37:24.76 .net] 間違えた。"(anti-alias g)"でいけたわ。
201 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 14:18:22.71 .net] clojure-1.6.0がbetaになったらしい https://groups.google.com/forum/m/#!topic/clojure/tseJgAi3HC4 細かい拡張とバグフィックス あとはパフォーマンス的には、hashとstmとprotocol呼び出しの効率あがったみたい。
202 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 18:04:34.54 .net] >>198 hashはそんなに重いと感じたことないけどprotocolはすげーありがたい。 stmは粒度気にしてればパフォーマンスあんまり気にならなかったけど、レースコンディションの激しいものでもOKってわけじゃないよね?
203 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 18:21:14.27 .net] >>195 >>196 フォント設定したらそこそこ綺麗になった thx
204 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 23:16:52.08 .net] >>199 単純に使ってないシステムコール(時計)を消去しただけみたい。
205 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 23:39:30.74 .net] もともとトランザクショナルメモリは、GILやジャイアントロックのようなロックを並列処理出来るようにしたり、書き込みが一箇所に集中しない時に使って楽するものみたいだし、 カウンターみたいなのは、合成(reduce)していく設計になるんじゃないかと思った。
206 名前:デフォルトの名無しさん mailto:sage [2014/02/16(日) 23:52:52.21 .net] tnoda-clojure.tumblr.com/post/60197800824/reducers 最近知ったんだけど、reducers使うと効率いいらしい。
207 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 00:36:36.78 .net] >>203 カリー化ってClojureに実装されてなくね?
208 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 05:27:34.71 .net] >>203 勉強になった
209 名前:デフォルトの名無しさん [2014/02/17(月) 12:29:59.97 .net] Quilって使ってる人居る?
210 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 22:19:18.20 .net] なんか怖いが第一印象
211 名前:デフォルトの名無しさん mailto:sage [2014/02/21(金) 00:37:52.59 .net] Quilはけっこう便利 これなら手軽にClojureでゲームが作れたりするんじゃないだろうか ただgithubのドキュメントがまさにイギリス人の英文って感じなのがあれだけど
212 名前:デフォルトの名無しさん mailto:sage [2014/02/22(土) 20:26:54.41 .net] test
213 名前:デフォルトの名無しさん mailto:sage [2014/02/22(土) 20:46:56.31 .net] あれ、まだ?
214 名前:電波いっぱい mailto:sage [2014/02/23(日) 22:40:30.45 .net] あれって?
215 名前:デフォルトの名無しさん mailto:sage [2014/02/24(月) 05:52:59.34 .net] かそりんぐ
216 名前:デフォルトの名無しさん mailto:sage [2014/02/24(月) 12:28:29.24 .net] ID
217 名前:デフォルトの名無しさん [2014/02/24(月) 23:13:01.99 .net] (every? sequential? [x y]) と書くのだるいから (sequential? x y) と書きたいって感じで標準の関数を拡張していくのはよくあること? あと、R風のベクトル処理できるライブラリとかないかな?Incanterに入ってるのかな?
218 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 22:21:14.29 .net] >>214 ベクトル処理ならmapとReduceあるし incanterで手軽にlapack使える
219 名前:デフォルトの名無しさん mailto:sage [2014/02/25(火) 23:53:07.13 .net] Incaterにminusとかplusとかあったみたいね。 (plus 2 [1 2 3]) ;[3 4 5] 単純な演算にmapとか使うのめんどいからさ〜
220 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 06:38:58.46 .net] 練習 ;;;(plus 2 (1 2 3 )) → (3 4 5) (defun plus (x lst) (let ((ptr lst)) (while ptr (rplaca ptr (+ x (car ptr))) (setrq ptr (cdr ptr))) lst))
221 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 08:20:36.25 .net] プログラミングclojure 2版 100page 次のコードが「ほとんどcurry」になるのがなぜかわからん (defn faux-curry [& args] (apply partial partial args)) ちなみに (def add-3 ((faux-curry +) 3)) (add-3 7) -> 10 となる (ほとんどカリー化のほとんどは すべての引数が固定されたときも定数を返さないから)
222 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 12:05:28.50 .net] カリー化は関数を関数のチェーンに変換することで 部分適用は引数を固定することだから、かな?
223 名前:デフォルトの名無しさん [2014/03/01(土) 12:32:42.15 .net] 「ほとんどカリー化」というか2引数関数のカリー化だな 3引数ならpartial3回いる
224 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 19:37:35.00 .net] compじゃカリー化だめなん?
225 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 10:34:04.97 .net] org.clojure/tools.* とかの最新版ってどうやってさがしてくるん?
226 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 21:48:58.61 .net] apply partial partial とか絶対見たくない
227 名前:デフォルトの名無しさん mailto:sage [2014/03/02(日) 21:52:38.43 .net] >>222 lein search tools.nrepl とか?
228 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 00:57:13.85 .net] マクロを利用する関数を書きたい場合って結構あると思うんだけど、 その場合は関数じゃうまくいかなくてマクロを書かざるを得ないな
229 名前:電波いっぱい mailto:sage [2014/03/03(月) 13:30:21.16 .net] >>225 そんなこと無いと思うけど、具体的にはどんな場合?
230 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 19:10:02.21 .net] 関数内でよく使われるマクロはそうでもないけど トップレベルで使われることを想定してるimportとか with-outとかwith-precisionとかbindingを利用しているマクロを さらに拡張しようとした場合に関数だとダメっぽいなあ
231 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 19:41:45.36 .net] (key val key val)のシーケンスからhash-mapに変換する関数はあるけどその逆はないのかな? 引数リストで{:as options}とかした後、そのoptionsをもとのシーケンスに戻したいんだけど interleave keys vals で元に戻すしかないか
232 名前:デフォルトの名無しさん mailto:sage [2014/03/03(月) 20:35:19.57 .net] >>224 おおー、ありがと。 lein searchをずっとローカルリポジトリ検索かと思ってた orz
233 名前:電波いっぱい mailto:sage [2014/03/04(火) 07:01:56.15 .net] >>227 そういうことであれば、そうかもしれないけど、そんなことをするのって、めったにないと思う。
234 名前:電波いっぱい mailto:sage [2014/03/04(火) 07:06:01.80 .net] >>228 (flatten (seq m))でどうかなぁ。mapになった時点で順番は失われてしまうから、元のシーケンスにはならないけど。 ところで、そんなことが必要になるシチュエーションが思い浮かばないんだけど、どういう時?
235 名前:デフォルトの名無しさん mailto:sage [2014/03/04(火) 07:52:05.70 .net] >>231 flattenだとvalueがシーケンスの時にうまくいかないと思う clojure.java.io/readerとか同じようにオプションをとる関数に引き渡していく際に欲しい
236 名前:デフォルトの名無しさん mailto:sage [2014/03/04(火) 21:07:58.40 .net] LightTableのオススメの設定とかってある? まだコレくらいしか設定してないけど #user.keymap "ctrl-pageup" [:window.zoom-in] "ctrl-pagedown" [:window.zoom-out] "alt-c" [:clear-console] "f3" [:find.next] "shift-f3" [:find.prev] "ctrl-/" [:toggle-comment-selection] "ctrl-w" [:editor.watch.watch-selection] "ctrl-shift-w" [:editor.watch.unwatch] f3とかpageupとかも普通に使えるのに驚いた :toggle-comment-selectionは必須だな。もっと早く知りたかった Windowsだとalt-wがメニューに吸われるのがだるいなあ・・・
237 名前:デフォルトの名無しさん mailto:sage [2014/03/04(火) 23:15:28.80 .net] >>228 (mapcat seq mm) とかではだめかな?
238 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 01:16:01.38 .net] >>234 なるほどね。それでいけるね。 apply concatでも大丈夫そう
239 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 02:40:32.58 .net] repl で (set! x 4) とかとしてもエラーにならないxってどうやって定義するの? (def x 0) (def ^:dynamic 0) とかでも IllegalStateException Can't change/establish root binding of: x with set clojure.lang.Var.set でエラーになる
240 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 02:57:00.72 .net] clojure.core.clj のソースをみても (def ^:dynamic *print-level* nil) とかで定義しているのに、なんで自分で定義したら上のエラーが出るんだ?
241 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 03:20:29.28 .net] >>236 thread localの(bindingした)varに対してset!できる (def ^{:dynamic true} *TESTVAR* 1) (binding [*TESTVAR* 2] *TESTVAR*) => 2 (def ^{:dynamic true} *TESTVAR* 1) (binding [*TESTVAR* 2] (set! *TESTVAR* 3) *TESTVAR*) => 3 そうでないなら(REPLからとか) (alter-var-root #'YOUR-VAR-NAME (constantly NEW-VALUE)) みたいにしないと駄目
242 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 04:26:07.41 .net] >>238 なるほどね。Thanks! でもなんで *print-level*は (def ^:dynamic *print-level* nil) で定義されているのに replで (set! *print-level* 5) -> 5 とかできるんだろう
243 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 08:46:49.52 .net] (defn myint [] (let [x (read)] (binding [mem mem] (if (< x 0) (println "good-by") (do (set! mem (+ mem x)) (println mem) (myint)))))) のでつかえばいいんだな
244 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 17:03:49.35 .net] >>239 clojure.mainの中でwith-bindingマクロつかってREPLのループ中でbindingされているから emacsでnrepl-jack-inとかcider-jack-inして使っているなら clojure.mainをM-.してソースみてみると良いよ あるいは直接clojureのソースのmain.cljみてみるよろし。(repl関数ね)
245 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 17:27:55.81 .net] sublimeでClojure書いてるひといる? デフォルトのインデントが糞なのでlispindentって拡張使ってるけど、時々固まるんだよなぁ。
246 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 17:43:10.65 .net] ClojureはLightTableかなぁ RubyはSublime使うけど
247 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 17:49:45.45 .net] sublime良いエディタだけどclojure使うときはemacsかぬ
248 名前:電波いっぱい mailto:sage [2014/03/06(木) 22:20:13.89 .net] >>239 被った。 Dynamicのvarをset!できるのは、別スレッドでbindされている場合のみで、 replで*print-length*などをset!できるのは、replが別スレッドで動いていて、 起動時にそれらのvarがbindされているからです。 どこでそのようなことが行なわれているかについては、 https://groups.google.com/d/msg/clojure/ufoDL6eNL3U/czncX8bNNSsJ にあります。このスレはまったく同じ質問についてのスレなので、他のメッセー ジも参考になるかと。 ところで、そのdynamicなvarはどのような目的でつかいます? どこに書いてあったかわすれたけど、set!はclojuerの流儀としてはほとんど 使われなくて、どうしても変更可能な値を管理したい場合はatomなどを使いま す。
249 名前:デフォルトの名無しさん [2014/03/07(金) 00:49:09.11 .net] >>245 別スレッドでなくてもset!できますよ
250 名前:デフォルトの名無しさん [2014/03/09(日) 13:11:05.66 .net] with-meta使えるなあ 付加情報渡すのに便利だわ
251 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 13:20:08.43 .net] 塹壕から迫撃砲しよ
252 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 15:55:17.19 .net] シーケンスを引数にとる関数だらけのClojrueではオブジェクト的な構造は使いづらいが メタ情報を使ってオブジェクト的な構造を表現して渡すのも場合によってはありだな
253 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 20:03:01.27 .net] (get [:a :b :c] 1)は:bなのに (get '(:a :b :c) 1)はnilになるのな こんなところではまった。nthを使うべきだった
254 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 23:40:32.71 .net] 関数getについて単に無知なんだろ
255 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 23:50:43.49 .net] どういう意味? リストが暗黙的にマップとして扱われないのはなぜ?
256 名前:デフォルトの名無しさん [2014/03/10(月) 03:08:58.76 .net] >>252 getはリストとかマップとかは関係なく非線形探索可能なデータに対して使います。(マップ、ベクタ、セット、文字列、配列) そのようなデータを使う時、nilや指定した値を返すのが便利だから作ったのでしょう。
257 名前:デフォルトの名無しさん mailto:sage [2014/03/10(月) 19:56:48.85 .net] この例に限らずnilが返ったり、nilを与えたときにどう動作するか 明確にドキュメントに書いてないことが多くて試してみないといけないのがちょっとめんどい
258 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 20:46:55.74 .net] へ? ベクターは添字でアクセスできるが リストにそれを求めるのは変だろ nilが帰ってくるあたりまえ リストは可変長配列ではないのだから
259 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 20:09:52.24 ID:th2nKpvg.net] nthではアクセスできるじゃん hash-mapのvalueにだけ関数を適用して変換できるmap関数のようなものないのかなあ 自作するしかないか
260 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 21:22:44.77 ID:th2nKpvg.net] coreとcntrib以外にベースになるライブラリってない? ディレクトリ内を正規表現かglobで検索できる関数が欲しい・・・
261 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 21:32:43.30 ID:w2TVy3P1.net] glob検索必要って事はWindowsかいね? 普段使いだとUnixとかLinuxとかMacOSだとコマンドラインのレベルでワイルドカード展開しちゃうから必要性感じないのだけど
262 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 00:03:00.15 ID:+EH3xZU4.net] Android上のclojure起動時間は、ART(KitKatから入ったAOT使うJVMのRuntime)では縮まらない模様だ。 現状のART使ってみたらreplが起動で落ちてしまうので全く使えないのかと思ってたけど、一部動くみたい。 nicholaskariniemi.github.io/2014/03/12/clojure-android-startup-benchmarks.html
263 名前:電波いっぱい mailto:sage [2014/03/13(木) 00:25:56.65 ID:63sq92O1.net] >>257 Javaのファイル検索にglobがあるからそれをつかっては?
264 名前:電波いっぱい mailto:sage [2014/03/13(木) 00:36:12.30 ID:63sq92O1.net] >>256 リストとベクタは順序のある要素の並びだからnthでアクセス マップはキーと値の関連の集まりだからgetでアクセス。ベクタのインデックスをキーとしてgetが使えるのはオマケ。 マップの全ての値に同じ操作をする必要性かあまり思いつかないけど、reduceを使うときれいにできると思う。
265 名前:デフォルトの名無しさん [2014/03/13(木) 08:14:17.30 ID:MKpH1D3w.net] >>256 マップの特定のキーを持つ値に対してであれば、update-inを使いましょう。 全ての値だったらcoreにはないけど、clojure.algo.generic.functor/fmapがあります。
266 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 10:00:28.26 ID:+EH3xZU4.net] >259 のひとつ前にスタートアップが遅い理由を計測した記事があった nicholaskariniemi.github.io/2014/02/25/clojure-bootstrapping.html varとmetadataのロードで80%ぐらいかかってるとある 二年前にもAndroidで使おうとしてる人たちが調べてた blog.practical-scheme.net/shiro?20120711-design-decision martinsprogrammingblog.blogspot.de/2012/02/why-is-clojure-so-slow.html https://raw.github.com/relevance/clojure-conj/master/2011-slides/daniel-solano-gómez-clojure-and-android.pdf clojureclr.blogspot.jp/2011/12/using-ngen-to-improve-clojureclr.html JVMのlispといってもsbclやkawaの起動は早かったと思う なのでhello worldベンチするなら一緒にやってあげると、lispではなくclojureの特徴とわかるはず
267 名前:デフォルトの名無しさん mailto:sage [2014/03/18(火) 14:59:31.28 ID:Tn1P3965.net] Kormaで並列にMySQLへ接続してると com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure ってのが出て死ぬ。まだ深追いしてないけど、逐次なら動く。 mysqlのログに一
268 名前:切何も出てないのが謎。 pmapで馬鹿並列にしてるから、何かコネクションの再利用方法とか 設定する必要があるのかな? [] [ここ壊れてます]
269 名前:デフォルトの名無しさん mailto:sage [2014/03/18(火) 22:33:42.28 ID:AVGKCT5w.net] max_connection関連かな?わからんけど TIME_WAITがいっぱいになってたりして
270 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 15:30:04.40 ID:oXIqqE+e.net] mysqlの問題かもしれんし、もう少し調べます。 スレ汚しすまそ
271 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 20:21:00.17 ID:lJfJcBCq.net] リソースが取り戻せず、スレッドプールの上限、もしくはmysqlの上限になってるのか。 mysql側は、show processlist;とかで見てみるとか。 スレッド数よりプールが少なくて待たずにおちてるとか、 ライブラリのバグかもしれないし、なんとも言えない。
272 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 20:24:24.96 ID:lJfJcBCq.net] https://github.com/myfreeweb/clj-bonecp-url/blob/master/README.md poolさん
273 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 23:00:39.65 ID:egBAL9X9.net] >>267 直感的にはプール数とスレッド数の関係のような気がする・・・ ありがとうございます
274 名前:デフォルトの名無しさん mailto:sage [2014/03/20(木) 00:56:12.08 ID:RyuQttGh.net] nicholaskariniemi.github.io/2014/03/19/solving-clojure-boot-time.html Androidでも速くclojure起動出来るようにする手法を検討してた。
275 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 01:46:11.71 ID:H6xXr1wF.net] java8がラムダ式導入とか遅延評価とか来たが Clojure の遅延評価とか高速化されんのかな
276 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 09:17:38.80 ID:QkVVAvLB.net] 言語コアとして遅延評価が入ったわけじゃないから関係ないだろうな 高速化なら7のときのinvokedynamicのほうが恩恵ありそう
277 名前:sage [2014/03/22(土) 22:40:10.10 ID:kQXftENJ.net] invokedynamicは議論になってたけど、Android含めた互換性の問題で今のところは見送られています。 Lambdaでinvokedynamicが使われているのを考えると、これも同様に見送りになるのでは。
278 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 12:42:58.40 ID:SAz6Yfrw.net] >>269 デスクトップ環境では、ちょっとしたスクリプトを繰り返し使いたいなら、drip、java -client or -XX:+TieredCompilationがつかえるので、 eigenhombre.com/clojure/2012/11/16/lightning-fast-startup-times-for-clojure-programs/ www.slideshare.net/nekop/20130830-java-dragracetuning 現時点では、繰り返し起動するような開発手法とGUIアプリ、特にモバイルアプリ独自の悩みになって来てるとおもう。 gal.dolber.com/post/78110050703/reduce-startup https://github.com/galdolber/clojurefast
279 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 14:34:28.66 ID:60hyhDZ1.net] clojure CLRってWinRT端末でもうごくん?
280 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 20:24:51.33 ID:6aJM0KWZ.net] Clojure1.6がリリースされた
281 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 01:05:30.61 ID:SdqpiaKJ.net] 今回は、何事もなく。 1.5のときは、大変だったみたいだけど。 clojureのwebスタックのセキュリティ周りが足りてないらしく(一般的なフレームワークが、ここ5年ぐらい叩かれて対応してきた部分)、ある意味コミットするチャンスかも。 https://hackworth.be/2014/03/26/clojure-web-security-is-worse-than-you-think/
282 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 23:51:56.02 ID:SdqpiaKJ.net] www.clojurewest.org/schedule clojure/west2014のスポンサーが、小売の研究所や天候予測、農家の集計とか、EC専業や金融でないのが面白い感じ。 ウォルマートにも研究所があるのか。
283 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 14:52:41.94 ID:LoHVEupa.net] Processingのjarを使ってclojureでグラフィックを書いています。 高負荷の作画をした際に初めて分かったのですが、Javaで書いた同じプログラムよりclojureの方が大分遅くなります。 推測では原因はjavaメソッドの呼び出しで、lineやrectなどの作画メソッドを1フレームに数千回は呼んでいます。この呼び出し数を下げるとパフォーマンス悪化が和らいできます。 なんとかJavaで書いたプログラムと同等のパフォーマンスを出したいのですが、javaメソッド呼び出し部分を工夫する余地がないように思います。(.line applet x1 y1 x2 y2) どなたかアドバイスを頂けませんでしょうか?
284 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 14:55:33.55 ID:46qVoWdl.net] javaで書いてしまいましょう
285 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 14:58:17.67 ID:yiV3q/LE.net] >>279 つQuil
286 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 15:30:04.24 ID:LoHVEupa.net] quilは使っていました。しかしquilのサポートするprocessingのバージョンが古いままなので、直接processingを使うことにした次第です。 quilでも同じコードを書いて試してみたのですが、 processing.jarを使う <(若干早い) quil <(全然はやい) Java でした。 万策尽きました、がっくし
287 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 15:32:21.00 ID:NMmPcx+b.net] だから、javaで書け
288 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 16:03:50.55 ID:qrJfmm9g.net] リフレクションが使われていないかは確かめた? 型ヒントでリフレクション使われないようにすると50倍くらいは差が出るよ
289 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 16:28:07.03 ID:LoHVEupa.net] >>284 (def applet (new PApplet)) となってたのを (def ^PApplet applet (new PApplet)) としたら 死ぬほど早くなりました。 つまらないことお聞きして失礼しました(てへぺろ これでclojureでのコーディングが続けられてウレシイです
290 名前:デフォルトの名無しさん [2014/03/29(土) 16:56:57.64 ID:yiV3q/LE.net] 型ヒントってそんなに違うものなのか ちなみに作ってるのってゲーム?
291 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 17:11:41.63 ID:BM6Xgp1r.net] Clojureのチューニングポイントはいろいろあるけど、Javaと比べて実行時間1.2倍くらいまでなら容易に達成できます。 そこまで達成できないのであれば、まだまだチューニングの余地ありと考えましょう。 ちなみに、普通にJavaで書くよりもClojureの方が高速になる特異な事例もあります。
292 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 17:13:30.01 ID:LoHVEupa.net] >>286 Clojureの練習を兼ねてジェネラティブ・デザインを少々 Android用Processing.jar + Clojure でゲームにしたいですがハードル高そう
293 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 17:31:16.72 ID:XODOKiZ8.net] おお、凄いな
294 名前:デフォルトの名無しさん [2014/03/29(土) 19:36:12.68 ID:yiV3q/LE.net] デザイン系か Androidだったらleindroid+Quilじゃ駄目なん?
295 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 19:48:47.96 ID:YpOewtNN.net] clojureが速いという例では無いが、(Elasped secが実行時間、CPU secの合計で、CPU Secだとだいぶ遅い) 下のページのjavaとの比較表でダガーマークがついてるやつは、javaが1coreでclojureがマルチコア使ってて、 benchmarksgame.alioth.debian.org/u64q/clojure.php † possible mismatch - one-core program compared to multi-core program. ソースみるとclojure側も並列化意識してないCっぽいプログラムのベタ移植たけど、勝手にマルチコア使ってくれてるものが幾つかある。
296 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 10:24:46.95 ID:csT97O8F.net] Javaの呼び出しが入っちゃったら並列化可能かどうかの解析なんか結局不可能だからなあ 現実的じゃないよ
297 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 13:54:21.15 ID:UMO+OpiR.net] 並列化は正確には並列実行を保証するものではなくて、並列表現できるという意味だしな…
298 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 14:17:58.22 ID:8SJ6u3a3.net] >>293 破壊的代入を自動検知して不変性侵犯の有無を元に最適化とかできるようなシステムがあればいいのにと思う事も無いではない。 言語レベル(記述レベルで保証させる)だとHaskellみたいにちょっと堅苦しい事になるのが嫌いなんだよなー
299 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 02:28:32.89 ID:oW/UHGTB.net] androidもlein-droidも触るの初めてでしたが、lein-droidとprocessing-android でやっと hello world ができました。丸一日かかってしまいました。 lein-droidはjava classのコンパイル時にclojureソースでimportしたJavaクラスのスタティック初期化部が実行されてしまい、それがandroidライブラリのスタブにまで到達した場合、コンパイルエラーになる問題に苦戦させられました。これどうにかならないかな〜
300 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:28:08.64 ID:6I3F3lks.net] lein javacでrecompileしたclassってreplからreloadできないん?
301 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:46:20.15 ID:zuSItmXn.net] 社内利用とかじゃなくて、実案件でclojure使う例ってあるの?
302 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:52:07.22 ID:6I3F3lks.net] ごめん296だけど探し方が悪かったみたい。 ttps://github.com/zcaudate/vinyasa こんなの見つけた、leiningenのプラグインでreplからjavacしてreimportさせる仕組みを実装したものを見つけた。
303 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 03:53:43.56 ID:6I3F3lks.net] >>297 日本だと少ないけど自分はリリースしたものあるよ。(もうサービス終わっちゃったけど orz) あとはニャンパスの人が仕事で使ってるってblogで言ってるね。
304 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 08:35:04.77 ID:oFy+THWF.net] >>297 ニャンパスではありませんが、ClojureとClojureScript使った複数のサービスリリース経験ありますよ(運用中のもあります)
305 名前:デフォルトの名無しさん [2014/04/01(火) 13:39:10.84 ID:xLiVzV5o.net] >>297 Googleから独立したベンチャーのbyflow?みたいなところが使ってなかったっけ?
306 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 20:29:08.25 ID:LNeUvpk1.net] clojureで書くだけのメリットがあるコードって何なんだろ
307 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:09:04.50 ID:TpH+LQDd.net] オブジェクト志向向けじゃない問題なのにjava資産を使いたい場合。 まぁ普通に使ってもjavaより断然短く書けるよね。
308 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:27:35.57 ID:uZRloOCu.net] scalaと差別化した回答にして欲しいところ
309 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 23:53:22.93 ID:xLiVzV5o.net] Lispの文法でJava資産を使いたいとき、とか? あとLeiningenがあるのも
310 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 02:05:33.83 ID:34P1vxkc.net] >>304 ・scalaのreplは遅くてイライラする ・scalaのreplは複数ファイルをロードするとき、一つを読んだら他のファイルもロードしなくてはならないのが面倒 ・scalaは、コンパイルが通るコードもreplに通らないことがある(例: class定義の{の前後の改行位置) どっちもプロトタイプ向けにしか使わないと思うので、文法よりもこれが決定的 文法で言うなら、scalaは、継承やジェネリックのルールが覚えられないほど細かいのが欠点
311 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 08:55:56.47 ID:eMainclp.net] 文法を間違えないの他に何もメリットが思い浮かばない
312 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 03:49:09.83 ID:MeCz6RkU.net] あまり使い込んでないから言えないけど、マクロとか? いや、そこまで積極的に使うものでもないか
313 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 19:37:09.15 ID:B/aZWfqA.net] Scala複雑すぎるし無駄にしょっちゅうライブラリ弄りすぎ
314 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 20:01:04.53 ID:3wZs6sQe.net] Scalaあんまり触ったこと無いけど、なんていうのかな、機能同士が直交してないっていうのかな。○○と××を一緒に使うと問題があるのでこの場合は例外的に△△しますみたいなケースが多くて頭がパンクする
315 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 20:36:13.58 ID:KbAl46jm.net] >>302 速度クリティカルな数値計算でゴリゴリやらない奴なら何でもいいんじゃなかろうかと思う今日この頃。
316 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 01:21:36.48 ID:4493K1P2.net] 雑用スクリプト作ったり、プレゼン用にプロトタイプを30分で作るための言語という認識しかない
317 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 10:49:26.57 ID:9/ypcDw3.net] >>312 その認識は間違い
318 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 13:24:05.74 ID:/wbzo9Gd.net] >>312 それならRubyとかPythonの方が良くね?
319 名前:デフォルトの名無しさん mailto:sage [2014/04/04(金) 23:52:33.16 ID:HRToJQcJ.net] >>314 Javaが楽に使えるから、過去のservlet資産を組み合わせて短時間で見栄えのいいプロトタイプを作るのに重宝してる 携帯用もできるから手放せない 事務の雑用スクリプトは、もうその人の癖の領域だから、文法とかはもう関係ないかと
320 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 00:17:58.87 ID:yO4qa4lc.net] REPLが重宝するという話だと、 データ解析とかHadoopの処理をサンプリングしてREPLで組んじゃう話は聞くな。 DB系でコンソールで解析しちゃったり、 コマンドライン上で、パイプコマンドでapacheログ解析しちゃう系のイメージ
321 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 00:30:37.59 ID:F+xvKCYK.net] replに打ち込んだ履歴をそのままプログラムに反映させようとするとき、Lisp系は各コマンドがS式で独立してる率が高いから重宝する 他のスクリプト言語は前後の文脈も考えて頭つかう必要があることが多い気がする
322 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 13:59:35.01 ID:LRWrSFoo.net] REPLでdefnしてたの忘れてcljファイルに反映しないで作り込んだら次回cider-jackinしたらコンパイルエラーで起動しなくて焦った。 こういうの忘れない様にするテクニックとかツールないかな?
323 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 15:26:55.41 ID:WwH8h4FP.net] >>318 lein compileをするのが確実です。
324 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 17:07:32.49 ID:LRWrSFoo.net] >>319 nreplしてるとlein起動自体重くて忘れがちでした orz 「lein testしろやゴルァ」な付箋をモニタに貼り付けておこうと思います。 [壁]д・)チラッ nreplの中でdefnしたものをsnipetにして吐いてくれるelispないかなー
325 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 18:27:30.98 ID:ZiEyUtyX.net] orz、ゴルァ、壁チラww こいつ何年前からタイムスリップしてきたの?
326 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 22:25:16.39 ID:6vjqJJUY.net] www.slideshare.net/metosin/swaggered-web-apis-in-clojure https://github.com/metosin/fnhouse-swagger https://github.com/myfreeweb/octohipster schemaとswagger使ったapiファーストのRESTツールみたい。 このような構成にDB(データストア)組み合わせるとしたら何にどう繋ぐのがいいのかな。
327 名前:デフォルトの名無しさん mailto:sage [2014/04/10(木) 16:39:12.97 ID:FMX8fFXB.net] >>321 それがどうした? としか思わんのだが。 だいたい未来からきたんじゃねぇの?(あるいは>>321 が未来すぎる)なんで苛ついてるんだか。 LightTableのREPLが綺麗に死なない(LTをQuitしても残る)んだけど同じような経験してる人いる?<<Win8
328 名前:デフォルトの名無しさん mailto:sage [2014/04/10(木) 22:34:00.23 ID:Evnw+C/+.net] https://blog.engineyard.com/2014/clojure-web-app-engine-yard EngineYardは、無料枠がないからつかったことがない。でもカッコいい。 https://www.openshift.com/blogs/how-to-host-your-clojure-app-on-openshift OpenShiftは、無料枠あるので試しやすいが、紹介記事はservletではなくhttp-kit使う解説だ。
329 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 20:03:10.09 ID:uL8dJ7v1.net] immutantみたいに、デプロイとか運用向けのツールなのかな? www.slideshare.net/grim_radical/puppetdb-sneaking-clojure-into-operations こんな感じで実際に使ってるのかな? clojureのweb frameworkまわりでも最近CQRSってキーワードよく見かけるな。
330 名前:デフォルトの名無しさん mailto:sage [2014/04/15(火) 23:32:39.23 ID:TmAN8KJA.net] HTM/CLA https://www.taoeffect.com/other/nupic/ fergalbyrne.github.io/ https://github.com/numenta/nupic/wiki/CLA-and-HTM-Theory numenta.org/cla-white-paper.html なんかのキャッシュシステムかと思ったら、機械学習とかのシステムだった。
331 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 23:02:40.45 ID:7+I4mY8K.net] reborg.tumblr.com/post/84235302368/clojure-weekly-april-29th-2014 datascript の簡潔な説明があった。っても全部載せられない長さだけど。 > tonsky/datascript Interesting ClojureScript idea, implementing a Datalog query engine on top of Clojure immutable data structures. It is meant to run in the browser with a lifecycle starting at page load and ending the next page load. It is technically an in-memory database in the browser. When to use? ... 続く
332 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 23:09:25.27 ID:7+I4mY8K.net] RFPを想定してると思われるが、moriやomの一部置き換える事が出来るのかな?
333 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 21:18:03.15 ID:s8hUpgGE.net] Incanter2.0作ろうって物好きが新機能の案募集してるな
334 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 15:47:51.04 ID:QTimeHyk.net] 今年のGSoCは、メンターのやる気も反映してか科学計算系ライブラリー、lean clojure(runtime startupの高速化)、typed clojure(cljsやエラー表示も)に関するものが複数あって、あとはlight tableとquil(processing.js) on cljsだった。 blog.clojure-gsoc.org/2014/04/29/congratulations-to-our-gsoc-2014-students/
335 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 00:53:27.38 ID:d/k/qDLK.net] フィンランドのヘルシンキ大学計算機科学科で、clojure使った関数型プログラミング入門の講義があって mooc.cs.helsinki.fi/clojure それをベースにした、MOOCがあった。
336 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 01:36:11.02 ID:pa2cdK6+.net] 職場の環境でこっそりclojureでツール作ってたら同僚からずるいって言われてワラタ
337 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 20:48:03.41 ID:2xTYhf7B.net] 職場でこっそりClojure書いてても、 ディスプレイ覗き見た誰も、何を書いてるのか分からないだろうから、 安心してClojure書いてる俺もいますよ
338 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 21:32:37.53 ID:DMs9w1H7.net] カッコ良すぎて逆に目立つだろw
339 名前:デフォルトの名無しさん mailto:sage [2014/06/12(木) 23:40:56.02 ID:srF1T44X.net] repl で、 user=> (with-open [rdr (clojure.java.io/reader "tmp.txt")] (count (line-seq rdr))) が OK で、 user=> (with-open [rdr (clojure.java.io/reader "tmp.txt")] (map #(. % toString) (line-seq rdr))) で例外が出る理由ってわかりますでしょうか? IOException Stream closed java.io.BufferedReader.ensureOpen (BufferedReader.java:97)
340 名前:デフォルトの名無しさん mailto:sage [2014/06/12(木) 23:43:04.83 ID:srF1T44X.net] すみません 自己解決しました >>335 の質問は取り下げます
341 名前:デフォルトの名無しさん mailto:sage [2014/06/13(金) 00:54:10.27 ID:NpvWCx30.net] LightTableのinstareplで(doc my-function)やっても表示されないことってある?
342 名前:デフォルトの名無しさん [2014/06/15(日) 00:49:16.29 ID:S46ph848.net] SFXエンターテイメントって、メディア企業なんだね。SFX職人の会社なのかと思った。 募集内容はwebプラットフォームに関するものようだ。 careers.stackoverflow.com/jobs/59505/clojure-developer-sfx-entertainment
343 名前:デフォルトの名無しさん mailto:sage [2014/06/15(日) 09:19:13.46 ID:e0YOs29w.net] >>333 職場のSEさんとやらは、プログラム言語を一行も理解出来ないので 正常パターンの結果さえ合ってりゃ何も分からないw
344 名前:デフォルトの名無しさん mailto:sage [2014/06/15(日) 19:57:01.55 ID:SNHltrJT0] ディスプレイ覗き見た人に、これ何?って聞かれたとき Clojureですって答えても分からないだろうから これはLisp文法で、JVMで動くンスよ、って答えても ふーん、で終わる
345 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 01:43:55.20 ID:KVBC4Z6J.net] 盆栽本良いな Clojure一通りやったけどWeb開発初めてって人間にはぴったり 必要なのはHTTPの軽い知識くらいだし なまじRailsみたいに重たいと分かりにくい部分もよくわかる 英語の文章がちょくちょく引っかかるのが玉に瑕だけど
346 名前:デフォルトの名無しさん [2014/06/21(土) 04:27:05.44 ID:MmynS5l4.net] pragprog.com/book/dswdcloj/web-development-with-clojure 盆栽ってこれのことだよね www.kohgakusha.co.jp/books/detail/978-4-7775-1835-7 こっちもweb開発だけどチュートリアル的な感じ 盆栽本はwebフレームワーク作ってる人が書いてるし、丁寧に分量も結構あるのがいいね RubyだとCompojureなど元になったSinatra(を使った薄いフレームワークのPadrino) ってのがあるけど、ちょっとしたチュートリアルしかなくて、あとはapiドキュメントみるかしてた ちなみに、最近日本でも知名度が上
347 名前:がってきたsoundcloudは、web画面がパーツごとにjsで非同期にweb api叩いて描画する形で、 webapiをsinatra/jruby、clojure、scalaで実装してるらしい [] [ここ壊れてます]
348 名前:デフォルトの名無しさん [2014/06/21(土) 04:37:20.50 ID:MmynS5l4.net] soundcloudは、パーツが宣伝ページにはってるのを見かける。大元のページはこんな感じ soundcloud.com/gust-sound-social soundcloud.com/fuerzabrutajpn webの話だと、こんなのが。 blog.getprismatic.com/om-sweet-om-high-functional-frontend-engineering-with-clojurescript-and-react/ prismaticのwebページがclojurescriptとfacebooのreact使ったomにツールを組み合わせて、リアクティブな画面になって運用してるらしい ページはこんな感じ getprismatic.com/topic/Programming
349 名前:デフォルトの名無しさん mailto:sage [2014/06/21(土) 20:37:31.31 ID:bUZhCxHN.net] Clojureで開発したWebアプリを日本のサーバーで動かしたいんだけど、 日本にHerokuみたいにClojureに対応したサービスってないの?
350 名前:デフォルトの名無しさん [2014/06/21(土) 21:40:12.30 ID:MmynS5l4.net] lein ring uberwar で、warファイル作ってtomcatやjettyに放り込むか、 qiita.com/tanacasino/items/4d683debd9bcb2f6e06e (ここのtomcatとかjettyのあたりや他の資料参考) lein ring server-headless ポート番号 でも動くので https://github.com/weavejester/compojure/wiki/Getting-Started (特に追記ないけど、compojureの公式チュートリアル) 日本の格安vpsとかクラウドの日本リージョンでも大丈夫。 azureにもservletだけおくpaasサービスがあるみたい。 (ほかに日本でやってpaasはあるか知らない) www.publickey1.jp/blog/14/microsoft_azurepaasjavatomcatjettybuild_2014.html
351 名前:デフォルトの名無しさん mailto:sage [2014/06/22(日) 19:55:37.79 ID:wfqXkYZT.net] >>345 詳しい回答をありがとうございます。次のサービスでHerokuで動かしてた Webアプリを起動することが出来ました。warを作成してTomcatにうpする だけでした。PostgreSQLも使えるので便利です。 www.tsukaeru.net/jelastic/ Herokuよりも遅めのようなので、とりあえず日本のサーバーで動かしたい アプリだけこちらに移すことにします。
352 名前:デフォルトの名無しさん [2014/06/24(火) 00:30:15.05 ID:QQk/Zaq3.net] githubに公式のリポジトリがあるということも要因だろうけど、github/stackoverflow界隈ではTop20ぐらいに入るぐらいポピュラーという結果に。 GroovyはAndroidまわりでもう少しポピュラーになりそうな予感。 The RedMonk Programming Language Rankings: June 2014 redmonk.com/sogrady/2014/06/13/language-rankings-6-14/
353 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 02:25:06.42 ID:kxCKSSiu.net] Clojarsがリニューアルしてた、トップのメッセージが Clojars is a dead easy community repository for open source Clojure librarie とかでちょっとニヤリとしてしまった
354 名前:デフォルトの名無しさん mailto:sage [2014/07/02(水) 04:31:49.49 ID:yhBsqych.net] clojarsはマジでdead easyだよね。 自分で作って使うだけのライブラリもローカルでどうするか考えるよりclojarsに放り込むほうが簡単で面倒がないという。
355 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 20:47:23.41 ID:y+IPLvAO.net] ネットでしょっちゅうライブラリを落としてくること前提の開発環境にいまだに違和感があります せめてclojure.coreだけは固定して、閉じたプラットフォームを確定してくれないだろうか
356 名前:デフォルトの名無しさん mailto:sage [2014/07/03(木) 22:27:44.12 ID:x0NDrClv.net] ネットでしょっちゅうライブラリを落としてこない開発環境って何だろう
357 名前:デフォルトの名無しさん [2014/07/04(金) 01:49:36.21 ID:XaGTGyQy.net] 最近はプロジェクトごとにライブラリ管理するのが主流だね。 leinだと、昔はプロジェクトごとにlibsにはいったけど、最近はアカウントごとの.m2だけ。 rubyのgemは、リポジトリがよく落ちたり、ネットのルーティングおかしくなったりするのと、 yumみたいな、ミラー機構が組み込まれてないのもあり、 ローカルにミラー持ってる人がいたりする。 yumだと、CDからインストールしたり出来るね。 rpmにあたるツールが欲しいのかな?
358 名前:デフォルトの名無しさん mailto:sage [2014/07/04(金) 02:17:36.62 ID:Qs7fnNPT.net] >>352 .m2に落ちてればローカルなサーバに上げなおす事で社内とかプロジェクトローカルにできるっしょ? つかバージョン番号指定を必須になっているから何処のリポジトリに置いてあっても問題なくない?
359 名前:デフォルトの名無しさん [2014/07/05(土) 00:32:10.68 ID:coa4ljqf.net] ローカルリポジトリ構成も出来るし、 それをまとめて配布というのも出来るが、 困ってる人があんまりいないから、記事にならんのだろうな。
360 名前:デフォルトの名無しさん mailto:sage [2014/07/05(土) 00:38:50.73 ID:gvj8epPk.net] >>354 どういうときに困るのか割とマジで知りたい
361 名前:デフォルトの名無しさん mailto:sage [2014/07/05(土) 22:46:43.27 ID:coa4ljqf.net] mvnリポジトリのサイトに何かしらの障害が発生してアクセス出来ないことが、 一番の問題になるだろうけど、見かけたことないので、機会がない。 rubyなら割とある。 まあ、初めからネットワークアクセス出来ない環境にリリースするなら、uberjarなりにまとめて持ってくだろうから関係ないだろうけど。
362 名前:デフォルトの名無しさん mailto:sage [2014/07/05(土) 22:58:01.10 ID:ATjk+jxL.net] >>355 ネットにつながってないコンピュータに移植するとき
363 名前:デフォルトの名無しさん mailto:sage [2014/07/06(日) 00:15:28.83 ID:aspDWAp6.net] >>357 それってローカルリポジトリに突っ込むだけでよくね? 仕事のプロジェクトだとネットに繋がらない事前提にSCMに/Required/Lib/*.jarとか置かない?
364 名前:デフォルトの名無しさん mailto:sage [2014/07/06(日) 07:47:35.97 ID:eWlTyoxb.net] >>358 開発環境でGoogle先生が使えないと辛いな
365 名前:デフォルトの名無しさん mailto:sage [2014/07/09(水) 12:20:46.04 ID:jNsdpHDv.net] 入門Clojurescript買った人居る?
366 名前:デフォルトの名無しさん mailto:sage [2014/07/09(水) 12:44:13.69 ID:kpjEyPlK.net] >>360 買った、まさに入門なんだけど、調べるのがめんどくさい所を手順で示してくれるのでとてもありがたかった。
367 名前:電波いっぱい mailto:sage [2014/07/09(水) 21:05:45.39 ID:NNs3v/8+.net] >>360 英語版を買った。 clojurescriptやるなら持っていて損はないと思う。というか、買うべき。 序盤にある、javascriptへのコンパイル(トランスレート?)の仕組みについての解説は、基礎知識として重要。 他にも、clojureとの違いとか、根っこのところからの解説があったりするのに全体的には実践的な内容なので、入門書としてとてもいいと思う。
368 名前:デフォルトの名無しさん mailto:sage [2014/07/12(土) 00:14:26.22 ID:ltnIpPym.net] PlanetClojureみてると、ここのところ事例紹介もだけど、Web API作るなどの実務よりなチュートリアル記事が増えてきた気がする。
369 名前:デフォルトの名無しさん [2014/07/12(土) 12:23:18.10 ID:1GK9QQdX.net] Interactive: The Top Programming Languages IEEE Spectrum’s 2014 Ranking spectrum.ieee.org/static/interactive-the-top-programming-languages 集計対象は10箇所 spectrum.ieee.org/ns/IEEE_TPL/methods.html top30+1 githubの分類だと、LISP系はracketもあるんだね。
370 名前:デフォルトの名無しさん [2014/07/16(水) 23:44:48.62 ID:OHagA9er.net] 昔のClojure使ってるスタートアップって解析系の会社が中心で、 セマンティックWebやグラフDBを独自に構築してやってるところが多かったなあということを思い出しつつ、イマイチよくわからんサービスのページを見てる。 fgiasson.com/blog/index.php/2014/07/14/new-umbel-concept-tagger-web-service/
371 名前:デフォルトの名無しさん mailto:sage [2014/07/18(金) 22:06:01.40 ID:tZkpVjnY.net] clojureでwebアプリを作ろうと思うんだけど、 httpレイヤーのフレームワークはringとcompojureがデファクトな感じ? poketo7878-dev.hatenablog.com/entry/2013/09/11/012233 ↑とか見たけど、webアプリ作るのってほんっと沢山のライブラリの使い方覚えないといけないから敷居が高いとおもうんだよね。 ちょっとうんざりする。
372 名前:デフォルトの名無しさん mailto:sage [2014/07/18(金) 22:30:18.08 ID:9VgU36x9.net] lein new luminus +site +mysql がすげー楽だわ。pedestal joodo hoplon とかみて見たが、難しすぎるw
373 名前:デフォルトの名無しさん mailto:sage [2014/07/18(金) 23:31:17.43 ID:BNBfrEGw.net] >>366 ringとcompojureはガチ。ViewはHiccupだけで今のところ何とかなってる。 作りながら覚えていけば割と楽ちんだよ。何より楽しくて仕方がないw
374 名前:デフォルトの名無しさん mailto:sage [2014/07/19(土) 00:42:51.30 ID:f1zhsR+J.net] Web development with Clojure でDBとかも含めて一通り解説されてる Kindleだと安いし
375 名前:デフォルトの名無しさん mailto:sage [2014/07/19(土) 02:17:54.63 ID:WP4oXsP7.net] おっしゃるとおり、ring compojure hiccupで始めるのが得策のようだね。 あとは、レコードをdbに永続化してくれる軽めなのがあれば。
376 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 01:47:51.52 ID:6KMBfrlQ.net] hiccup危険すぎ これ使っちゃうとPHPコードのメンテが回ってきたりしたら死ねる(割とマジ泣き) 「コレ(PHPで)書いた奴死ねば良いのに」って職場で口に出てしまいそう
377 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 09:13:31.98 ID:hx+LZFAX.net] html 書く人は別にいるから hiccup は使わない。
378 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 10:24:57.53 ID:UFCUu8FQ.net] サーバサイドはJSONさえ吐ければ良いと思ってたからそういうの使ったこと無い
379 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 15:06:50.71 ID:QrElrXXt.net] >>373 最近は完全にこれだな。 Clojureは良い言語だと思うし俺も使っているが、全部Clojureで固めようという 思想はダメだと思う。その点でHiccupは微妙。
380 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 19:27:44.14 ID:Qg1Mgql5.net] 逆に、ぜんぶclojure一色ってのも面白そうだな ぐぐったらcssもclojureで書けるみたいじゃないか。 これで、いっちょやってみよう!
381 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 20:43:52.64 ID:g2r5PvYM.net] 俺は勉強中 リスト遊び終えてthe little schemerの最終章やりつつあり on lispとland of lisp終えたらclojureやりたいな それでAndroid上で動くアウトラインプロセッサ作りたい 来年だなあ
382 名前:デフォルトの名無しさん mailto:sage [2014/07/20(日) 21:52:47.25 ID:hx+LZFAX.net] 普通のテンプレエンジンだと、luminus が引っ張ってくる selmer か、clostache か、enlive かって感じだろうか。 どれもまともに使ったことないが、luminus でやるので、selmer いじり始めた。 カスケードも出来そうで、まぁ普通って感じ。いまんとこ。
383 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 02:24:34.57 ID:hrd/irMH.net] >>376 androidアプリを作るのには、今のとこらclojureは向いてないかも armのjava vmがショボいのか、やたら重い
384 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 05:19:37.28 ID:W+nBGcif.net] >>378 4.4からARTが導入されるから何とかなるかもしれない
385 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 06:43:42.42 ID:iRuP9Y6Q.net] >>378 あらら、そうですかあ するとjavaで開発となりますか?
386 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 06:44:50.36 ID:iRuP9Y6Q.net] >>379 あら、そうですか
387 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 07:35:36.40 ID:hvY5HB9k.net] 発 者 同 . 。_ ____ 争 生 同 .じ . /´ | (ゝ___) う .し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、 .な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j .い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´ .! ! か の / ´..:.} >、、___, .r、 ソ、`\ / ..:.:.} / |∨ ` ̄ / ..:.:./ | 丶 / _、 ..:.:.:.{ .{.:.:. \ { ..:Y .ゝ、 {.:.:.:.:. ヽ |、 ..:/ 丿 .:〉 >.- ⌒ . ヽ / {. ..:./ ソ ..:./ .( ..:.:.:` ..:} ./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:} ./..:.:/|.:/ {.:./ X.:.:}.} X X /..:.:/ .}.:|
388 名前: }:/ .Y丶ヽ Y.:Y . __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\ /.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄> [] [ここ壊れてます]
389 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 17:44:34.65 ID:9dmhGPAk.net] みんなKorma使ってる? 俺も使ってるんだが、どうもしっくりこないというか、なんか 漠然としてて申し訳ないんだが、コレジャナイ感がぬぐえない。 でも他に無いので使うしか無い。 具体的に何がダメなのかと聞かれると答えられない。 おそらく、ORMというJava/Ruby系のライブラリの発想自体が Clojureになじまないのかなぁという気がしている。 あと、昔Railsを使っていたのでActiveRecordと比較してしまうと かゆいところに手が届かない jdbc直接叩いてもいいかという気になっている
390 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 18:07:36.71 ID:y8t8ntwR.net] >>383 kormaは触ったこと無い、自分はClojureQLしかつかてない。 kormaは自分が使おうとしたときに原作者が多忙で更新が止まるとか言う話が流れてて手を付けるのやめちゃったんだよね。
391 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 19:58:32.16 ID:bxaywVrh.net] >>383 ちょ、今使い始めたところなのにw
392 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 21:34:28.49 ID:zPFeqHjQ.net] おれも先日、clojureのdatabaseまわりのライブラリのどれがいいのか探しまわってたんだけど、 結局、一番プリミティブなclojure.java.jdbcでいいやって決めた。これでも十分にシンプルだし、SQLの文字列を書けばいいから新しいAPIを覚える苦労もない。 あとは、ギャグでDatomicを使ってみるってのはどうだろうか
393 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 22:30:10.12 ID:+RwRUGi4.net] korma はちょっと使ってやめたー。 master slave 切り替えがちょっと面倒そうだったし、JOIN の結果もあらら感があったし、FK 張らないとbelings to 効かないのかなんなのか良くわかんなかったし。 いまは jdbc で満足してる。ruby の named みたいに書けたらほぼ不満は無いな。 sqlingvo とか lobos とかってのもあるらしいので、気にはなってる。 LL脳だからどうしてもDAO 作りたくなるんだよなー。
394 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 22:31:24.18 ID:2gT2PDSV.net] kormaは抽象度が少し上がって手間が結構増えるみたいな感じでもにょる
395 名前:デフォルトの名無しさん mailto:sage [2014/07/24(木) 23:11:38.24 ID:2parXJcZ.net] 最近できたチートシート grimoire.arrdem.com/ jafingerhut.github.io/cheatsheet/grimoire/cheatsheet-tiptip-no-cdocs-summary.html こっち経由でも見れる
396 名前:デフォルトの名無しさん mailto:sage [2014/07/25(金) 10:29:25.11 ID:fD/8KYmMw] >>388 まさにこれ あと、insertした時にその件数が直接取れないとか、本当に使ってる人いるのか これ?みたいな何ともいえない微妙な不親切さが多くて、結局ラッパーとか 補助関数とか書いてると何やってるんだ俺?感がパナイ
397 名前:デフォルトの名無しさん mailto:sage [2014/07/26(土) 19:54:53.15 ID:tDaiGspQ.net] mapをpmapにしただけで並列化できて速度が数倍になったw さすが関数型言語。感動した。
398 名前:デフォルトの名無しさん mailto:sage [2014/07/26(土) 21:30:58.46 ID:qBbvmeQH.net] >>391 SQL関係つかってると内部でIO(io!)があるので時々実行時エラーがでてすげー悩ましい
399 名前:デフォルトの名無しさん mailto:sage [2014/07/26(土) 21:51:13.35 ID:vWdDTC/j.net] sql 出すやつは全部 try してるわ
400 名前:デフォルトの名無しさん mailto:sage [2014/07/27(日) 02:26:43.14 ID:D/O6qo5w.net] >>392 H2使ってるけど、それはまだ出たことないな。 DBはどれを使ってるの?
401 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 20:27:18.28 ID:dm3z0HDh.net] BBBという小型基板Linuxで lein repl を実行すると起動に80秒くらいかかってやってられないけど java -jar ~/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar なら15秒くらいで起動することがわかった。 環境変数の用意とかがガバガバだけど、だいぶマシにはなった。
402 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 21:20:20.64 ID:ARdX3qTq.net] >>395 lein使うと最終敵な起動までに何回かclojure(というかjvm)を起動してるからしょうがないんじゃね?
403 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 21:22:21.81 ID:dm3z0HDh.net] >>396 不要なコンポーネントの起動を抑制するアイディアがあれば教えて欲しい。
404 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 21:36:09.50 ID:icaO59PL.net] 横レスで申し訳ないけどuberjarを作ればいいだけなのでは。 それとも開発もその基板でやってるの?
405 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 22:38:05.24 ID:ARdX3qTq.net] >>398 >>398 も書いてるけどツールとしてもREPLを使いたいならuberjarで作った奴をREPL起動すればOKじゃね?
406 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 22:39:57.51 ID:ARdX3qTq.net] >>395 を良く見たらclojure単体起動なのか 単体起動で足りるならleinいらなくね?
407 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 23:53:28.62 ID:NVVZFtzI.net] >>400 lein抜きでは、もはやライブラリの依存の管理が不可能になってる だからせめて、coreの名のつくライブラリだけはオフラインのスタンドアロンでもOKな状態にしてくれと…
408 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 12:15:15.50 ID:owgkA3ho.net] BeagleBone Black 事始め: 45 ドルで買える 1GHz の ARM ... https://jp.linux.com/Linux%20Jp/tutorial/415684-tutorial20140415 >Apr 15, 2014 - BeagleBone Black (以下 BBB) は、1GHz クロックの ARM Coretex-A8、512Mb の RAM、 >Linux カーネル 3.8 を持っ ... イーサネット、HDMI と自由に扱える IO ピンを使うことで、組み込み Linux >と Arduino の中間にあるような小型マシンを ... 512Mb のメモリで今日のScalaやclojureが動かせる訳がない!
409 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:05:47.04 ID:qzDodXwg.net] IBM j9VMは起動時にメモリ少なくても頑張ってくれるので、数年前ぐらいにOpenVZのVPS(メモリ256MBスワップなし)で、compojureのweb動かしてたことある。 -ms16m -mx64mとか付けてたかな。 HotspotVMだと、起動出来なかったか途中で落ちたような記憶がある。
410 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:18:31.23 ID:qzDodXwg.net] raspiでj9VM使ってる人いるようだから、ARM版あるのかな? devangelist.blogspot.jp/2012/06/how-can-pi-control-house-from-50-miles.html
411 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:17:55.67 ID:kOHvWz7d.net] J9VM ARM版、ライセンス料がかかるmicro editionしかないし、それだとSEじゃないから動かないかもしれないな。 platformx.sourceforge.net/Documents/Enhancements/J9.html
412 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 23:37:32.45 ID:jF3IHe+5.net] >>404 以前にarmのlinuxで単体のclojureはうごいた記憶があるから、動くことは動くんじゃないかな? ただ、起動まで死ぬほど時間がかかった。そしてGUIライブラリ読み込もうとしたら、 処理が戻ってこなくなったけどw
413 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 23:40:47.05 ID:jF3IHe+5.net] すまん、ちょっと話の流れ
414 名前:ゥらずれてた。 スルーして [] [ここ壊れてます]
415 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 08:39:09.03 ID:yEk1GdIN.net] >>404 ラズベリーPiでClojure普通に動くよ。 java自体が重たいから起動時間は掛かるけど起動後はREPLの速度差感じない。 外部のemacsでslime接続してデバッグも開発もできたし。 ローカルなwebサーバインターフェース作るのにそんなに苦労いらないからイベント(スーパーマーケットとかで良く見るクジとか) とかで使うマシンとしても最近は使わせて貰ってる。(ソリッドステートでUSB電源なのがうれしい)
416 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 17:37:43.10 ID:PA5srH4a.net] >>407 ARMとhotspot vmの話題の方が続くので、そちらも聞きたい。 407とか。
417 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 17:44:09.24 ID:PA5srH4a.net] REPL起動やGUI周りとか、初期化に時間かかってるところが、更に遅くなるのかな。 windowsと.netだと、そういうところをngen(AOT)して対応したら早くなったみたいなゲームがあったな。
418 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 17:45:16.28 ID:WCWL5CBh.net] 関数型プログラミングの「パラダイムシフト」って一体何なの? 状態変数を許さないってこと? 状態変数が使えないとオブジェクトという概念が崩壊するよね?
419 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 18:05:56.25 ID:adw16vV0.net] パラダイムシフトは関数型言語特有の何かではない 哲学用語、ググれ
420 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 18:10:31.37 ID:BWXDLwTU.net] >>411 はKuhn読めとかいう話じゃないと思うw
421 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 18:53:03.35 ID:nZh39v8G.net] オブジェクトなんて概念、関数プログラミングには無いよね?
422 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 19:36:31.37 ID:3tZJ0+nt.net] >413 無いよ。 関数プログラミングは副作用無しが特徴だから、状態を管理するオブジェクトとは相性悪い。
423 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 19:51:18.54 ID:nSDqOhgk.net] クロージャーでオブジェクト指向 つまりブラジャーはオメコ指向や 男やのう 痴関数は人類の希望やで
424 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:09:24.56 ID:PA5srH4a.net] clojure作者は、オブジェクト指向のやり方を別な方法でやるといっていた。 www.infoq.com/jp/news/2009/02/clojure-interview-halloway qiita.com/kawasima/items/c695e2f4ee079a6debf5
425 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:15:40.92 ID:OZgkKCQ2.net] >>411 λ抽象を普通の型として扱うようにしたこと
426 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 21:34:04.23 ID:JDXTNGOX.net] Scalaってオブジェクト指向+関数型って聞いたんだけど
427 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 21:51:33.00 ID:OZgkKCQ2.net] 「関数型がある」と「関数型プログラミングができる」と「オブジェクト指向で設計された仕様を容易にプログラミングができる」は全部違う概念だし
428 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 05:48:01.75 ID:CjWTucg/.net] 関数型チョットデキル
429 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 09:39:00.71 ID:1p5oBQcp.net] 上の qiita 見て darzana ってのに興味もった。
430 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 10:57:17.07 ID:t7NoOLjl.net] >>422 俺も興味もった。 あとLightTableに移行するかそろそろ本格的に悩みどころ ただ自分のEmacsキーバインド病が克服できなくて毎度IDEとか使うのが苦痛で困る。
431 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 13:21:44.34 ID:+0AAjoao.net] >>419 Clojureは計算理論が云々という裏付けの話はしない方向にあるので、 あまりこのスレで話す話題ではないかもしれないが、 Scalaは計算理論的な裏付けをもってオブジェクト指向と関数指向の融合しているので、検証とかに発展できそうな用途がある。 ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E3%83%BB%E3%82%AD%E3%83%A5%E3%83%BC%E3%83%96 aofa.csce.kyushu-u.ac.jp/documents/Mochio-2014-06.pdf www.slideshare.net/asami224/objectfunctional-analysis-and-design-and-programming
432 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 13:28:42.64 ID:+0AAjoao.net] 対して、erlangやclojureの作者は、オブジェクトが状態持つのが気に入らなかったので、別のやり方を探したのかも。 erlangの作者の考え方 www.infoq.com/jp/news/2010/07/objects-smalltalk-erlang clojure作者の発表へのリンク集 ympbyc.hatenablog.com/entry/20130608/1370679170 OCamlは、単純に実装がうまく言ってないという雰囲気。 d.hatena.ne.jp/camlspotter/touch/20080906/1220723583
433 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 13:33:24.36 ID:+0AAjoao.net] オブジェクト指向の世界も、最近はDDD、CQRS、MVVMなどの中で、値の流れを制御する手法もある。 DDDとかCQRSとか https://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/index.html msdn.microsoft.com/ja-jp/magazine/gg983487.aspx GUIのmvcモデルも、RFPではなくともmvvmやfluxで一方通行にしてみたり www.slideboom.com/presentations/591514/ www.infoq.com/jp/news/2014/05/facebook-mvc-flux
434 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 13:40:42.84 ID:G6kBTzdf.net] >>422 申請書用のGUIとかバリデータは、別系統になるけれど作れたらいいなあ。
435 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 20:27:27.74 ID:OlTeCvCA.net] >>422 LightTableにはemacsキーバインドある
436 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:15:54.64 ID:t7NoOLjl.net] >>428 まえ使った時は移行できないくらい中途半端だったけどだいぶマシになったんだろうか? キルリングがどのエディタ行っても対応しずらくていつも泣く
437 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:53:02.13 ID:t7NoOLjl.net] ちとemacs 0.0.4入れてLightTableさわってみた 1:C-x C-fで新しいファイルを名前を付けて開けない(CMD-NでUntitleからsaveにするしか) 2:C-v でページダウン, M-vでペーストされて泣いた 3:ワード移動しようとしてM-fするとFind、C-M-fは無視 4:既知のkeybindを知る手段が見つからない(emacsのC-h b) 3の辺りでもう無理、それっぽくはなるけど奇病克服はミリだった というかどのエディタもそうなんだが新規ファイル作成するときにDialog開くの止めて欲しい
438 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 08:42:44.29 ID:GUT8PpnG6] >>430 僕もemacs派だけど、lighttableに移行しようと思うのはなぜ? キーバインドだけならまだしも、その他の便利で欠かせないパッケージが使える様になるとはおもえない。
439 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 08:52:46.47 ID:vb6HFVjn.net] もう emacs でいいだろ、、、
440 名前:デフォルトの名無しさん mailto:sage [2014/08/05(火) 09:02:27.22 ID:jeY7qdd3.net] lighttableは入門しやすいEditorという位置付け(バグあるけど)でいいんじゃ無いかと。 thinkrelevance.com/blog/2013/06/04/clojure-workflow-reloaded https://blog.safaribooksonline.com/2013/09/11/light-table-workflow-for-interactive-clojure-development/
441 名前:デフォルトの名無しさん mailto:sage [2014/08/09(土) 07:41:21.45 ID:Zgpg5vYP.net] EclipseとCCWを使ってる人っている?
442 名前:デフォルトの名無しさん mailto:sage [2014/08/09(土) 16:53:25.23 ID:uQhMf/RY.net] おいしいclojureで紹介してあったから使ったけど3日でemacsに戻った IDEはマウスをクリックするのが面倒臭い
443 名前:デフォルトの名無しさん mailto:sage [2014/08/09(土) 17:00:28.57 ID:3JQlMz6N.net] ltは64bi
444 名前:tだと接続失敗するのが嫌 [] [ここ壊れてます]
445 名前:デフォルトの名無しさん mailto:sage [2014/08/09(土) 19:30:27.34 ID:55eCMDAc.net] compojure と enlive と clojure.java.jdbc でwebサイト作り始めてだいぶ慣れてきたんだけど、webサイトってclojureで書いても面倒な手作業が多いんだな。それでもjavaやphpよりかはすっきりしている気がするが。 webサイトとかwebアプリ作るのって人海戦術が必要なんだなって実感した。
446 名前:デフォルトの名無しさん mailto:sage [2014/08/09(土) 19:34:59.03 ID:uQhMf/RY.net] javaで書いた資産を貼りつける糊だと思えば…
447 名前:デフォルトの名無しさん mailto:sage [2014/08/09(土) 19:44:43.91 ID:3JQlMz6N.net] html, css, js, http これだけでもかなり面倒
448 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 02:10:41.28 ID:LSnpUDFj.net] slimv.vimを使えば結構vimでも戦えると思うんだよね でも日本語の情報が殆ど無い…
449 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 13:01:10.31 ID:GH83A0dN.net] >>439 それはどの言語でも面倒 結局jspも失敗だし
450 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 13:25:03.63 ID:SdwvqGl2.net] >>441 jspつかサーバサイドjavaはxml地獄が酷いからなぁ
451 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 15:08:04.03 ID:dsPIdx92.net] 今時のjava・webフレームワークはxmlほとんど書かなくてよくなってるよ。 そのかわりアノテーションだらけと、ルール分かってないとプログラムがどう繋がってるのかさっぱりわからない。
452 名前:デフォルトの名無しさん mailto:sage [2014/08/10(日) 15:13:04.98 ID:SdwvqGl2.net] >>443 その点ClojureのWebフレームワークは凄く練られてる感じする urlマッチングも構成要素の設定も全部s式(というかclojureの通常のリテラル表記)だけどそれが凄く読みやすい。
453 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 09:56:55.48 ID:5yaOghBO.net] S式DBが欲しいけど見た事ないんでMongoDBでも使うべきか
454 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 16:07:43.04 ID:YQE+wZnr.net] jsonやxml、オブジェクトデータストア、グラフDBってのは聞くけど、S式っては聞かないね。 単体でも分散環境でも、lispの実行環境自体がS式のかたまりっていえるけど、 erlangだと、ETSとか名前もってるストレージがある。 lisp関連で特長的なデータベースは、問い合わせにprologやdatalogを使うみたい。 AllegroGraph yuumi3.hatenablog.com/entry/20101126/1290750836 Datomic hozumi.github.io/2012/03/datomic-ja.html
455 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 16:13:53.02 ID:+sDF17YZ.net] >>445 DatomicならS式じゃないけどClojureのリテラルまんまだよ。 でも規模が合わないと予算が見合わないんだよね>>個人敵な実験結果では凄く良いんだけど稟議通すのだけでも至難の業
456 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 17:30:29.71 ID:HoC4qBru.net] clojureとかDatomicとかを、稟議必要なシステムで使おうとしてる企業すごいな! 経営者から見たらclojureみたいなマイナー言語で実装するメリットないと思うんだが。 どこの会社?そこで働きたい
457 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 18:01:08.56 ID:Uf5VA/xc.net] >>448 試用じゃないなら、せいぜい大学のゼミくらいではなかろうか
458 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 19:37:11.26 ID:5yaOghBO.net] >>446 >>447 なるほど、興味深い。参考にします!
459 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 21:00:18.73 ID:L4nzelPm.net] clojureでソフトウェア開発を行うニャンパス株式会社 manga-style.jp/press/?p=5652
460 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 21:25:36.93 ID:YQE+wZnr.net] ここも、デザイナーからプログラマーまで使ってるとか。 xcoo.jp/ あとは、データ解析やってるの人が、道具として使ってる人が多いみたい。
461 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 22:43:27.24 ID:wYq/8Bw7.net] 最近はやりのマイクロサービス(ただのweb api)作ってサービスに組み込むのが、自社サービス利用の早道だとおもう。
462 名前:デフォルトの名無しさん mailto:sage [2014/08/12(火) 23:08:13.55 ID:wYq/8Bw7.net] www.infoq.com/jp/news/2014/07/soundcloud-microservices www.slideshare.net/pcalcado/from-a-monolithic-ruby-on-rails-app-to-the-jvm 記事みたいにマイクロサービスにするとサービス内部でモデル呼び出すより、ネットワーク待ちとネットワーク負荷が増える。 そのため非同期にしたり、ネットワーク負荷に強い環境を選んだ方がいいけど、そんなに呼び出しなければなんとかなる。
463 名前:デフォルトの名無しさん mailto:sage [2014/08/13(水) 06:19:57.05 ID:vJDHFyrf.net] 今後は、REST API作ったり、組み合わせHTMLにするところで、まとまった記事が増えそう。 Micro services on the JVM part 1 - Clojure pjagielski.pl/2014/02/24/microservices-jvm-clojure/ Recommended Reading : Microservices Architectures and Clojure (A Quick Survey of Resources) www.digitalcld.com/cld/recommended-reading-microservices-architectures-and-clojure/
464 名前:デフォルトの名無しさん mailto:sage [2014/08/14(木) 20:45:10.78 ID:gFPXYhlq.net] clojure使ってる人達って、javaをさんざん使い倒して飽きた人達なの?
465 名前:デフォルトの名無しさん mailto:sage [2014/08/14(木) 20:55:03.71 ID:H7nksnys.net] lispの資産をjavaで活用したいだけです
466 名前:デフォルトの名無しさん mailto:sage [2014/08/14(木) 21:03:01.29 ID:qqEX3gtd.net] 同じくです
467 名前:デフォルトの名無しさん mailto:sage [2014/08/14(木) 21:39:26.50 ID:5nUdzJIv.net] Javaはほとんど使ったことがなかったけど、 Javaのライブラリが使えるのは非常に便利。
468 名前:デフォルトの名無しさん mailto:sage [2014/08/14(木) 22:07:25.79 ID:SManwhcb.net] Javaでプログラミングするには人生は短すぎる
469 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 00:52:57.53 ID:KfGLwiLy.net] rubyやphpから移って来たという人もいるね。 日本の会社だとscalaという話が多いが。 javaからだと、replとして使い始めた人も少しいる。
470 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 00:58:49.53 ID:KfGLwiLy.net] cemerick.com/2012/08/06/results-of-the-2012-state-of-clojure-survey/ 二年前あった英語の調査だと、移行元は Java33%, Ruby 16%, Python 15%, C# 6%で、phpやlispをメインで使ってた人は少ない。
471 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 01:06:41.15 ID:KfGLwiLy.net] ただ、clojureが無くなったら代わりに Scala 35%, Haskell 33%, Python 27%, Ruby 22%, CL 24%, Scheme 19%, Java 19%, Erlang 16% (複数選択) 使うといってるので、2割近くはlisp系をサブで使っていたりするのもしれない。
472 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 02:58:49.14 ID:OYLuvNRz.net] PHPは童貞といっしょで恥ずかしくて書けないだけ
473 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 08:05:56.09 ID:2TUn/svM.net] Clojure って、あるモジュールの、一部の挙動だけ変えたい、みたいな時どうするの? ruby, perl だと継承して上書きしたり、mixin みたいに外から上書きしたりできるけど。 Clojure でも可能なのかな。
474 名前:電波いっぱい mailto:sage [2014/08/15(金) 08:33:35.65 ID:dHAlxztnF] >>465 モジュール(ライブラリー)といっても関数の集まりだから変更したいものを再定義してしまえばいいのでは?
475 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 11:44:35.15 ID:PHTLv3bCZ] >>465 Clojureだとプロトコルとマルチメソッドがありますよ
476 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 13:21:51.10 ID:KfGLwiLy.net] 改変してclojarsに上げるというのをよく見かける。ここには、redefの例も。 https://groups.google.com/forum/#!msg/clojure/HP3-HVR2UY0/bgQnEpvEKO4J multimethodは、遅いけど継承っぽいことは出来る。 adambard.com/blog/structured-clojure-protocols-and-multimethods/
477 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 13:34:43.42 ID:l0DJtVhW.net] 関数型があるし継承なんていらんやん
478 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 15:11:36.23 ID:7E4CoX1e.net] >>465 そのモジュールのソースコードに手を入れられないって事が前提なんだよね?
479 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 15:20:20.29 ID:qWbEfk/6.net] >>470 どの言語であっても、とりあえず動いていたら、その機能自体のソースコードには手を入れたくない
480 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 22:20:40.43 ID:TIrh0e3z.net] >>471 どこの発展途上国の整備士だよwww
481 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 22:24:42.21 ID:qWbEfk/6.net] >>472 鉄道の信号インフラで40年前に書いたアセンブラがいまだに現役で稼働してるのにメンテできる人間が引退してしまった国の整備士です
482 名前:デフォルトの名無しさん mailto:sage [2014/08/15(金) 22:57:30.63 ID:8BWzrSgf.net] >>465 どういう状態とかコードでその機能使いたいのかイマイチわからん。 object指向言語の場合インジェクションとかで必要になるケースはあるけどclojureでそういう事する必要性感じたこと無いんだが。
483 名前:デフォルトの名無しさん mailto:sage [2014/08/17(日) 16:50:12.38 ID:Zw9zZO1f.net] clojureで、マクロ関数呼び出しの中でifやletなどのマクロ関数のシンタックスに従わないステートメントを入れたい場合、#みたいな何かクオートするものを付ける必要があるんでしょうか? 今、enliveのdeftempleteでこまってて (deftemplate some-page "public/some-page.html" [condition value] (if condition '([:#hoge] (content "hoge") '([:#gehe] (content "gehe"))) ↑いいかげんだけど、こんなことがやりたいんだけど、マクロに入る前にifが評価されるような仕組みってあるのかな〜? プログラミングClojure第2版には書いてなかったとおもうんだけどなぁ
484 名前:デフォルトの名無しさん mailto:sage [2014/08/17(日) 17:17:04.64 ID:Zw9zZO1f.net] ↑調べたとところ、無理でした。 マクロのマクロを書かないとダメかも
485 名前:デフォルトの名無しさん mailto:sage [2014/08/17(日) 21:45:39.55 ID:fVh2eGMw.net] d.hatena.ne.jp/sy-2010/touch/20110408/1302243154 これは、参考になるかな?
486 名前:デフォルトの名無しさん mailto:sage [2014/08/17(日) 21:58:50.26 ID:fVh2eGMw.net] あとは、defmacroではなく、defnぐらいじゃダメなん?
487 名前:デフォルトの名無しさん mailto:sage [2014/08/18(月) 02:55:55.46 ID:2INT0ULh.net] マクロはコンパイル時に処理されるのに引数のconditionの内容は実行時にわかるんだからムリじゃね
488 名前:デフォルトの名無しさん mailto:sage [2014/08/18(月) 07:55:45.78 ID:Zm5JvuSQ.net] conditionが定数って事かと思ったけど、それなら悩むはずもなく
489 名前:デフォルトの名無しさん mailto:sage [2014/08/18(月) 09:17:10.73 ID:xQ9PYIZO.net] 結局ほとんどの場合コードは手に入るから、改変するのがいいのか、、、 それだと、その後のセキュリティ対応とかバグフィックスとか、自分で追従してく必要があるから現実てきじゃないけど。 望む挙動するような柔軟性を実装してp-r するのが今の流れなんだろうな。
490 名前:デフォルトの名無しさん mailto:sage [2014/08/18(月) 10:04:47.48 ID:FxPIiMhs.net] え、deftemplate二つ作って関数で振り分けすれば済む話じゃないの… 使ったことないから分からんけど
491 名前:デフォルトの名無しさん mailto:sage [2014/08/18(月) 13:13:34.45 ID:iY7TED8z.net] deftemplate複数だと重複部分がいやなんですよ あ、そうだ。テンプレートを入力してテンプレートをはくdeftemplateがあればいいのか!フィルターみたいにつかう
492 名前:デフォルトの名無しさん mailto:sage [2014/08/18(月) 14:16:58.49 ID:2INT0ULh.net] 重複が嫌ならマクロを使おうと思ってしまうlisp脳
493 名前:デフォルトの名無しさん mailto:sage [2014/08/19(火) 01:55:21.95 ID:aPIs3Yjx.net] >>475 enliveのサンプルでこんなのあるけどやりたいことできるんじゃないの (deftemplate microblog-template "net/cgrand/enlive_html/example.html" [title posts] [:title] (content title) [:h1] (content title) ;;; koko [:div.no-ms
494 名前:g] (if (empty? posts) identity (substitute nil)) [:div.post] (clone-for [{:keys [title body]} posts] [:h2 :a] (content title) [:p] (content body)) [[:a (attr? :href)]] (set-attr :title "it's a link")) [] [ここ壊れてます]
495 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 00:12:03.04 ID:VHuSWHvx.net] blog.cognitect.com/blog/2014/8/6/transducers-are-coming 読んでみたけど何のことやらさっぱり transform + reducer で transducer なのはわかったけど
496 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 01:46:11.68 ID:NgR5SA5u.net] Understanding Clojure Transducers Through Types conscientiousprogrammer.com/blog/2014/08/07/understanding-cloure-transducers-through-types/ Clojure's Transducers are Perverse Lenses (self.haskell) www.reddit.com/r/haskell/comments/2cv6l4/clojures_transducers_are_perverse_lenses/ 型が決まる場合に限定すると、こういう説明が出来るらしい。 それはそれで前提知識が必要だけど。
497 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 23:08:38.23 ID:13naRB3B.net] Clojure というか、関数型というか、とにかく副作用の無い関数と、変更不可の value を使ったプログラミングは楽しいんだけど、いざ、ruby とか perl とかの一般的な変数を変更しながら適当に組める世界へ戻ると、あー、楽だわーってなる。 Clojure はなんか、俳句とか短歌とかそういう制限内での表現を楽しむようなそんな感覚なんだよね。もちろん超個人的な印象でしかないチラシの裏だけど。 拙者に才能が無いだけでござるかwww否定できぬwwww
498 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 06:24:50.44 ID:dvSjenwP.net] Haskellみたくガチガチじゃないんだから適度にdefればいいよ。 Clojureは凄く楽だよ
499 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 10:17:58.59 ID:TNwY21bF.net] reduceって畳み込みのことだよね?
500 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 17:53:40.70 ID:z8VcNRtv.net] 副作用なしでやろうと思っても、配列の要素とか普通に変更されるしな… 変更不可の配列くらいデフォルトで用意してほしかったり
501 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 18:12:09.74 ID:Gw1dAD8r.net] >>491 javaの生配列や生要素食わせたらそりゃそうできるのは普通の事じゃんよ
502 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 20:23:21.88 ID:EjGlzjxq.net] 配列なんてめんどくさいもん、パフォーマンスが必要でもない限り使いたくない
503 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 20:40:22.09 ID:z8VcNRtv.net] >>493 数学の記述をそのままコーディングしたいときに使いたい
504 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 20:44:38.20 ID:ZFv6krbe.net] >>490 yes
505 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 20:50:22.93 ID:ZFv6krbe.net] www.slideshare.net/mobile/mikeranderson/2013-1114-enter-thematrix https://github.com/mikera/core.matrix 行列計算のためにイミュータブルな配列用意するって他の言語でもあまり聞かないような。
506 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 20:55:32.77 ID:ZFv6krbe.net] 無いは嘘だな。使われないといった方が正しいか。 core.matrixだとイミュータブル、ミュータブルな演算があった。
507 名前:デフォルトの名無しさん mailto:sage [2014/08/28(木) 23:49:46.31 ID:q1Nilail.net] 構文クオート` アンクオート~ スプライシングアンクオート~@ がdefmacro以外の場所で使えるとは思わなかった。 defmacro以外の場所で使われているソース見たとき何してるのかさっぱり分からなかった。
508 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 00:25:56.65 ID:gwJnPSQu.net] hiccupのselect-optionsでこういうのを書きたいとき (hiccup.form/select-options [["aaa" "key1"] ["bbb" "key2"] ["ccc" "key3"]] "key2") すでにoptionのリストがマップで用意されているときに (def m {:key1 "aaa" :key2 "bbb" :key3 "ccc"}) 上記のselect-optionsを書くのは2度手間で愚かしいから、 mを3つのベクタ ["aaa" "key1"] ["bbb" "key2"] ["ccc" "key3"] に展開してくれるマクロってないかな?って探してみたけどなさそうで、 まあ、リストに入った形で作るのは簡単だけど、この場合はリストが邪魔になる。 自分でマクロつくるのも局所的でダサい感じがするので、どうしようかな〜って悩んだんだけど、こんな感じで出来た。 (hiccup.form/select-options `[~@(map (fn [[k v]] [v (name k)]) m)] "key2")
509 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 00:54:43.30 ID:ZNTD6qKu.net] >>498 Schemeとかはリストつくるときに使ったりするけどClojureだとあんまり出番なさそう
510 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 00:59:13.84 ID:n2eqBKYr.net] Reducer=関数を畳み込んでseqに対する処理のまとまりをつくる transducer=reduceを再利用するために弄る道具 という認識でおk?
511 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 10:02:46.86 ID:FcRVFksi.net] 畳み込まれて弄られてみたい
512 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 13:45:05.03 ID:SalYkWyb.net] transducerってhaskellの部分関数適用っぽいよね Prelude> let chiceOdd = filter odd Prelude> let double x = x*x Prelude> let doubleSeq = map double Prelude> doubleSeq [1,2,3,4,5] [1,4,9,16,25] Prelude> chiceOdd $ doubleSeq [1,2,3,4,5] [1,9,25] Prelude> sum $ chiceOdd $ doubleSeq [1,2,3,4,5] 35 Prelude>
513 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 15:30:50.58 ID:VZ6uxtiu.net] deffooというマクロを作って、ひとつのファイルの中で (deffoo bar ...) (deffoo baz ...) とやると、 ・関数 handle-foo-bar と handle-foo-baz ・変数 foo-handlers = {:bar handle-foo-dar, :baz handle-foo-baz } が定義されるようなマクロを作りたい。 後者は別のマクロを作って(define-foo-handlers)みたいにファイルのどこかに書くことにしてもいいけど deffooの引数を再び手で列挙しなくていいようにしたい。 こういうのってできる?
514 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 18:06:15.82 ID:SalYkWyb.net] >>504 (defn handler-name [exp] (symbol (str 'handle-foo- (first exp)))) (defn destruct [exp] [(handler-name exp) (second exp) (rest (rest exp))]) (defmacro deffoos [& exps] `(do ~@(for [exp exps] (let [[fname args body] (destruct exp)] (list* 'defn fname args body))) (def foo-handlers ~(reduce (fn [dict exp] (assoc dict (keyword (first exp)) (handler-name exp))) {} exps)))) >(deffoos (bar [x] (print x) (print x)) (baz [y] (print y) )) >((:bar foo-handlers) 1) 11 nil >((:baz foo-handlers) 2) 2 nil
515 名前:デフォルトの名無しさん [2014/08/29(金) 20:01:57.54 ID:ttFFbJAa.net] rein repl するとエラー出るんですがどうしたら良いんでしょう 環境はwindows7 ttps://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat からlein self-installして lein versionは Leiningen 2.4.3 on Java 1.8.0_20 Java HotSpot(TM) Client VM です
516 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 20:32:24.74 ID:SalYkWyb.net] >502 コマンドプロンプトに出てきたエラーをコピペしよう
517 名前:502 [2014/08/29(金) 20:43:54.98 ID:ttFFbJAa.net] C:\Users\owner\Documents\Lisp\clojure>lein repl nREPL server started on port 61020 on host 127.0.0.1 - nrepl://127.0.0.1:61020 Exception in thread "nREPL-worker-0" java.lang.NoSuchMethodError: clojure.tools.nrepl.StdOutBuffer.l ength()I at clojure.tools.nrepl.middleware.session$session_out$fn__7630.doInvoke(session.clj:43) at clojure.lang.RestFn.invoke(RestFn.java:460) at clojure.tools.nrepl.middleware.session.proxy$java.io.Writer$ff19274a.write(Unknown Source ) at java.io.PrintWriter.write(Unknown Source) at java.io.PrintWriter.write(Unknown Source) at clojure.core$fn__5471.invoke(core_print.clj:191) at clojure.lang.MultiFn.invoke(MultiFn.java:231) at clojure.core$pr_on.invoke(core.clj:3392) at clojure.core$pr.invoke(core.clj:3404) at clojure.lang.AFn.applyToHelper(AFn.java:154) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invoke(core.clj:624) at clojure.core$prn.doInvoke(core.clj:3437) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:624) at clojure.core$println.doInvoke(core.clj:3457) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.main$repl_caught.invoke(main.clj:158) at clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__7569$fn__7582.invoke(inter ruptible_eval.clj:76) at clojure.main$repl$fn__6634.invoke(main.clj:259) at clojure.main$repl.doInvoke(main.clj:257) at clojure.lang.RestFn.invoke(RestFn.java:1096) at clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__7569.invoke(interruptible_ eval.clj:56) at clojure.lang.AFn.applyToHelper(AFn.java:152)
518 名前:502 [2014/08/29(金) 20:45:46.44 ID:ttFFbJAa.net] at clojure.lang.AFn.applyTo(AFn.java:144) at clojure.core$apply.invoke(core.clj:624) at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1862) at clojure.lang.RestFn.invoke(RestFn.java:425) at clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke(interruptible_eval.clj: 41) at clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__7610$fn__7613.in voke(interruptible_eval.clj:171) at clojure.core$comp$fn__4192.invoke(core.clj:2402) at clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__7603.invoke(interruptible_ eval.clj:138) at clojure.lang.AFn.run(AFn.java:22) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
519 名前:502 [2014/08/29(金) 20:46:25.91 ID:ttFFbJAa.net] REPL-y 0.3.2, nREPL 0.2.0-beta5NoSuchMethodError clojure.tools.nrepl.StdOutBuffer.length()I clojure .tools.nrepl.middleware.session/session-out/fn--7630 (session.clj:43)NoSuchMethodError clojure.tools .nrepl.StdOutBuffer.length()I clojure.tools.nrepl.middleware.session/session-out/fn--7630 (session. clj:43) Error loading namespace; falling back to userException in thread "nREPL-worker-1" NoSuchMethodError clojure.tools.nrepl.StdOutBuffer.length()I clojure.tools.nrepl.middleware.session/session-out/fn--7 630 (session.clj:43)NoSuchMethodError clojure.tools.nrepl.StdOutBuffer.length()I clojure.tools.nrep l.middleware.session/session-out/fn--7630 (session.clj:43)java.lang.NoSuchMethodError: clojure.tools .nrepl.StdOutBuffer.length()I #<Namespace user> at clojure.tools.nrepl.middleware.session$session_out$fn__7630.doInvoke(sess ion.clj:43) at clojure.lang.RestFn.invoke(RestFn.java:460) at clojure.tools.nrepl.middleware.session.proxy$java.io.Writer$ff19274a.write(Unknown Source )
520 名前:502 [2014/08/29(金) 20:47:05.82 ID:ttFFbJAa.net] at java.io.PrintWriter.write(Unknown Source) at java.io.PrintWriter.write(Unknown Source) at clojure.core$fn__5471.invoke(core_print.clj:191) at clojure.lang.MultiFn.invoke(MultiFn.java:231) at clojure.core$pr_on.invoke(core.clj:3392) at clojure.core$pr.invoke(core.clj:3404) at clojure.lang.AFn.applyToHelper(AFn.java:154) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invoke(core.clj:624) at clojure.core$prn.doInvoke(core.clj:3437) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:624) at clojure.core$println.doInvoke(core.clj:3457) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.main$repl_caught.invoke(main.clj:158)
521 名前:502 [2014/08/29(金) 20:47:31.29 ID:ttFFbJAa.net] at clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__7569$fn__7582.invoke(inter ruptible_eval.clj:76) at clojure.main$repl$fn__6634.invoke(main.clj:259) at clojure.main$repl.doInvoke(main.clj:257) at clojure.lang.RestFn.invoke(RestFn.java:1096) at clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__7569.invoke(interruptible_ eval.clj:56) at clojure.lang.AFn.applyToHelper(AFn.java:152) at clojure.lang.AFn.applyTo(AFn.java:144) at clojure.core$apply.invoke(core.clj:624) at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1862) at clojure.lang.RestFn.invoke(RestFn.java:425) at clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke(interruptible_eval.clj: 41) at clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__7610$fn__7613.in
522 名前:502 [2014/08/29(金) 21:43:00.05 ID:ttFFbJAa.net] voke(interruptible_eval.clj:171) at clojure.core$comp$fn__4192.invoke(core.clj:2402) at clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__7603.invoke(interruptible_ eval.clj:138) at clojure.lang.AFn.run(AFn.java:22) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) user=>
523 名前:502 [2014/08/29(金) 21:45:44.73 ID:ttFFbJAa.net] 未定義のaを入力すると user=> a Exception in thread "nREPL-worker-3" java.lang.NoSuchMethodError: clojure.tools.nrepl.StdOutBuffer.l ength()I at clojure.tools.nrepl.middleware.session$session_out$fn__7630.doInvoke(session.clj:43) at clojure.lang.RestFn.invoke(RestFn.java:460) at clojure.tools.nrepl.middleware.session.proxy$java.io.Writer$ff19274a.write(Unknown Source ) at java.io.PrintWriter.write(Unknown Source) at java.io.PrintWriter.write(Unknown Source) at clojure.core$fn__5471.invoke(core_print.clj:191) at clojure.lang.MultiFn.invoke(MultiFn.java:231) at clojure.core$pr_on.invoke(core.clj:3392) at clojure.core$pr.invoke(core.clj:3404)
524 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 22:28:36.86 ID:gwJnPSQu.net] よくわかんないけど、 lein new hoge してみて動く? 動かないんなら、インストールがいけてないんじゃない?
525 名前:502 [2014/08/29(金) 22:36:13.28 ID:ttFFbJAa.net] C:\Users\owner\Documents\Lisp\clojure>lein new hoge Generating a project called hoge based on the 'default' template. The default template is intended for library projects, not applications. To see other templates (app, plugin, etc), try `lein help new`. と表示されて、フォルダとその中身は生成されました
526 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 22:59:13.58 ID:y3Bk7XLE.net] C:\Users\owner\.m2かC:\Users\owner\.lein の中身一度消した方がよくね?
527 名前:502 [2014/08/29(金) 23:18:03.96 ID:ttFFbJAa.net] .leinないのself-installsいがいと.m2を削除後 new hogeで生成されたフォルダを削除してからもう一回すると C:\Users\owner\Documents\Lisp\clojure>lein new hoge (Retrieving org/clojure/tools.nrepl/0.2.3/tools.nrepl-0.2.3.pom from central) (Retrieving org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2.pom from central) (Retrieving org/sonatype/oss/oss-parent/7/oss-parent-7.pom from central) (Retrieving clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.pom from clojars) (Retrieving org/clojure/tools.nrepl/0.2.3/tools.nrepl-0.2.3.jar from central) (Retrieving clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.jar from clojars) Generating a project called hoge based on the 'default' template. The default template is intended for library projects, not applications. To see other templates (app, plugin, etc), try `lein help new`. C:\Users\owner\Documents\Lisp\clojure> と出ました hogeの中身は生成されました
528 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 23:32:51.55 ID:y3Bk7XLE.net] >>518 それエラーじゃないので .m2に必要なライブラリが無いのでダウンロードして実行しましたってメッセージ .leinが無いはずないのだけど(leiningenが作る) .leinにはlein self-installの時にleiningenの本体が入る .m2はmavenのローカルリポジトリ lein versionだといくつ? うちは2.0.0で正常動作してる、もしbetaとか入ってるようならlein.batのバージョン設定部分を SET LEIN_VERSION=2.0.0 とかしてからlein self-installしなおしてみるのも手かも
529 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 23:41:13.55 ID:gwJnPSQu.net] lein new hoge できたんか! じゃあ cd hoge lein repl で動く? だめなら、インストールがいけてないんじゃね?
530 名前:502 [2014/08/29(金) 23:49:13.63 ID:ttFFbJAa.net] >>519 「.leinないの」は「.lein内の」のうち間違いです C:\Users\owner\Documents\Lisp\clojure>lein version Leiningen 2.4.3 on Java 1.8.0_20 Java HotSpot(TM) Client VM >>520 C:\Users\owner\Documents\Lisp\clojure>cd hoge C:\Users\owner\Documents\Lisp\clojure\hoge>C:\Users\owner\Documents\Lisp\clojure\lein.bat repl (Retrieving org/clojure/clojure/1.6.0/clojure-1.6.0.pom from central) (Retrieving org/clojure/clojure/1.6.0/clojure-1.6.0.jar from central) nREPL server started on port 63616 on host 127.0.0.1 - nrepl://127.0.0.1:63616 REPL-y 0.3.2, nREPL 0.2.3 Clojure 1.6.0 Java HotSpot(TM) Client VM 1.8.0_20-b26 Docs: (doc function-name-here) (find-doc "part-of-name-here") Source: (source function-name-here) Javadoc: (javadoc java-object-or-class-here) Exit: Control+D or (exit) or (quit) Results: Stored in vars *1, *2, *3, an exception in *e user=> こうなりました
531 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 23:52:13.95 ID:SalYkWyb.net] >517 動いてね?
532 名前:502 [2014/08/29(金) 23:58:12.16 ID:ttFFbJAa.net] >518 newで作成したフォルダ以外の 場所をカレントディレクトリとして起動すると>504 のようなメッセージが表示されます これで正常なんでしょうか?
533 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 00:15:26.95 ID:NlcNxbCo.net] Windowsだとleinプロジェクト直下じゃないとダメだったような。 おれのMacだとどこでも大丈夫。 ー>つまりMacを買えってことだ
534 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 00:19:47.90 ID:g4GRl5RV.net] leiningenすらも使いずらい
535 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 00:49:42.05 ID:NlcNxbCo.net] 息をするのもめんどくさい
536 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 00:56:21.25 ID:g4GRl5RV.net] 起動 java -cp %CLOJURE_HOME%\clojure-1.5.1.jar clojure.main 終了 (System/exit 0) はじめて見たときは冗談かと思った
537 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 01:24:57.73 ID:2I7W1a/t.net] >>498 あんまり詳しくないが、 そいつらリーダーマクロっていって、S式を評価する前(リードした時)に評価される文字という認識 https://gist.github.com/ponkore/4195740
538 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 01:27:31.04 ID:2I7W1a/t.net] windowsのleiningenインストーラー leiningen-win-installer.djpowell.net
539 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 07:43:43.79 ID:TXjyMgKn.net] >>524 Linuxで良いじゃん
540 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 08:43:13.34 ID:8H1iBGWr.net] >>524 うちのWin8.1+Leiningen2.0.0だと何処でもlein replできた 違いは何処にあるんだろう? ちなみに cd c:\ だと書き込み権限が無いってエラーでreplできない
541 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 08:51:34.88 ID:8H1iBGWr.net] 追記 Win8.1環境で lein upgrade したら lein versionは 2.1.2になって lein replは普通に通った その後でさらに lein upgrade したら lein versionが 2.4.3になって lein replの結果>>506 と同様にlein newしたディレクトリ以外では同じエラーが出た 今のleiningenはproject.cljの無い所だとエラーになるかもしらん。 leiningenの使い勝手変えたいならlein.batのVERSION設定で選択するとよいかもしらん
542 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 19:13:43.58 ID:NlcNxbCo.net] 数値(金額)をカンマ入れ表記に変換するコードが必要になって、書いてみたらすごくながったらしくて、もっといい書き方ないかな?って聞こうかと思ったら、Javaで書けばいいんだって思い出した… (apply str (reverse (apply str (map #(apply str %) (interpose "," (partition 3 3 nil (reverse (str 1234567)))))))) (-> (NumberFormat/getNumberInstance Locale/JAPAN) (.format 1234567))
543 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 11:26:36.25 ID:TlhTHmWT.net] Ubuntu14.04でopen-jdk-7入れてlein2.4.3でlein replしたらエラー吐いた github見て2.4.2にdgしたら直ったけど
544 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 11:37:06.61 ID:TlhTHmWT.net] 2.4.4にしないのは原因が不明かつ開発リソースが足りてないかららしい leinプロジェクト外でlein replしたら出るエラーだから>>506 >>512 と同じ症状かも
545 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 12:02:34.46 ID:z1FNQfnD.net] >>534 win,mac,linux,bsdどのプラットフォームでもproject.clj無いとエラー吐くね>>2 .4.3 つーわけで2.4.2に戻してみた
546 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 15:10:40.76 ID:O+cfco8y.net] 来たぜ来たぜ来たぜー 新規案件、モバイルデバイス向けソフト兼サーバ必須、そして言語縛り無し! ラピッド開発で各週統合 しかも開発に割り当てられた人的資源は自分入れて二人のみ、しかも両者ともにClojarianとくれば、もうClojure使うしか
547 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 15:31:36.68 ID:kfD3d1pR.net] 入門ClojureScriptの和訳がイマイチ プログラミングClojureの後に読んだからかもしれないけど
548 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 15:58:16.49 ID:QR3Wyv0t.net] >>537 個人でやってるの? それとも小さい会社?
549 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 18:42:46.09 ID:/dSRrT7Z.net] >>537 悪いことは言わない clojureはプロトタイプまでにとどめておけ どうしてもというなら、せめてlispでやるべき 長時間多アクセスのclojureサーバは、再帰の最適化がヘボいからコケるぞ
550 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 20:13:34.08 ID:IqVW5NOO.net] Clojureは再帰使わないでコード書くものじゃないの?
551 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 21:13:35.89 ID:l/NwgCei.net] 単なるwebサーバーならそんなに再帰つかわないだろ? 再帰使うんなら書籍のプログラミングClojureのフィボナッチ数列のところ読めば十分じゃね?
552 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 21:18:03.06 ID:dVCJIvZO.net] 俺のコードがヘボいからコケるぞ!
553 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 21:30:17.75 ID:sMeqRneA.net] clojure でいくつかサーバサイド書いたけど、再起など一度も使わなかった。そのチャンスさえなかった。 意識せずに遅延seqになって困った事ならあったが。 あと、JVM 起動遅くて辛かった。
554 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 21:33:42.88 ID:/dSRrT7Z.net] 1万行のコードの中から再帰を削除しなくてもコケない選択肢と、削除しないとコケる選択肢 (この世で最も信頼できない3ヶ月以上時間を隔てた) 俺のコードがヘボくてもコケない選択肢と、ヘボいとコケる選択肢 なぜあえて金のかかる場面で冒険をしたがるのか…
555 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 21:37:20.54 ID:uBvsTbOp.net] コケるって結局何がコケたの? 最適化がヘボイからコケるってケース
556 名前:ェよくわかんない [] [ここ壊れてます]
557 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:03:43.74 ID:l/NwgCei.net] ネストが深い再帰をしたい場合はプログラミングClojureのフィボナッチ数列のところよく読んだ方がいいが、浅い再帰ならそんなに気にしなくていいと思うが... まあ、何も分かってないプログラマがrecur使ってたらゾッとするがね。
558 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:12:58.16 ID:/dSRrT7Z.net] >>546 WEBサーバでclojureで作ったサーブレット追加してサーバが落ちた経験一覧 ・普通に気付かずにヘボ再帰を書いてる -> 表現が素直だから目の前にあっても気付かない ・ページの文字列連結で落ちた -> 差分リストに変更 ・よく見たらletfnで再帰になってた -> 見つけるのに4日かかった ・デバッグ情報追加したら落ちた -> デバッグ情報の持ち回りに超頭使う ・clojureがバージョンアップして落ちた -> 原因不明、関数名の扱いの変更が怪しい ・その他、コードの入れ替えに落とす必要あり
559 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:19:51.63 ID:uBvsTbOp.net] それ再帰の最適化関係ある? バージョンアップ以外は実装してる人間の能力が問題のように見えるんだけど
560 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:35:51.34 ID:/dSRrT7Z.net] >>549 SICP和田本から計算機言語の世界に来た人にとってはもの凄く関係あると思われる
561 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:51:52.26 ID:IqVW5NOO.net] >・デバッグ情報追加したら落ちた -> デバッグ情報の持ち回りに超頭使う >・clojureがバージョンアップして落ちた -> 原因不明、関数名の扱いの変更が怪しい 再帰関係無いじゃん >・その他、コードの入れ替えに落とす必要あり Webサーバ立ち上げたままREPLでコード修正して問題なかったと思うが warにしてTomcatなりに組み込むのは完成してからでいいよね
562 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:53:15.77 ID:uBvsTbOp.net] SICPは俺も好きだし結構読み込んだけど、どこが関係あるのかわかんないな 末尾最適化してくれないとかそういうの? それこそループで書けよって思っちゃうんだけど(まあ末尾最適化を仕様で必須にしてくれればそれはうれしいけどね) Scheme脳なら再帰にこだわるのはわかるけど、CLとかClojureとかは再帰使うよりループ使うほうが自然じゃない?
563 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:54:22.16 ID:O+cfco8y.net] >>548 それバージョンアップ以外は544が悪くね? >・デバッグ情報追加したら落ちた -> デバッグ情報の持ち回りに超頭使う これなんか特に ユニットテストとか負荷試験とかするよね?
564 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:58:10.29 ID:O+cfco8y.net] >>552 Clojureだと再帰よりも無限リストへ関数適用で結果得方法使う事多いかなあ loopやrecurは↑に慣れてなかった頃は良くつかったけど、今だとあんまり使わない。
565 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 23:04:18.75 ID:IqVW5NOO.net] そもそも再帰の最適化は全くしないから遅延シーケンスやrecurを使ってねっていう言語なのに
566 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 23:28:49.29 ID:/dSRrT7Z.net] >>551 今調べたら関数名の束縛方法が変わってて再帰状態のトレースができなくなってた
567 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 23:32:18.63 ID:/dSRrT7Z.net] >>553 負荷試験するたびに、「lispならサクサク行くのにィィィィィ」とうなることうけあい
568 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 23:32:47.97 ID:jxF8XaRa.net] シーケンス関数の組み合わせでばっかり書くけどな
569 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 23:50:21.81 ID:/9mshiOI.net] なんとなく、jdkまわりの話。 openjdkよりoracle jdk/jreの方がいいかも。 oracle jdkはちょっと前にデグレしてたみたいなので、最新版使う。 jdk8はメモリまわりの改善あり、ただし互換性に関しては慎重に。 ibm j9は、メモリ利用効率がいいがメモリでエラー出さず落ちることがある。あとは、あまり使ってる人がいないのでclojure関連でバグあるかも。 オプションの関係もあり、leinから商用環境サーバー起動しない方がいい。
570 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 00:27:50.58 ID:PvOs3K6+.net] 永続的なサービスに向かない作りであれば、webサービスだと定期的にインスタンス再起動して入れ替えする運用が多いね。 たとえば、apacheはプロセス再起動を組み込みでやってる。 railsのunicornもそんな仕組みがある。 jvmの場合は、特にウオームアップ後の入れ替えが良いと思う。
571 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 05:04:16.50 ID:3zk9T5qQ.net] >>547 フィボナッチはスゴいな もう、にっちもさっちもいかなくなるわ こらぁ、うごいてんのかぁ! もっと腰ふらんかい!
572 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 11:05:15.04 ID:grGI9d1X.net] CLバリバリ書いてた人が、プログラミングclojureみたいなclojureの作法が書いてある資料読まずに始めると、確かにハマりそうだね。
573 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 11:19:05.25 ID:00AxUh/f.net] >>557 CL使うとfranz使いたくなるし、使うと現場でライセンス料がががががになる
574 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 23:18:38.44 ID:mfAODgKx.net] 100歩ゆずってサーブレットみたいな部品をclojureで作るとしても、商用でサーバコンテナみたいな本体をclojureで作るなんてことはないよね?
575 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 23:22:39.08 ID:00AxUh/f.net] >>564 どのようにしてそのように考えたのかをまず述べてくれないだろうか?
576 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 06:20:48.19 ID:ZW5BEuQC.net] 商用でclojure使ってるとこ普通にあるでしょ まあ少ないだろうけど
577 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 09:45:44.68 ID:JND3JfZzM] 商用ではないけど近い物としてはImmutantがありますね。 immutant.org/ 商用DBならDatomic。www.datomic.com/
578 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 16:53:57.73 ID:IshzZhlV.net] egisonの非線形パターンマッチができるライブラリない?
579 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 18:59:44.24 ID:jk5K1tbR.net] 作者が移植してるのは、rubyとhaskellだね。 clojureに移植って、どこから持ってくるのが楽なんだろうね。
580 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 23:11:30.07 ID:KIcCGqHh.net] >>563 懐かしいね、franz。AllegroStore とか AllegroServe ってどうなったんだろう…
581 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 11:16:58.89 ID:xDuN/XcD.net] httpサーバもあるぞ。 HTTP client/server for Clojure http-kit.org/ Ring https://github.com/ring-clojure/ring/blob/master/README.md アクセス多い場合、ringをセルフホスティングしてることは、少ないと思うけど。 Clojure web server shoot-out https://github.com/ptaoussanis/clojure-web-server-benchmarks/blob/master/README.md
582 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 12:16:04.00 ID:u9vJFh8i.net] http-kitのコードは結構Javaで書いてあったりするしこういう逃げ道があるだけでも全然実用的では
583 名前:デフォルトの名無しさん mailto:sage [2014/09/06(土) 03:48:48.69 ID:wK8BCI9U.net] immutant2 alphaになったとこなんだな。 immutant.org/news/2014/08/27/announcing-2-alpha1/ 去年ぐらいなら開発してたからもうリリース直前ぐらいかとおもってた。
584 名前:デフォルトの名無しさん mailto:sage [2014/09/06(土) 14:21:20.62 ID:wK8BCI9U.net] 最近、clojure/clojurescriptではなく、haskell/elmみたいに、ホスト言語に合わせて再実装したというコンバータが出て来たらしい。 ライブラリ使い回すことが出来ないけど、こっちの方がシンプルで構文もシンプルで書きやすいんだよな。 js https://github.com/Gozala/wisp llvm https://github.com/artagnon/rhine
585 名前:デフォルトの名無しさん mailto:sage [2014/09/08(月) 01:59:23.82 ID:CIBCo0oi.net] core.asyncとchannelがイマイチしっくりこない 分かりやすいチュートリアルとかあったら教えてください
586 名前:デフォルトの名無しさん mailto:sage [2014/09/08(月) 22:59:20.37 ID:AyVNnGAs.net] なぜアクターモデルをデフォルトにしなかったのか…
587 名前:デフォルトの名無しさん mailto:sage [2014/09/09(火) 12:15:28.91 ID:JCwcwuFZ.net] >>576 schemeとは別の考え方で作られてるからってのはリッチがどこかで書いてたけど。
588 名前:電波いっぱい mailto:sage [2014/09/09(火) 21:52:41.58 ID:ag/LmGofx] >>577 ここかな?clojure.org/state
589 名前:デフォルトの名無しさん mailto:sage [2014/09/10(水) 19:13:51.07 ID:U1JgMN8O.net] 参考にした、goのchannelの解説 jxck.hatenablog.com/entry/20130414/1365960707 core.asyncの解説 qiita.com/mizchi/items/55386689d19a67baa62d ただ、オフィシャルが一番詳しいような気が。ここからたどってるかな? https://github.com/clojure/core.async/blob/master/README.md clojure.com/blog/2013/06/28/clojure-core-async-channels.html
590 名前:デフォルトの名無しさん mailto:sage [2014/09/11(木) 21:43:46.32 ID:DgIouG2i.net] lispの資産を移行しながら勉強しようと思ったら、ドット対がなくていきなり挫折しかけてる状態 パターンマッチングプログラム作るときに不便すぎる
591 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 05:12:50.76 ID:Ypjnf85z.net] え?ドット対がないの? あらら じゃあ(cdr l)を(cadr l)に書き換えなきゃね
592 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 09:05:08.51 ID:WTGM0q3b.net] clojureつかjavax.swingを完全なemacsバインドにするのって凄いめんどくさいのね。
593 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 22:04:25.78 ID:XcTB9vyQ.net] cdr もないじゃないか
594 名前:デフォルトの名無しさん [2014/09/12(金) 22:17:52.66 ID:F2dOTuLl.net] car,cdrって悪しき慣習だったからばっさり切ってくれてよかった。
595 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 23:14:06.10 ID:XcTB9vyQ.net] cons で非リストを対にしたいんですが、どうしたらよいでしょうか cons 1 '(2) はできる cons 1 2 はできない
596 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 00:18:36.47 ID:dIuOMN4p.net] consが返すのはリストじゃなくてシーケンス まずはリストとシーケンスの違いを勉強しておいで
597 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 00:24:34.54 ID:0gDmFCxq.net] リストやシーケンスじゃなくて、対が欲しいのですが、どうすればよいでしょうか 代用するのはよいですが、できるだけ一般的に行われている方法を知りたいです
598 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 00:48:12.18 ID:Z1UHFJSo.net] 一般的も何もclojureに対がないような
599 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 00:50:08.35 ID:pQ1fvgTL.net] >>587 (defn pair [ f s ] [ f s]) (let [p (pair 1 2)] (println (first p)) (println (second p))) じゃ駄目なの?
600 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 01:06:48.06 ID:0gDmFCxq.net] >>589 (pair 1 2) が()やnilから構成されるリストやベクタではなく、 (pair 1 ()) が '(1) と同値になるような pair が欲しいです lisp の . や、 prologの | みたいな演算子です ゆにふぃケーションのプログラムを作っていて、 (1 2 3 4) を (pair x y) にマッチさせたときに、(y . ()) と (2 . (3 . (4 . ())) ではなく、 y と (2 . (3 . (4 . ())) 全部をマッチさせたいのですが、 ()から構成したときだけリストと同値になる対やタプルがないとかなり面倒なことになりそうです
601 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 02:27:41.87 ID:dIuOMN4p.net] >>590 シーケンスでそういう構造つくればいいだろ ドット対がどんな構造してるか理解してれば簡単だろ?
602 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 04:08:37.23 ID:P+Ln4dUo.net] 最終的に作りたいのがprologのコンビネータだとすると、新しいconsシークエンスは作れてもそれをリストのように使えるようにするのはむつかしい lispをそのまま移行するわけにはいかぬ
603 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 04:20:45.69 ID:dIuOMN4p.net] consモドキ構造とリストを相互変換できるようにしとけばいいだろ
604 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 09:11:59.83 ID:0gDmFCxq.net] すみません (defn a [n] (if(<= n 0) 0 (b (- n 1)))) (defn b [n] (if (<= n 0) 0 (+ (a n) 1))) これ↑を test.clj に書いて (load "./test") や (load-file "./test.clj") を実行すると エラーになります b の位置を入れ替えて保存したあとにもう一回ロードするとエラーは消えます 2回目以降は、replを再起動するまではエラーはでません replを起動するたびにこれをやると面倒なのですが、みなさんはどうしてるのでしょうか
605 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 09:20:01.97 ID:qNZ9pwOr.net] >>594 clojuredocs.org/clojure_core/clojure.core/declare
606 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 14:40:50.48 ID:dIuOMN4p.net] >>594 プログラミングClojureを読んだほうがいいぞ Lispやってた人がそのまま突き進むといろいろ嵌る
607 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 15:34:43.87 ID:PBJgHhTk.net] 翻訳してるのGaucheの人だしCLとかSchemeから移ってくる人には向いてるかも
608 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 17:10:16.96 ID:0gDmFCxq.net] やっぱり見づらいです (def db7 (list (list (mlist "append" NIL "Ys" "Ys")) (list (mlist "append" (mcons "X" "Xs") "Ys" (mcons "X" "Zs")) (mlist "append" "Xs" "Ys" "Zs")))) (def q7 (list (mlist "append" "X" "Y" (range 1 7)))) user=> (prolog-test q7 db7) ((append.(X.(Y.((1.(2.(3.(4.(5.(6.mNIL)))))).mNIL))))) #{X Y} ans: ({X mNIL} {Y (1.(2.(3.(4.(5.(6.mNIL))))))}) ans: ({X (1.mNIL)} {Y (2.(3.(4.(5.(6.mNIL)))))}) ans: ({X (1.(2.mNIL))} {Y (3.(4.(5.(6.mNIL))))}) ans: ({X (1.(2.(3.mNIL)))} {Y (4.(5.(6.mNIL)))}) ans: ({X (1.(2.(3.(4.mNIL))))} {Y (5.(6.mNIL))}) ans: ({X (1.(2.(3.(4.(5.mNIL)))))} {Y (6.mNIL)}) ans: ({X (1.(2.(3.(4.(5.(6.mNIL))))))} {Y mNIL}) "end"
609 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 01:38:30.64 ID:j2m0rNSv.net] leiningen 使ってて、本番用のjar作りたいときに、設定ファイルとかを本番用に置き換えたりするには、それようのシェルを書かないとダメかな? それかant使うとか。 基本、leiningenってビルドスクリプト書くようにはできていないよね?
610 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 04:14:34.70 ID:7RRZzfTf.net] leinコマンドで、profiles切り替えることは出来るので、runやuberjarのときに切り替えも出来る。 https://github.com/technomancy/leiningen/blob/master/doc/PROFILES.md https://github.com/technomancy/leiningen/blob/master/sample.project.clj lein以外だと、普通に環境変数やアプリ側の起動オプションとワーキングディレクトリなどの設定ファイルと組み合わせて切り替える。
611 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 11:16:52.24 ID:X07CHSCX.net] Clojure版SICP成功しますように
612 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 12:37:29.90 ID:js3EBI3k.net] >>601 Richは否定的じゃなかった? SICPはプログラミングの概念を学ぶものだからSchemeみたいなプリミティブな言語使うのが適してるとか言っていたような? リンク探したけど見つからなかったのでうろ覚えなんだけど
613 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 13:47:32.68 ID:SJHXukYy.net] Clojureの学習でSICPは使えるかと問われ、Rich曰く、 d.hatena.ne.jp/katzchang/20120211/p1
614 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 16:27:18.84 ID:3RJRJIrt.net] 僕は、SICPはプログラミング言語の本じゃなくて、あれはプログラミングの本なんだと思ってる。 本の中でSchemeを使っているのは、アトミックなプログラミング言語だからなんだ。 ラムダ計算、末尾再帰、継続を使った抽象制御、抽象構文(マクロ)、可変状態など。軽量で、かつ十分だ。
615 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 18:40:34.2
] [ここ壊れてます]
616 名前:2 ID:upNhnkM6.net mailto: >>601 ドット対がないんだけど、どうすんだろうか [] [ここ壊れてます]
617 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 19:24:23.43 ID:6zICEfBP.net] キャー! ないの? キャ!
618 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 17:12:21.85 ID:V1Xx4jW9.net] doted pairsがないとかcar,cdrがないとかClojureってcellsが基本じゃないの? エヘヘ セルがいなけりゃ天津飯でも最強になれるぜ リストぉーふぁーっく
619 名前:電波いっぱい ◆wqLZLRuzPQ mailto:sage [2014/09/16(火) 19:31:14.35 ID:iS+gVInFn] >>607 コンスセルはないし、リストはコンスセルてできていない。 代わりにベクターやマップやセットなどのデータ構造を使う。 根本的なデータ構造が違うので、他のlispから移植するのは大変な物があるかもしれない。物によっては完全に実装し直しでしょうね。
620 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 23:53:55.83 ID:9F6k5Qvl.net] gpsoft.dip.jp/hiki/?Common+Lisp%2C+Scheme%2C+Gauche%2C+Clojure%A4%F2%CA%D9%B6%AF%A4%B9%A4%EB%C1%B0%A4%CB > ちなみにClojureは、セルやドット対という概念を捨てています。 > Clojureにもcons関数はありますが、第2引数にアトムを指定することはできません。
621 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 00:10:06.01 ID:9D0rV1mM.net] 基本データ型として用意されてないので、自分でデータ構造を定義して使う。
622 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 04:30:42.06 ID:vt1vk8t3.net] 女ができて Lispに興味があると言うから winタブに入っていたrepl.scmをみせた。 式の評価関数は (eval-sexp sexp table) すると 「変態!」 と言われて立ち去られてしまった な、なんでたぁ!!
623 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 10:18:41.39 ID:aYkhXuVZ.net] そりゃあれだwindows使ってたからだろ
624 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 20:39:01.01 ID:j6eDcU3v.net] leiningen 2.5.0 / 2014-09-14 https://github.com/technomancy/leiningen/blob/master/NEWS.md - Fix a bug where repls outside of a project were broken. (Phil Hagelberg) となってるが、ちゃんと治ったのかな?
625 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 23:12:39.67 ID:ry1QXF9R.net] 新しいwebスタックなのかな? caribou caribou.github.io/caribou/docs/outline.html
626 名前:デフォルトの名無しさん mailto:sage [2014/09/18(木) 14:22:15.28 ID:zEr3CNRT.net] >>613 Ubuntu14.04x86でlein upgradeして試したら直ってた
627 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 17:11:34.59 ID:LvPIFofq.net] クロージャーは苦労じゃと思ったことはないの?
628 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 17:12:13.46 ID:xorcTHrm.net] go clojure tar
629 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 17:40:13.84 ID:vIHnf5mS.net] ドット対ないの、困らないのる
630 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 18:09:57.08 ID:S+g0REzG.net] のらない
631 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 21:18:23.52 ID:vh/Af1aB.net] ドット対がないと過去のlisp資産を使えないので困る
632 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 21:20:36.50 ID:c1ePS+PE.net] >>620 その代わりJavaの資産を使えますしおすし。
633 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 21:24:54.18 ID:vh/Af1aB.net] java APIは、資産か負債か…
634 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 21:30:18.38 ID:c1ePS+PE.net] Mavenのセントラルリポジトリから色々引っ張ってこれるから 超便利なんだけど…
635 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 22:25:55.59 ID:yriWFnZx.net] lein ring uberwarしてできたwarファイルをTomcatに渡すだけでマジで動くのこれ? だとしたら便利過ぎる
636 名前:デフォルトの名無しさん mailto:sage [2014/09/22(月) 23:37:24.00 ID:nvfImWev.net] Tomcatなんてダサいものに入れる必要ないぜ lein uberjar して java -jar すれば組み込みのJettyが
637 名前:動く。 マジで楽。 [] [ここ壊れてます]
638 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 15:15:31.48 ID:GXSMA3Ap.net] Clojure+Luminus+HTTP Kit+H2で2ちゃんねる専用ブラウザを作ってみたよ〜 meriken.me/programming/merikens-2ch-browser
639 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 15:52:47.85 ID:ToswTk7I.net] >>626 良くできてるねー でもp2とかが保存した古いdatの受け口とかないのかな? あれば移行できるんだけど。
640 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 16:31:22.41 ID:GXSMA3Ap.net] >>627 ありがとうございます〜 自分も長い間rep2や公式p2を使っていたので、 datのインポート機能は付ける予定です。
641 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 16:49:12.13 ID:ToswTk7I.net] >>628 h2sqlにdat入れてるみたいだからここを他のDB使えたり、過去datのmigrationツール呼び出しオプションとか有ると凄いうれしいです。 自分もclojureで同じような物作ろうとしたけどjsとcssのデザインが死ねるのであきらめたから、UIがこれだけ良くできてる所みるととっても有り難いです。 githubで公開とかあるともっとうれしいけど、binaryでも過去datのimportができれば全然問題ないレベルというか出来過ぎな感じで凄いわ 注文があるとするとお気に入りスレとスレの殿堂みたいにスレ終了後のdatの価値付けがあるといいなぁ(p2の機能ね)
642 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 17:59:04.72 ID:GXSMA3Ap.net] >>629 もともとHerokuで動かすつもりだったので、PostgreSQLには 対応する予定です。他のDBもぜひ試してみたいですね。 ほかの機能もいずれ実装する予定です。オプソにするかどうかは 新datの仕様次第ですね。 GUIは昔から興味がある分野なので頑張ってますw HiccupのインラインJavaScriptを多用したかなりアクロバティックな 実装になってます。 後このスレ的にはJettyの代わりにHTTP Kitを使ってるのが目新しいかも。 入れ替えの手間はほとんどかからない上にJettyよりだいぶ速くて WebSocketにも対応していて、いいことづくめですw
643 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 18:18:27.60 ID:ToswTk7I.net] >>630 ソシャゲサーバ作ってるのでhttp-kitのwebsocketは次に使う予定だったりします。 でもコネクション維持できない時あるんでそれが凄い困る>>モバイルプラットフォーム 頑張ってくださいね。
644 名前:電波いっぱい ◆wqLZLRuzPQ mailto:sage [2014/09/24(水) 18:38:38.81 ID:3l/nu2MoD] >>624 ROOT.warにするのならだいたいそのとおり。 そうでなければ、パスのところを修正する必要あったり、tomcat対応の修正が必要。
645 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 19:17:25.65 ID:Dut+zixn.net] >>626 sync2chに対応頼む
646 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 22:07:42.87 ID:2iRKCzum.net] lispでCUIの2chブラウザ作ったことがあるから、移行できると思ったらドット対がなくて挫折した
647 名前:デフォルトの名無しさん mailto:sage [2014/09/24(水) 22:11:10.76 ID:GXSMA3Ap.net] >>631 いいな〜 自分もClojureでもうちょっと規模の大きな開発をしてみたい… ブラウザのほうはどんどん機能追加してるのでご期待くださいw >>633 検討しておきます〜
648 名前:デフォルトの名無しさん mailto:sage [2014/09/25(木) 07:39:25.76 ID:wVXUgZuI.net] もう移行しなきゃいいじゃん?
649 名前:デフォルトの名無しさん [2014/10/03(金) 10:07:36.28 ID:AV4e/r+l.net] >>626 SCでやれよメリカス
650 名前:デフォルトの名無しさん mailto:sage [2014/10/22(水) 20:01:01.38 ID:RSMFJF8J.net] Clojure for Machine Learning買った人いる?
651 名前:デフォルトの名無しさん mailto:sage [2014/10/22(水) 23:44:13.64 ID:S/sAWAlU.net] >>638 ググったら、pdfが出てきて、292ページ全部タウンロードできたけど、今ってpdfで配ったモノをわざわざ売るのが流行ってるの?
652 名前:デフォルトの名無しさん mailto:sage [2014/10/23(木) 11:59:25.51 ID:wLG3e8D1.net] Clojure Gazzetに掲載されてたUnity3Dでclojure動かすarcadia使ってみたんだが楽しすぎ
653 名前:デフォルトの名無しさん mailto:sage [2014/10/24(金) 18:34:16.95 ID:KWBJpjnv.net] RHの記事読んでみてもreducersとtransducersがいまいち分からん 他のTutorial見たらidenty function(恒等関数?)とかmonoidとか出てくるしLYHGG でも読めばいいの?
654 名前:デフォルトの名無しさん mailto:sage [2014/10/28(火) 22:01:28.31 ID:KaOPym4X.net] clojure.org/transducers ;; reducing function signature whatever, input -> whatever ;; transducer signature (whatever, input -> whatever) -> (whatever, input -> whatever) transducer は、reducing functionを受け取ってreducing functionを返す関数みたいになってる。
655 名前:デフォルトの名無しさん mailto:sage [2014/10/28(火) 22:10:14.90 ID:KaOPym4X.net] transducerをjsで一歩ずつ実装しなおしていくような説明 simplectic.com/blog/2014/transducers-explained-1/
656 名前:デフォルトの名無しさん mailto:sage [2014/11/07(金) 17:02:58.08 ID:5EqfDet1.net] Reducers が2つもリクエストされてて草 board.postd.cc
657 名前:デフォルトの名無しさん mailto:sage [2014/11/07(金) 21:47:50.69 ID:oivM7o2FN] postdってボランティアみたいな人が翻訳してるの? それともリクルートの社員が翻訳してるの?
658 名前:デフォルトの名無しさん mailto:sage [2014/11/15(土) 08:35:48.88 ID:mZUmkatx.net] 正直なんかもう java やってる気になってきて嫌。
659 名前:デフォルトの名無しさん mailto:sage [2014/11/17(月) 02:14:05.02 ID:voT4yCE4.net] Sublime2使ってるが、フリーズしすぎで萎える。IntelliJに移行しようか迷い中。 もしかしたらST3は良くなっているのかも知れないが、 なんか開発体制が不安なのでいずれにしろ乗り換えたい。 LightTableを使ったことが無いんだけど、ガチの開発に使える感じ? まあ、ガチとは言ってもREPLとユニットテスト起動とgitインテグレーションが あればいんだが。
660 名前:デフォルトの名無しさん mailto:sage [2014/11/17(月) 12:56:40.65 ID:2tB4PbkN.net] LightTableはClojureScriptのREPLが気に入った。 っていうかAustinが辛い。
661 名前:デフォルトの名無しさん mailto:sage [2014/11/17(月) 19:02:37.86 ID:3AQSc2Ji.net] >>647 プラグインが悪いんじゃないの? Sublime2も3も使ってるがフリーズなんてしたことない。
662 名前:デフォルトの名無しさん mailto:sage [2014/11/26(水) 00:03:48.99 ID:m9BztBqp.net] LightTableを0.7にアップデートしたらカッコの自動補完してくれなくなっちゃいました。 instareplで「(」 をいれたら自動的に 「)」を入力してくれるようにしたいのですが、、
663 名前:デフォルトの名無しさん mailto:sage [2014/11/26(水) 22:58:24.83 ID:GzULXsET.net] あれなくなったんだ 嬉しいニュースだ
664 名前:デフォルトの名無しさん mailto:sage [2014/11/26(水) 23:03:55.63 ID:nE3c6lv0.net] 自動補完に戻して欲しい
665 名前:デフォルトの名無しさん mailto:sage [2014/11/26(水) 23:33:01.89 ID:4lQx9FOX.net] >>650 ##0.7.0 * CHANGED: parens are not auto-closed by default anymore, add `[:app :lt.objs.settings/pair-keymap-diffs]` to your behaviors to get it back. ↑これでデフォルトじゃ閉じなくなって ##0.7.1 * FIX: Give the auto-close keymap behavior a description: `Editor: auto-close parens/brackets/quotes/pairs` 0.7.1でなおってるみたいだけど↑これじゃね?
666 名前:デフォルトの名無しさん mailto:sage [2014/11/27(木) 21:59:05.42 ID:64DHkpfs.net] よく見たら僕のは0.7.2になってる。 0.7.1で治ってるの?0.7.2で元に戻った??
667 名前:デフォルトの名無しさん mailto:sage [2014/11/27(木) 22:02:38.92 ID:GjQr/RAb.net] >>654 うちのは0.7.0飛ばしちゃってた後に0.7.2入れたけど括弧入力の補完効いてるから0.7.0入れたときにpreference設定書き換わってないか見てみたら?
668 名前:礼 [2014/12/01(月) 18:25:36.09 ID:tHxJROnc.net] clojureを勉強していくためにslimeってやつを使いたいのだが、環境をつくるのがうまくいかない。lispって詩的だと思ったから勉強しようと思っています。初心者。
669 名前:デフォルトの名無しさん mailto:sage [2014/12/01(月) 18:36:47.86 ID:PC2xNpWA.net] LightTableおすすめ
670 名前:礼 [2014/12/01(月) 21:30:21.30 ID:tHxJROnc.net] LightTableってやつダウンロードしてみた、、
671 名前:デフォルトの名無しさん mailto:sage [2014/12/02(火) 00:08:50.33 ID:b5XysgAA.net] メモ帳 & コマンドプロンプト マジオススメ
672 名前:デフォルトの名無しさん [2014/12/02(火) 00:45:27.92 ID:S/rHt4Vl.net] >>656 swingreplのstandalone jarを作って、こいつの上で色々遊んでみるといい https://github.com/alandipert/clj-swingrepl
673 名前:礼 [2014/12/02(火) 07:47:56.28 ID:OOetDlpf.net] >>660 あ、ありがとうございます。 自分、初心者すぎて、遊べる段階まで行くやり方がわからない、、。 でも、とりあえず、LightTableで 「Instarepl: open a clojure instarepl」って コマンドを選択したらclojure試せるみたいなので、それでやってみます。
674 名前:デフォルトの名無しさん mailto:sage [2014/12/02(火) 10:48:50.29 ID:/Zko0w7N.net] >>661 emacsでslime系試したいなら clojure cider で検索すると良いよ、emacs24の導入からcider入れるまで解説とか結構あるし(slime clojureとかritzは導入辛いからくじけやすい) LTの方がモダンだけどreplの使い勝手はemacs系の方が良い感じ。
675 名前:礼 [2014/12/02(火) 16:51:25.82 ID:l88HCvSs.net] >>662 ありがとうございます。 少し検索してみました。 mizondev.net/d/20131108 のページに、 emacsのpackage.elというのを使ってやってみようとして M-x package-install ciderと打ち込んだら、 no machと出てきてできなかった。 M-x package-ilist-packagesで リストみることができるみたいだから、 見てみたら、ciderというのがなかったです やっぱり、TLかなあ、
676 名前:電波いっぱい mailto:sage [2014/12/02(火) 17:45:06.59 ID:yPPVhR2hD] >>663 パッケージのリボジトリにmarmaladeを追加しないとでてこないよ。 melpaの方はsnapshotが入っているからはじめは使いにくいかも。 リボジトリの追加のしかたはくぐってください。
677 名前:電波いっぱい mailto:sage [2014/12/02(火) 18:22:53.48 ID:mRxW3cCO.net] >>663 パッケージのリボジトリにmarmaladeを追加しないとでてこないよ。 melpaの方はsnapshotが入っているからはじめは使いにくいかも。 リボジトリの追加のしかたはくぐってください。
678 名前:礼 [2014/12/02(火) 21:53:42.09 ID:es1g8IZo.net] >>665 うーん、うまくいかない、ちょっとくやしいです、 多分、 (require 'package) (add-to-list 'package-archives '("melpa" . "melpa.milkbox.net/packages/" )) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packages/" )) (package-initialize) というのを~/.emacs.d/initsというところに書き込めばいいんだとおもう。 ~/ってどういう意味なんだろう、 自分はMacのターミナルを使っているんですが、 そこで、emacs .emacs.d/initsとうって、 そこに上のやつを書き込んだのだけれど、 それでは、うまくいかない、、
679 名前:デフォルトの名無しさん mailto:sae [2014/12/02(火) 22:23:35.39 ID:C370zj97.net] "~/" ってのはユーザのホームディレクトリ。 (expand-file-name "~/") を *scratch* バッファなんかで eval すれば絶対パスを返してくれる。 それと、 ~/.emacs.d/inits ではなくて ~/.emacs.d/init.el だと思う。だから、 $ emacs ~/.emacs.d/init.el とすればいいはず。
680 名前:デフォルトの名無しさん mailto:sage [2014/12/02(火) 22:23:36.88 ID:/Zko0w7N.net] >>666 ~/はターミナル開いたときのhomeディレクトリ 普通だと /Users/<あなたのアカウント名/
681 名前:礼 [2014/12/02(火) 23:34:45.34 ID:es1g8IZo.net] >>667 >>668 教えてくれてありがとうございます、、 たすかります。 えーと、$ emacs ~/.emacs.d/init.elとうって、 そこに (require 'package) (add-to-list 'package-archives '("melpa" . "melpa.milkbox.net/packages/" )) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packages/" )) (package-initialize) を貼付けてみました。 そしてM-x package-install sider としてみたのですが、やっぱりうまくいかない siderは諦めたほうがいいっぽい、、 common lispもやりたいなとおもっています、 clojureとくらべて、どうですかね、、
682 名前:デフォルトの名無しさん mailto:sage [2014/12/02(火) 23:54:23.65 ID:C370zj97.net] >>669 sider じゃなくて cider だよ!w
683 名前:デフォルトの名無しさん mailto:sage [2014/12/03(水) 02:09:24.44 ID:p19oFRz6.net] >>669 その状態でpackage-list-packagesするとcider-0.x.xってのがlistに出るよ
684 名前:電波いっぱい mailto:sage [2014/12/03(水) 14:12:04.41 ID:xmz4UdFc.net] >>669 >>671 init.elを作っただけだと読んでないから読み込ませる。emacsを再起動するのが楽。 また、その設定だとmelpaのが出ちゃうから、melpaは入れない方がいいと思う。marmaladeだけ。
685 名前:電波いっぱい mailto:sage [2014/12/03(水) 14:28:44.52 ID:xmz4UdFc.net] >>669 CLはマルチパラダイムだから、ほんとに何でも作れるし、どのようにでもかける。 でも、新しめの日本語の情報が少ないし、何でも「簡単に」できる訳ではない。 Clojureは、かなり関数型に振っていて、「Clojureならこう書く」みたいなものがあるので、本を一通り読んで理解すれば、Webアプリとか使えるものを作れるようになるのは早い。 裏にJavaがあるので、日本語の情報を含むそれらを、利用できるのも大きい。
686 名前:礼 [2014/12/03(水) 19:57:13.95 ID:lWmi25JI.net] >>670 >>671 >>672 おー、それが、何度試してみても、できないです、、 siderじゃなくciderでやっても、 package-list-packagesでリストを探してみても、できない。 $ emacs ~/.emacs.d/init.elで (require 'package) (add-to-list 'package-archives '("melpa" . "melpa.milkbox.net/packages/" )) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packages/" )) (package-initialize) を書き込んでも、それを消しても package-list-packagesのリストが変わらないです。 多分、書き込んだとき増えてなければおかしいのに。 (require 'package) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packa\ ges/")) (package-initialize) にしてみてもできなかったです、 おそらく、このコンピュータは、自分が狂っていないと信じ込んでいる精神病の患者みたいなコンピュータなんだろう、、 だからciderをやろうとする気持ちは三階の病棟に閉じ込めておいたほうがいいかも。 三階は二階の患者より酷い人が入るところ。 もちろん、そう診断する自分はヤブ医者なんですが、コンピュータを診断する医者としては。外科医としても。そもそも自分はどんな種類の医者でもない。 自分自身の精神科医ですらないとおもう。そんなに上手く精神的に生きている気がしない、、余計なことを書いてしまった。読書します、、
687 名前:デフォルトの名無しさん mailto:sage [2014/12/03(水) 20:06:41.76 ID:K+BrSv2h.net] lighttableでreadって使えないのん?
688 名前:デフォルトの名無しさん mailto:sage [2014/12/03(水) 20:21:41.04 ID:p19oFRz6.net] うちだとこんなんだな (require 'package) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packages/" )) (package-initialize) (when (not package-archive-contents) (package-refresh-contents))
689 名前:デフォルトの名無しさん mailto:sage [2014/12/03(水) 21:39:11.46 ID:jsZy3+TQ.net] Emacsスレで聞いてみるとか
690 名前:礼 [2014/12/04(木) 02:06:25.10 ID:EifX8RrY.net] >>665 >>666 >>677 うわー、多分できた、 いつもはinit.elのところ開いたら一度しめてそれからターミナルでemacsとうってインストールしようとしていた。 でも今回はinit.elを開いたままで、 (require 'package) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packages/" )) (package-initialize) (when (not package-archive-contents) (package-refresh-contents)) を貼って、M-x eval-current-bufferとうって M-x package-install ciderとやったらなんかciderを読み込んでいるみたいになったよ、、
691 名前:デフォルトの名無しさん mailto:sage [2014/12/04(木) 02:15:37.89 ID:uBagqB+X.net] >>678 cider入ったらleiningen管理のプロジェクトの中でcljファイル(project.cljでもいい)開いてからC-c M-jでreplが開くよ
692 名前:! [] [ここ壊れてます]
693 名前:礼 [2014/12/04(木) 19:53:34.22 ID:ujZTdShy.net] >>679 leiningenというのがどういうものかよくわからないけど、 とりあえず、lein new sampleとやって emacsで、M-x cider-jack-inってやったらできるようになった よかった、、 けど、なぜかC-c C-jでははじめられなかった。
694 名前:礼 [2014/12/04(木) 19:55:04.23 ID:ujZTdShy.net] あ、C-c M-j、、
695 名前:電波いっぱい mailto:sage [2014/12/04(木) 21:50:43.67 ID:gxSGbnnh.net] >>678 >いつもはinit.elのところ開いたら一度しめてそれからターミナルでemacsとうってインストールしようとしていた。 でも今回はinit.elを開いて これって、init.elの場所が間違ってるんじゃない? もしくは、保存しないで閉じてるとか?
696 名前:礼 [2014/12/05(金) 19:26:25.51 ID:x1r9cuUq.net] >>682 ターミナルでemacs ~/.emacs.d/init.elと うったらnit.elが開けるとおもっているんですが、、 それで間違っていたら開けていないかもしれない。 保存は、 開いてC-x C-sで保存?してC-x C-cで脱出してます、、
697 名前:礼 [2014/12/06(土) 23:49:38.91 ID:i3Rn7LUz.net] >>659 純文学という感じでしょうか、、
698 名前:デフォルトの名無しさん mailto:sage [2014/12/07(日) 14:22:55.49 ID:Jx6Y4qFX.net] 開発環境が最小の状態に慣れておかないと、マシン替える度にイライラする そんな私もsurfaceproでメモ帳コマンドプロンプトです
699 名前:礼 [2014/12/08(月) 18:07:29.67 ID:5xrTpuJG.net] >>685 本を読むときもそういう習慣は役に立ちそうですね。 closure、自分はネットの情報だけで勉強しようと思っています、、 でも、やっぱり、本買わないとだめなのかな。 他に欲しい本がたくさんあって、お金がない、、
700 名前:デフォルトの名無しさん mailto:sage [2014/12/08(月) 19:24:27.66 ID:F4bca2XM.net] よし、体売ってこい つるはしを振るうんだ チンポるるうなよ
701 名前:礼 [2014/12/08(月) 20:56:36.65 ID:5xrTpuJG.net] >>687 おー、 筋トレをお金に変換、、
702 名前:デフォルトの名無しさん mailto:sage [2014/12/09(火) 22:55:35.94 ID:aSBE7sLo.net] 開発環境ポータブルに出来れば、usbストレージやクラウドにというのもあり
703 名前:デフォルトの名無しさん mailto:sage [2014/12/23(火) 11:34:02.48 ID:FV7c0C0V.net] ライブラリが膨大だからカタログてきな参考書に目を通しておいたほうがいいね。 できるだけ新しい情報で
704 名前:デフォルトの名無しさん [2015/01/02(金) 08:28:07.96 ID:40BDq3Bs.net] 質問です。 defrecordでレコード型を作ってprotocolでメソッドを追加する事でjavaのクラス相当の物が作れるのはいいんですけど コンストラクタってどうするものなんですか? (->xxx 〜) だとすべてのデータを直接指定しないといけないし。 型の内部に持たせるのではなくて、別関数として定義するやり方が一般的なんでしょうか?
705 名前:デフォルトの名無しさん mailto:sage [2015/01/02(金) 10:34:08.22 ID:YBPhwGd5.net] (defrecord YourReord [ v1 v2 andmore]) (YourRecord. 1 2 3) => { :v1 1 :v2 2 :andmore 3} で普通にレコード生成できるっしょ?
706 名前:デフォルトの名無しさん [2015/01/03(土) 16:53:30.80 ID:nLUbwEH9.net] >692 何か色々勘違いしてました。ありがと。 ついでにさらに質問で。 下記だと問題なくassocが使用できるけど、 (let [d [0 0 0 0 0]] (assoc d 0 999)) => [999 0 0 0 0] 下記はエラー。 (let [d (take 5 (repeat 0))] (assoc d 0 999)) => エラー(lazySeqをキャスト出来ない〜) エラー内容からrepeatで作成した遅延シーケンスはassocを使えないってことらしいけど takeで取り出しても遅延シーケンスってこと? 5つ位のシーケンスなら直接記述してもいいけど、もっと大きいサイズで assocが使えるようなシーケンスを作成する場合はどうしたらいいんでしょうか?
707 名前:デフォルトの名無しさん mailto:sage [2015/01/03(土) 17:14:44.67 ID:VHcKNT7s.net] vec使ったら
708 名前:デフォルトの名無しさん mailto:sage [2015/01/03(土) 22:35:36.09 ID:xxy0Tk3f.net] >>693 assocは基本mapに使う vectorへのassocは (assoc vector-data index value) listへは使えない なので (take n somting)の結果がlistなのでエラーになる もしどうしてもtakeした結果に使いたいなら (let [d (take 5 (repeat 0)] hogehogeでなく (let [d (vec (take 5 (repeat 0))] (assoc d ... にしないと駄目
709 名前:電波いっぱい mailto:sage [2015/01/07(水) 13:25:19.06 ID:RbdNG2kP.net] >>693 シーケンスにassocを使いたい理由がわからない。 多分、方法が間違ってる。
710 名前:デフォルトの名無しさん mailto:sage [2015/01/23(金) 15:50:23.04 ID:q8ayYuMd.net] ringのwrapper経由でurlのparamとかpostのparamをキーワードにしてるけど、これって外から延々違う文字列でquery stringのnameを食わせるとサーバ落ちたりしないのかな? Clojureのkeywordってstaticな内部辞書に載っちゃうのでgcされないよね? (doseq [id (range 1000000)] (keyword (str "hoge" id))) (System/gc) ってやるとkeywordで作ったメモリは帰ってこないから延々やれば落とせるんだろうけど(↑ので8MByte位食う) 8M潰すために100万回httpリクエストされる方が非道いと言う事なんだろうか?
711 名前:デフォルトの名無しさん mailto:sage [2015/01/23(金) 18:56:18.19 ID:utqj4QgC.net] >>697 (System/gc)でガーベッジコレクタが確実に動作するとは限らないぞ。
712 名前:デフォルトの名無しさん mailto:sage [2015/01/24(土) 22:52:59.88 ID:xWCxxmVh.net] Javascriptのソースを難読化するためにClojureScriptで書き直しはじめたんだけど、 ClojureScriptの難読化って直感的には結構なものだと思うんだけど、みんなはどう思う? :optimizations :advanced で読みづらくなってる上に、Clojureコードをコンパイルしたjavascriptコードだから、コンパイルのルールを分かってないとすごく読みづらくなると思うし
713 名前:デフォルトの名無しさん mailto:sage [2015/01/24(土) 23:22:54.22 ID:AxJ1ZwJl.net] 難読化なんて意味ない事しない。
714 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 05:49:08.67 ID:IAlWKeKG.net] >>697 キーワードのテーブルはWeakReference使ってるからGCされるで
715 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 05:58:35.91 ID:ITyso3aB.net] >>699 なんだ、こいつ 精神病?
716 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 08:03:17.05 ID:HK7FfI78.net] ChromeAppとかスマホアプリで、プロダクトを作ろうとすると必要になるでしょ? -> 難読化
717 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 08:09:10.77 ID:SZuCIDm7.net] >>703 いや別に必要無いけど。
718 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 19:15:33.32 ID:/ILbZFHt.net] >>700 ソースコードを納品するときには難読化してる
719 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 21:02:22.01 ID:psVbrQV/.net] >>705 本当にそんなところあるのか…誰も得しないような気がする
720 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 21:07:43.25 ID:TpVzkFBJ.net] 難読化なんて大した効果はない ていうかクズプログラムなんてわざわざ解読されないよ 価値あると思われればたかが難読化なんてプププだし ま、それでも依頼もあって、うん十年前はn88-BASICソースを難読化したけどな わははははは 馬鹿には読めないソースにするには 継続を使った末尾再帰で書くのがいいな あはははははは
721 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 21:13:05.43 ID:/ILbZFHt.net] 2000年問題のときに、コードの難読こそが給料の素だと経験により理解した
722 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 22:11:14.99 ID:SZuCIDm7.net] 仕事なら複数人でするから難読化などあり得ない。 ソースで納品してメンテナンスを他に回されても どうせ(ゴミのようなソースになって)戻ってくるので 難読化しない。 勿論引き継ぎはメンテナンス契約じゃなくて新規契約でw。 趣味でプログラムするならメンテナンスを自分でするから 難読化などあり得ない。 どちらにしろ難読化する必要がない。
723 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 22:28:44.24 ID:/ILbZFHt.net] ソースの難読化はあくまでも納品時です 専用のスパゲッティ化スクリプトもきちんと用意してます 移行までやったら、どうせソースなんて見やしないので、問題が起きるまでそのままです 酷いときは、納品したコードすら紛失してます 一方、趣味や社内のコードは極限まで読みやすくします 難読化する目的はたった一つ 「コードをいじらせない」です
724 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 22:31:38.75 ID:khShqkpM.net] 難読化が必要なのってAndroidのアプリコード位じゃないのけ?(カジュアルパクリ防止とアプリサイズ縮小にしかならんけど) Web用のJSで難読化必要ってのはカジュアルコピーして欲しくないってだけならcljsでadvancedな最適化かければ十分じゃないの?(まるパクはどうしようもないのは難読化と関係ない)
725 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 22:34:32.24 ID:khShqkpM.net] >>710 良く其れで金もらえるよね、難読化されたソースなんて納品したら普通はRejectされるよ? SQLインジェクションで開発会社が3割賠償責任おわされた判例でてるし、難読化して事故ったら全責任おわされても文句言えないんじゃないかな?
726 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 22:42:27.78 ID:/ILbZFHt.net] >>711-712 Cとlisp系の良いところは正しく難読化できる点だから、難読化と正しさは関係ない そもそもSQL文やHTMLが壊れる理由は、「納品先が勝手にコードをいじるから」だし 我々のところはソースをソースのままスパゲッティにしてるからまだいい方で、酷いところ(大手)になると、ソースコードにアセンブリ埋め込む形式の難読化してる
727 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 00:15:49.00 ID:X+/5coMG.net] SQLインジェクションってSQL壊れるのとはなんの関係もないような・・・。 ソースにアセンブリ埋め込むのって高速化のためには普通にするような気がするけど、 難読化のためにすることもあるものなの?
728 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 00:33:55.66 ID:Ly3CAIWB.net] だから勝手に文字列をエスケープする関数を外すなとあれほど…
729 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 08:10:37.27 ID:Ts/Sr/RD.net] >ソースコードにアセンブリ埋め込む形式の難読化してる ここ嗤うところですよね
730 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 11:20:28.26 ID:KoGaV5c9m] 難読化したソースコードを納品できるとかわけわからん ソースコードを納品する意味がないだろ
731 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 21:26:27.49 ID:RXvh4ou7.net] clojureは知らんけど、 CLだとマクロを全部展開しちゃえば読む気も起きなくなるという意味で難読化みたいなの昔読んだな
732 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 21:28:42.11 ID:Ly3CAIWB.net] 改行全部削除するだけでも効果的
733 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 21:44:49.32 ID:scuLqwMl.net] いまiOSとAndroid(とchromeアプリ)でアプリ作ってて、 極力楽しようとしてWebView主体で作り始めたからJavascript難読化しないといけなくなったのです。(WebViewで作るのは結局良くないといまは思いますが・・・) iOSやAndroidだとJavascriptファイルは丸見えになるので、部分的にでも丸パクリされたら嫌だなと思って。 まあ、ClojureScript初めてやってみて、最初はDOM操作とか苦労したけど、core.async を使って非同期処理を同期処理のようなコードで書くやりかたはすごく面白かった。Javascriptのコールバック地獄にはうんざりしてたから
734 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 21:48:26.22 ID:Ly3CAIWB.net] >>720 Javaとかclojureなら、オブジェクトをシリアライズすればいいかと
735 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 22:57:49.23 ID:scuLqwMl.net] >>721 Androidでシリアライズしたオブジェクトでアプリを動かすのって面白いアイディアですね。思いもよらなかった。できるんだろうか・・・ とはいえ、Webviewで動かすjavascriptはファイルに書いとかなきゃいけなくて、このファイルはアプリのアーカイブを展開すると丸見えなんですよ
736 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 22:59:06.41 ID:scuLqwMl.net] でもシリアライズしたオブジェクトを使うためのクラスファイルが必要になるから、どちらにせよソースは必要ですね
737 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 23:03:24.81 ID:Ly3CAIWB.net] >>722-723 むしろ、シリアライズオブジェクトを展開するソースはきちんと公開してオープンで開発した方がよいかと
738 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 23:09:19.30 ID:scuLqwMl.net] デシリアライズしたオブジェクトを使うためにはそのオブジェクトのクラスって必要なかったでしたっけ?
739 名前:デフォルトの名無しさん mailto:sage [2015/01/26(月) 23:15:53.57 ID:Ly3CAIWB.net] クラスの有無よりもクラスの同一性の方がやっかいだった記憶がある
740 名前:電波いっぱい mailto:sage [2015/01/27(火) 08:33:55.08 ID:blz7EWSTv] 伸びてるとおもったらClojureと関係なくて笑った。 商用でも個人用でも難読化する理由なんて様々だから、一般的な是非の話など意味ないと思う。 難読化の効果としては、ClojureScriptで書いただけでかなり読みにくいjsコードだと思うし、advancedだったら、上の下くらいには困難だと思う。
741 名前:デフォルトの名無しさん mailto:sage [2015/01/29(木) 00:26:07.52 ID:mTH1pwOm.net] デスクトップアプリとかをバイナリ納品してたようなところは、スクリプト言語でもobfucationするとこはあるみたいだね。 ソース納品の場合は別料金で、さらに著作権譲渡せず、利用権貸与という契約もある。 phpでもある。元は海外製なので海外でも需要あるのかな? www.asial.co.jp/ioncube/encoder/gui_manual/settings_obfuscation.php javaの場合もclassファイルやjarで納品は聞くので、逆にscalaやclojureで納品出来る場合もあるらしい。 ただ、普通のjsやtsでも、cljsみたいにminifyやobfucation掛ければいいので、それが理由でcljs使う必要はない気がするが。
742 名前:デフォルトの名無しさん mailto:sage [2015/02/17(火) 10:08:49.06 ID:HzudLjaJ.net] Boot使ってる人いる?
743 名前:デフォルトの名無しさん mailto:sage [2015/02/17(火) 17:36:31.38 ID:TUaKLPcf.net] Clojure Gazzetの記事で見たけどいまいち何が変わるのかがわかんないので困ってる Clojureで作り込みしたプロダクトにswankサーバ同封してるせいで利点が見えないっていうか
744 名前:デフォルトの名無しさん mailto:sage [2015/02/17(火) 17:37:41.92 ID:TUaKLPcf.net] >>730 は >>729 のBootの件ね
745 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 04:10:34.36 ID:RMVSmAx/.net] bootは、フロントエンドのツールチェインが多いjsみたいな、cljs環境を意識して作ったとなんかで見た。
746 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 04:23:57.95 ID:RMVSmAx/.net] leinは二回呼び出すから重いという話はあるね。 bootもそこは同じかな。 https://github.com/boot-clj/boot/blob/master/README.md 単純にclojure二回呼び出さないという点なら、昔はruby gemだったcakeとかあった。 先に立ち上げておいて、ストックしておく方法もあるけど。
747 名前:デフォルトの名無しさん [2015/04/17(金) 00:00:53.05 ID:8Ijoxuo8.net] sourceforge.jp/magazine/15/04/16/144600 CLojureCLRでネイティブプログラム生成できそうだな
748 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 16:36:56.82 ID:ZCMgfOu6.net] いままでも、sgenまたはmono --aot, mono --llvm --aotは出来たけど、RyuJITと共通というのが特色らしい。
749 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 16:41:49.13 ID:bZyz08BX.net] Windowsも*nixもMacもiOSもAndroidもClojureで行けるとオモタけどちがうっぽい?
750 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 16:58:44.86 ID:ZCMgfOu6.net] AOT使うとiPythonでもGUIの起動は速くなる。 ClojureCLRならrepl起動も早くなるが、ループなどの最高速はJITより最適化し難い。
751 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 17:03:02.34 ID:ZCMgfOu6.net] >>736 desktopとandroidはjavaのJVM IOSはjava2objcがあるので、Clojureでいける。 ClojureCLRは、いまのところUnity3D(のデスクトップ環境)でつかったり、WinでWPF使ったりとかぐらいかな。
752 名前:デフォルトの名無しさん mailto:sage [2015/05/07(木) 12:51:41.83 ID:gx7/6L+t.net] www.infoq.com/jp/news/2015/05/microsoft-llilc-llvm-compiler ClojureのLLVMの実装がもうじき実現するな
753 名前:デフォルトの名無しさん mailto:sage [2015/05/09(土) 21:12:09.66 ID:6h8WVvO7.net] mono llvmだと、実装がない場合はmono vmにフォールバックしてたけど、どんな感じなんだろう。 mono llvmの場合は、startupに時間かかるけど、数値計算などが速くなったはず。 www.mono-project.com/docs/advanced/runtime/docs/llvm-backend/
754 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 20:18:54.60 ID:uj8dQgdW.net] uberjar→VPSにscp→nginx設定→java -jar こんなに簡単に出来ていいのか
755 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 20:32:25.24 ID:dl+rXweg.net] >>741 大規模にamazonつかってるとpalletとか使うともっと幸せに
756 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 18:15:11.55 ID:VJLGoFo1.net] Clojure 初心者なんですが、勉強するためのリソースを知りたいです。 あと日本人でツイッターフォローしておいた方がいい人とかいますか?
757 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 18:46:50.39 ID:jqCf9UHL.net] >>743 日本語だったら https://www.google.co.jp/search?client=safari&rls=en&q=gpsoft+clojure+kindle で出てくるgpsoftのclojure kindle書籍三冊とか あとは英語ならClojure GazzetとかのML
758 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 18:52:12.75 ID:rVbuZbAc.net] 日本語ならプログラミングClojure(孔雀)とQiitaくらい?
759 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 20:05:28.96 ID:VJLGoFo1.net] >>744 紙の書籍はダメなんですね。 ちょっと読んでみます、ありがとうございます!
760 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 20:06:39.36 ID:VJLGoFo1.net] >>745 案外少ないんですね。 Qiita まとまりがない気がしたんですが、そうでもないんですね。 ありがとうございます。
761 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 15:16:37.13 ID:5sYF/T/a.net] プログラミング初心者かどうかによって変わりますよね。 もしプログラミング経験があって、英語が読めるのであれば、次の本が良いと思います。巻末にClojureの短い入門がついています。 https://pragprog.com/book/dswdcloj/web-development-with-clojure
762 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 15:26:39.30 ID:rWuOTYr3.net] 「…よね」とか言うやつは精神病ぽくていかん
763 名前:デフォルトの名無しさん [2015/06/08(月) 16:22:10.16 ID:rJB8iCDI.net] >>749 おまいが病院逝けω
764 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 16:57:40.49 ID:ZMbPAywj.net] 「…よね」とか言うやつは精神病ぽいよね
765 名前:デフォルトの名無しさん [2015/06/08(月) 20:28:34.03 ID:AXPER4TO.net] 「「…よね」とか言うやつは精神病ぽいよね 」とか言うやつは精神病
766 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 20:44:02.11 ID:rWuOTYr3.net] 「…よね」とかいうやつはマジレスするとただのバカ 二流以下的社会での表現だな それを精神病なんだよとオブラートしてやったのに
767 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 20:51:07.02 ID:bPcbWOEv.net] IDが出るようになってからただの煽り合いに終始する低レベルな板に成り果てたな
768 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 03:24:36.79 ID:PVVA8Vxp.net] なったんじゃなくて もとからそうだっのが ばれただけなんですよね
769 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 06:56:29.26 ID:QNGnbMWJ.net] >>748 ググったら第二版が出るみたいなので、それを待とうと思います。
770 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 07:08:49.86 ID:KNd4rBRo.net] P2.0はもうでてるぞ。
771 名前:デフォルトの名無しさん [2015/06/09(火) 11:01:38.41 ID:zYTkc1Sl.net] y
772 名前:ogthos.net/posts/2015-04-14-Web-Development-with-Clojure-2.html 今夏でしょ? [] [ここ壊れてます]
773 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 15:52:31.84 ID:5fSdXMUj.net] P2.0とは別なのか。楽しみだけど、本当に夏に出るのかしらんw
774 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 16:39:34.42 ID:fY/pgtrq.net] >>759 あの出版社は、正式な出版前の本をベータ版として買えるようにしているけど、 まだ出ていないところを見ると夏には厳しそうな気が。
775 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:02:21.26 ID:UgX2HyeQ.net] 後輩育成のために プログラミングClojure第2版買い書店に行ったんだけど、 中小規模の書店でも平積みで何冊も置いてあった。 意外ととClojure来てるんじゃないかと思った。 関数型プログラミング押しの本も目立ってたし。 まぁ、ユーザー増えすぎるとロックインできなくなるけどね…
776 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:09:10.06 ID:CZaX0Ile.net] プログラミングClojureは翻訳の質が保証されてるから買いやすい なおClojurescript
777 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 21:11:34.86 ID:ZbqvNuzj.net] 書店で平積みの本が増えると「このジャンルも終わりだな」と思うようになった 「終わり」の意味は、「知ってると給料が上がるのではなく知らないと給料が下がる」
778 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:30:28.77 ID:UgX2HyeQ.net] >>763 Clojureで稼げる案件をお持ちであれば是非ご紹介いただきたいですね^^
779 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:35:33.56 ID:ZbqvNuzj.net] >>764 昔はアプリを作る高級言語は lisp か C の2択だった そのときにlispで作った資産を、今のJVMで動くようにする仕事のときは儲かった 1990年代のサーバ系は lisp で作ったやつが多いから、探してみよう
780 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 00:40:36.18 ID:mxjEMfHB.net] そいつはすげーや、 俺には無理だ、Clojureからlisp入ったんだもの
781 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 09:44:43.51 ID:A64/1XTV.net] 普段はScheme使ってるのでLisp全般には慣れてるけど Javaはよくわからない そんな
782 名前:ゥ分にお勧めのClojure入門書ってありませんか? [] [ここ壊れてます]
783 名前:デフォルトの名無しさん [2015/06/20(土) 10:20:52.62 ID:X5oJjLmp.net] >>767 プログラミングClojureでいいんじゃない リファレンスはREPLでdoc読めばいいし例がほしければ clojuredocs.org/
784 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 10:23:57.24 ID:oPIOHJmn.net] プログラミングClojure一択じゃない? Webアプリの章はもう使えないけど
785 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 14:09:46.96 ID:lE0SRYnt.net] 翻訳されてないのでよく見かけるのはここらへん。 BaTは、オンラインであるのが大きいかな。 Clojure 1.3- Clojure Programming (2012) Clojure1.6- The Joy of Clojure, Second Edition (2014) Clojure for the Brave and True (online) www.braveclojure.com/
786 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 14:10:59.09 ID:lE0SRYnt.net] Clojure1.2と1.3の間に大きな断絶があったけど、 それ以降は、最適化や機能追加がほとんどだとおもうので、 プログラム自体は1.3に則ってかけば1.7で動くはず。 https://github.com/clojure/clojure/blob/master/changes.md mapやsetみたいに、たまたまorderedな実装で動いてたのが、 変わって動かなくなるライブラリとかあるけど。
787 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:52:31.48 ID:ghFblFiJ.net] Clojureから Javaのclassの中のpublic static void main(String[] args) を呼び出す方法がわからない public static void hellow() なら ClassName/hellow で呼び出せるのに ClassName/main だとエラーになる
788 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 11:01:42.21 ID:vToOg2t5.net] まさか配列の引数ってことはないよね?
789 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 13:43:56.73 ID:hAOMkAbd.net] >>773 おれもそう思った
790 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 07:19:38.74 ID:goqHZtw7.net] https://github.com/swannodette/delimc これを動かしたいけど project.cli ってどう書けばいいんだろう 手動でダウンロードしてsrc 以下にdelimic/coreというディレクトリ作っても うまく動いてくれない
791 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 09:29:37.82 ID:EoRNx9lp.net] >>775 Leiningenは使ってるの?
792 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 09:48:31.40 ID:fUlCJROE.net] >>775 自分のプロジェクトの src/delimc/core.clj にgithubからrawファイルコピペしたら普通に動いたよ git cloneしたものを使うならローカルリポジトリにinstallしてproject.cljのdependencyに [delimc "0.2.0"]って書けばよくね? なおclojarsだと0.1.0しか無かった
793 名前:デフォルトの名無しさん [2015/06/22(月) 09:57:22.42 ID:nboh/a20.net] 切れすぎ
794 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 17:42:15.28 ID:2Ao8Xtyy.net] Clojureで継続使いたい場合はこっち使うのが推奨ってことでいいのかな www.clojure.net/2012/03/24/Continuation-monad/
795 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:51:30.58 ID:XTmBAD/B.net] 継続を使って何がしたいわけ?
796 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 09:42:25.02 ID:ngztl1PG.net] 抜かずの3発かなぁ
797 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 11:56:46.04 ID:1d77gFDC.net] pythonのscikit-learnが便利すぎる Clojureで作ってしまったプログラムと うまく組み合わせる方法ないものでしょうか leinをコマンドライン実行を pythonのsystem.osから実行するのが簡単かもしれないけど カレントディレクトリの指定をどうしたものか
798 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:08:26.02 ID:Ag+Ez/h4.net] >>782 普通に jar 作ってしまえばいいんじゃねーの?( lein 呼び出すのは重いし) あと fs ってライブラリ使えば簡単にカレントディレクトリ取れると思う。
799 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:10:57.38 ID:Ok1luf1O.net] >>780 scheme資産の流用をしたい
800 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 15:17:46.11 ID:EeQiqsFc.net] プログラミング closure 読んでるんだが6章で初めて出てくる -> の説明が何処にもない
801 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 15:35:21.21 ID:1I5SLscW.net] >>785 マクロやね (doc ->) ------------------------- clojure.core/-> ([x & forms]) Macro Threads the expr through the forms. Inserts x as the second item in the first form, making a list of it if it is not a list already. If there are more forms, inserts the first form as the second item in second form, etc. formは関数の並びでxを最初関数の第一引数に突っ込んでその結果を第二関数の最初の引数に以下略な形にしてくれる user=>(macroexpand-1 '(-> 1 inc (+ 1) (+ 2) (* 3)) ) (* (+ (+ (inc 1) 1) 2) 3) こんな風になる 前の関数の結果をケツにしてくれる ->>ってマクロもある
802 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 16:07:08.70 ID:O5DXQOTX.net] >>785 これ覚えておくと超便利だぞ。
803 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 16:19:27.24 ID:2uHODUNV.net] というかこれないと関数のネストがヤバいことに
804 名前:デフォルトの名無しさん [2015/06/27(土) 17:14:07.79 ID:CmsG8aAe.net] スレッディングマクロ最高よね
805 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 08:41:32.80 ID:T9BA7Qai.net] matchマクロで...が使えないのだけど 代わりの手段が何かあったりします?
806 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:55:57.06 ID:a0oplYwD.net] デフォルトで入ってるマクロ以外のマクロは無しの方向にしませんか
807 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 17:02:14.83 ID:uLxN7juh.net] leiningenってJavaのパッケージは自動でダウンロードしてきてくれないの?
808 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 17:04:52.48 ID:uo6R+/rX.net] >>792 Mavenのリポジトリならダウンロードするけど、何がダメなん?
809 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 18:36:56.46 ID:hIsoJUif.net] マップのキーワードに日本語を使うプログラムが普通に動いてしまって驚いてる
810 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 18:39:43.12 ID:hIsoJUif.net] マップのキーワードに日本語を使うプログラムが普通に動いてしまって驚いてる ({(keywaord "日本 料理") 90 (keyword "アイス" 4} (keyword "日本 料理")) このままもっと複雑なプログラム作っていっても問題ないのだろうか
811 名前:デフォルトの名無しさん [2015/06/29(月) 21:10:46.91 ID:jEZLfwei.net] 実装見れば?特に驚くようなことじゃない https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Keyword.java https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Symbol.java
812 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 02:59:54.16 ID:HIKgKluT.net] javaの内部エンコーディングはutf16だし、通常通りファイルエンコーディングを utf8にして、エンコーディングを合わせてる限り無いとは思う。
813 名前:デフォルトの名無しさん [2015/06/30(火) 11:49:44.87 ID:5/fQWLo+.net] >>797 Javaでいう変数名と勘違いしているようだけど全然違う話だぞ
814 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 01:16:58.15 ID:dlscpTQ4.net] >>798 ん?文字列だと思ったんだけど、なぜに変数名?
815 名前:デフォルトの名無しさん [2015/07/01(水) 03:02:14.71 ID:PhVrWrz6.net] >>799 まさか文字列リテラルのこと? それは深読みしすぎだったが、そもそもキーワードにって書いてあるの読めなかったの?
816 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 12:07:43.91 ID:z/KDpVAR.net] :日本(半角スペース)料理
817 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 13:08:50.98 ID:xhUgkep8.net] mavenにkawaとABCLがあるんだけど ClojureからkawaやABCLが使えるってこと?
818 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 19:52:40.00 ID:4RTBoCuF.net] おいしいClojure ざっと見てみた感じあんまりおいしくないような感じするのは 普段使ってるのがPythonで豊富すぎるライブラリが 当たり前に感じてるからなんでしょうか
819 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 19:58:01.77 ID:UaXrhJN5.net] 前に立ち読みしたときに既に古くて使えないライブラリがけっこうあったような
820 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:45:50.57 ID:1TzmIX3q.net] >>802 何の話してるのかよく分かんないけど、それは出来ると思う
821 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:50:26.84 ID:zFXA0WTo.net] Javaと一緒でなんだかんだ言って移植性が低すぎる
822 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 10:10:15.10 ID:ThPkJ/+I.net] >>806 移植性の高い低いって何で決まんの?
823 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 10:31:13.07 ID:vGUPxdrf.net] そりゃJVMと一蓮托生よ
824 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 11:27:28.07 ID:1j8Z8n9B.net] 理想としては leinとproject.cljをjavaのインターフェイスとして使って 主体のプログラムはkawaで書いて racketとも互換性があるようにしたい
825 名前:デフォルトの名無しさん [2015/07/04(土) 15:17:09.17 ID:n0O10IcO.net] 意味不明 せめて例示を
826 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 18:06:24.23 ID:ThPkJ/+I.net] そこまでしないといけない理由が全く持って分からないし、Scheme処理系なんてそもそも互換がお互いにほとんどないじゃん。それもRacketとかRacket languageだし。
827 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 21:51:58.00 ID:V2uWXOcR.net] >>807 移植性が高い = コンパイラ・インタプリタがインストールしてあれば、ソースコードをコピーすればそのまま翻訳実行できる いままでの経験
828 名前:縺A一番移植性が高いのはC言語 Javaは… [] [ここ壊れてます]
829 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 22:12:12.38 ID:0/RKLMEi.net] >>812 JVMがあればそのまま実行できるじゃんよ ClojureとClojure CLRだとJVM依存ライブラリ(jettyつかってるとかapache commonsとか)があるとソレの移植からになるのを懸念してるの?
830 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 22:16:40.32 ID:V2uWXOcR.net] >>813 javaはそもそも10年前のコードがコンパイルができない clojureはleinみたいなモノを使わないと、ライブラリで何を使ってるかすら把握できない
831 名前:デフォルトの名無しさん [2015/07/04(土) 22:32:24.41 ID:n0O10IcO.net] >>812 >>814 Cで同じコードがそのまま動くなんてラッキーくらいの感覚だけどな まあこの10年だけで考えるならワードサイズも32bitでよかっただろうし、リトルエンディアンだけ考えてれば十分だったのかもしれないけど で、10年で見るならJavaだって似たようなもんじゃないかと思うがコンパイルできないってどんなコード?
832 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 22:44:01.81 ID:0/RKLMEi.net] >>814 C はAutoConfがー RubyはGemがー 他多数 ですが?
833 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 22:50:07.63 ID:ItRolA6R.net] Javaについては、90年代のプログラムをコンパイルしようと思うと コレクションフレームワークのところでコケるかもしれない。 それ以外は大丈夫だと思うけど。
834 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:11:09.88 ID:V2uWXOcR.net] >>815 ・文字列処理(java.lang.Characterのメソッド) ・文字コードで分岐する処理 ・日付(java.Dateのメソッド) ・型チェック(警告いっぱい) ・<>指定しないとコレクション使えない点
835 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:16:12.23 ID:V2uWXOcR.net] >>816 Cは、10年前に gcc file.c でコンパイルできてたモノが、コンパイルできなくなるなんてないしな… Rubyにはそもそも互換性なんか求められてない
836 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:33:17.97 ID:ItRolA6R.net] >>818 10年前には当たり前なことだらけなので、 当時のコードを書いた人の技術力が足りなかったのでは。
837 名前:デフォルトの名無しさん [2015/07/04(土) 23:42:10.87 ID:n0O10IcO.net] >>819 gccの動く環境だけで移植性を語ってたのか・・・ つかgccが動いてもCPU次第だし標準ライブラリのみでやってたわけじゃないと思うけどな
838 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:43:41.89 ID:V2uWXOcR.net] >>820 それより技術力が低いときに作ったはずのCがきちんとコンパイルできてるんだから、教訓としては、できてから10年しか経ってない言語で書くなということでしょうね
839 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:47:10.33 ID:V2uWXOcR.net] >>821 gccが動けばOKというのは心強い WindowsとUnix関係なく移植できるし ライブラリの話までしだしたら、javaは標準APIの階層から変わってるしな… clojureにいたっては、ネットワーク接続して頻繁にライブラリ更新するのが当たり前だしな…
840 名前:デフォルトの名無しさん [2015/07/04(土) 23:55:48.86 ID:n0O10IcO.net] >>818 > ・文字列処理 CSIなCと比較できないっしょ > ・文字コードで分岐する処理 基本的に上と同じ指摘になるが、そもそもどういう処理だとJavaでコンパイルできない? > ・日付(java.Dateのメソッド) Cなんかtime_tのサイズも違うし分解能もプラットフォームごとにいちいち考慮するぞ > ・型チェック(警告いっぱい) このあたりは既に >>815 で指摘したとおりだが、そもそもdeprecatedなメソッドはちゃんと警告でるだけかなり親切だと思うがな > ・<>指定しないとコレクション使えない点 使えない?
841 名前:デフォルトの名無しさん [2015/07/05(日) 00:01:50.24 ID:EDD7h1SP.net] >>823 ずっと規格とか言葉の定義があやふやなままだけど、gccが動くってのもGNU tool chainが動くって意味だね Unixって書いてるけど本当にUnixなら間違いだし知ってて書いてるとは思えない 自分定義で移植性を語るならもう少しみんなに分かるように定義してくださいね
842 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 00:16:09.10 ID:6U0/+Enp.net] >>825 ここでの移植性を次のように定義すればどうでしょう 大学の演習で処理系に付属しているAPI以外を使わずに作成した ・行交換するGaussの消去法のプログラム ・自作Prologの処理系 ・エコーサーバログラム のソースコードが、32bitか64bit かに依存してコードを書きかえることなく、 ・Windows8.1 (MinGW gcc, JDK javac) ・Solaris11 (付属のcc, JDK javac) ・Ubuntu10 (gcc, JDK javac) の最新バージョンで動く
843 名前:デフォルトの名無しさん [2015/07/05(日) 00:36:21.06 ID:EDD7h1SP.net] >>826 移植性という言葉を使うには狭いかな せめて実用的なプロダクトベースのコードで語ってほしいし、 JVMで動くJavaとCを比べるならハードウェアアーキテクチャ抜きに比較するのは不適切だし、 10年前云々がすっぽり抜けちゃってるぞ
844 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 02:34:42.80 ID:ex8y+zyl.net] その定義ならClojureとLeiningenの 組み合わせでまったく問題ないじゃん。
845 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 06:35:28.36 ID:EoM2Wfz5.net] 移植性の意味が10年前のコードがコンパイルできるかって話になってて驚いてる。 Javaの10年前というと時代的にJDK5になるのな。JDK5時代に書いたコードがJDK8で動くか、なら限りなくほとんどのコードはそのまま動くんじゃないの? (知ってる限りでもAPI階層から変わったものなんて山のようにないし、それこそ警告が出てくるんだからそれ変えるだけで普通に動くと思うんだが) JDK8で書いてJDK5で動かすのは当然無理だけど。 あとは指摘されてる通り、JVM動けばアーキテクチャ依存なコードを書かない限りは動くでしょ (ウェブアプリケーションならほとんど引っかからない問題な気がする(過去に1.4で動いてたのを6か7でコンパイルしてワーニング出たくらいで収まった経験ならある))
846 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 06:36:52.54 ID:EoM2Wfz5.net] Clojureの話はどっかに書いてあったけど、Clojure1.3から1.7までならほとんどの標準ライブラリは動くと思う(deprecatedは仕方ないとして)。そもそもproject.cljにclojureのバージョンまで指定しておけばどこでも同じバージョンになると思うし、JVM動けば動くんじゃないの? 外部ライブラリだって日々更新していく方針を取らなければ、ずっと古いバージョン使えるわけだし。 なんか間違ってる?
847 名前:デフォルトの名無しさん [2015/07/05(日) 13:20:49.21 ID:18+ya5CF.net] うん
848 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 23:24:23.30 ID:W3uesJYK.net] leinがデフォルトで生成するディレクトリ構造だと src/projectname/core.clj に全部書いてねって感じだけど core.cljが巨大になってきたので my-util.clj io-util.clj etc-util.clj みたいな感じでファイルを分けたいのだけど src/my-util.clj と src/projectname/my-util.clj のどっちが推奨なんです? javaのプログラムもsrc/以下に放り込むのが推奨スタイル?
849 名前:デフォルトの名無しさん [2015/07/05(日) 23:57:33.00 ID:EDD7h1SP.net] >>832 このあたりの設定例読んで、 https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L278 みんながどうやってるか眺めて好きなやり方をとればよい https://github.com/search?l=Clojure&q=clojure&type=Repositories&utf8=%E2%9C%93
850 名前:電波いっぱい mailto:sage [2015/07/06(月) 20:04:01.75 ID:z0yxLIYt.net] >>832 僕なら、utilディレクトリを作って目的別のファイルに入れる。 でも、etc とか、my とかは目的名じゃないからもっと考えて命名する。 目的が明確なら、そのディレクトリを作るのもいいと思う。ioとか。
851 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 02:10:30.78 ID:FANO5u+E.net] sjisで書かれたjavaコードと utf8で書かれたclojureコードが混在している場合って project.clj はどう書けばいいのでしょうか
852 名前:デフォルトの名無しさん [2015/07/07(火) 02:22:56.44 ID:Q1eHRJ8E.net] >>835 javaコードはjavacでコンパイルされるからここを参考に設定すればよい https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L251
853 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 22:09:29.07 ID:pZIQE70v.net] ClojureでもJavaみたいにnamespaceを com.example.foo.bar/MyClass みたいに深いディレクトリを掘ってファイル置かないといけないのです? 簡単に bar しかnsにしてない人が多い印象ですが
854 名前:デフォルトの名無しさん [2015/07/16(木) 23:32:45.55 ID:UiQdF58b.net] >>837 好きにすればいい Javaは慣例で”com.company.product.xxx”とか”jp.co.company.product.xxx”なんてやってるが実は考え過ぎで、せいぜい”product.xxx”で困らなかったのではないかという気もする
855 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:50:24.79 ID:XMhN9NpT.net] java使ってるときは、ドメイン名の部分は一括りで識別してたんで、長さはあんまり気にしてなかった。
856 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 01:14:33.74 ID:XMhN9NpT.net] clojarsでも、こんな感じ。 [ring "1.4.0"] 親プロジェクト (ring/ring) [ring/ring-core "1.4.0"] 子プロジェクト [org.clojure/clojure "1.5.1"] maven centralにあげる場合は、グループ名がドメイン名 maven centralにあげる場合にグループ名にドメイン名を付けるぐらいで、パッケージ名にはつけないみたい? https://github.com/ato/clojars-web/wiki/Groups https://github.com/ato/clojars-web/wiki/tutorial https://github.com/technomancy/leiningen/blob/preview/doc/DEPLOY.md
857 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:48:43.17 ID:MJ+wdIOr.net] Javaとclojureのコードを同じネームスペースに置いてしまうのって大丈夫なんでしょうか
858 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:24:27.17 ID:4YwvXMoy.net] >>841 問題無い、ただ分けた方が見通しは良くなる Clojureのプロジェクトでjavaソース併用するときに相互依存な物書くのはできないのでやっちゃだめ
859 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 13:32:52.45 ID:W0iRT6Hu.net] JavaのClassの中で(lex/yaccとかつかって) 自動でClojureに変換できる関数だけClojureに変換して 残りはJavaのまま残しておいて 同じnamespace内に混在
860 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 23:12:36.29 ID:47K/058z.net] Leinは依存関係にあるcのプログラムもビルドしてくれるようにならないものか Python のpipはしてくれる
861 名前:デフォルトの名無しさん [2015/07/27(月) 00:37:08.41 ID:SYhC4jQ3.net] >>844 JNIでも使ってんの?
862 名前:デフォルトの名無しさん mailto:sage [2015/07/28(火) 04:16:47.13 ID:JdT7Ezwf.net] leinの前工程で、ネイティブの依存関係をyum,brewなりで解決させるしかないのでは。 それこそpipやgem premakeなりmakeなり leinのプラグインでシェル扱うのもあるけど。 https://github.com/hyPiRion/lein-shell
863 名前:デフォルトの名無しさん mailto:sage [2015/07/28(火) 04:17:18.39 ID:JdT7Ezwf.net] 途中で送信してしまった
864 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 06:09:17.52 ID:keSdeN9Q.net] Emacsからタグジャンプできない
865 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 06:13:25.83 ID:8dgAmKAh.net] >>848 clojure-modeとciderを入れるんだ
866 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 03:59:48.42 ID:V6PM64+2.net] clojureのソースを置く場所をsrc以外に変更するとciderが認識しない https://github.com/clojure-emacs/cider/issues/950 こんな感じのエラーになる じゃあsrc以下にclojureとjavaのコードを混在するの? project/src project/java にわけるとか?
867 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 04:19:31.77 ID:13FPdMsD.net] >>850 うちは project/src/clojure-name-space-directory project/java/path-to-package-base-directory を標準にしてたからきがつかなんだけどそういうバグ居たのか つってもjavaコードって速度優先のprimitive計算系のコードとか旧来のライブラリ用のPojoしか入ってないんで滅多につかわんのだけど やはりjavaコードは単独のprojectにしてjarをmavenのローカルリポジトリに突っ込むべきなんかね?
868 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:16:00.36 ID:El3q6dsC.net] ちょっとしたテキスト処理とかの普段使いの言語にclojureって使い物になる? あきれるほど起動が遅すぎて使い物にならないと思うんだけど、何か裏技でもあるの?
869 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:39:29.27 ID:13FPdMsD.net] >>852 Emacs+REPLを昔はCLでやってた、今はClojureでやってる 環境を一度立ち上げたらそれをずっと使う様にしてるからJVMの起動の遅さは気にならない(つかJVMの起動が遅いのはJavaから変わらない) でも最近Elixirに浮気気味
870 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 16:11:49.52 ID:sIHWU5bW.net] cons car cdrがないとマクロが何か使いにくい気がする
871 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 16:15:59.58 ID:kkkSL9bh.net] >>854 cons はあるし car cdr は first rest だけどダメなのかい?
872 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 01:40:55.03 ID:90IR3onH.net] ドットセルのことでは
873 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 04:33:23.76 ID:qZnzjC8o.net] >>856 replacaとか破壊書き込み無いんだしどうしてもcar,cdrが欲しいならmapで{:car value :cdr value}で良くね?
874 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 21:31:17.48 ID:3XTzV4r5.net] car, cdr は川下りの如し。
875 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 12:53:25.74 ID:GzXb53Jk.net] clojureからpythonのライブラリを使う方法ないのでしょうか numpyとかjythonで動かないものが使いたい
876 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 12:56:19.63 ID:g5T9Gxtu.net] >>858 どうして? 俺にはただの語呂合わせ 知性のないおバカさんに聞こえるが 俺がばかなのか?
877 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 16:29:58.64 ID:SHTnF8RO.net] >>860 いやその通りなんだが。
878 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 18:45:47.43 ID:g5T9Gxtu.net] >>861 いたずらに「いや」からはじめるやつは自己中の精神病だと思うんだが
879 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 19:37:06.37 ID:zrEdzFeo.net] いやそうでもない
880 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 19:40:24.80 ID:KgOqinrw.net] いやよいやよもいいのうち チンコたちますぅ
881 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 00:26:48.27 ID:XEJ5PHRj.net] >859 javaからcpython使えるライブラリがあるから、 こういうのであれば、numpyの結果そのまま持ってこれるんじゃないかな。 https://github.com/mrj0/jep/blob/master/README.rst
882 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 00:36:50.08 ID:XEJ5PHRj.net] jep使ってるclojureからpythonのライブラリ呼び出してる例があったけど、ロシア語が所々出てくるみたい。 参考にして、ロシア語に突き当たったら自動翻訳で英語にしたほうがいいかも。 https://github.com/hsestupin/clojure-pymorphy/blob/master/README.md
883 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 14:29:43.34 ID:qLTFTNta.net] http-kitってクライアントとして使うとclj-httpより処理速かったりする?
884 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 15:12:18.33 ID:KHlpHEgx.net] www.http-kit.org/client.html 早いかは気にしたことないけど、async出来たりするので、複数取得してまとめるなら速くなるんじゃないかな。 > Easy-to-use API, modeled after clj-http あと、api自体はそれほど違わないと思うが、proxyなどに対応してるかはわからない。
885 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 14:46:19.12 ID:hIVgRi+z.net] clj-httpからhttp-kitにして concurrentにrequestするようにしたら3倍くらい速くなった マジでありがとう
886 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 15:02:38.08 ID:XFcMXbyl.net] SICPのClojure版出たな
887 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 15:40:16.49 ID:Jef7Uaa2.net] へえー ま、おれはSceme版でいいや
888 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 15:47:00.11 ID:Jef7Uaa2.net] あ、ここクロージャスレか しんつれいしますたぁ
889 名前:電波いっぱい mailto:sage [2015/09/07(月) 20:39:43.28 ID:PwlJ1i8i.net] >>870 どこ?
890 名前:デフォルトの名無しさん mailto:sage [2015/09/09(水) 23:01:39.56 ID:/2hOGL1j.net] www.sicpdistilled.com/section/wel
891 名前:come まだ途中かな。 SICPをclojureに逐一書き換えたという訳ではなく、SICPの一部内容をclojureで説明したもの。 去年kickstarterでクラウドファンディングしてて、最近公開した。 https://www.kickstarter.com/projects/1751759988/sicp-distilled RHも言ってるように、SICP全体を説明するにはclojureにはむいてないので、全部はやらないと思う。 [] [ここ壊れてます]
892 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 06:54:14.22 ID:C33hywT8.net] タイトルからして SICP *distilled* って言ってるんだし、全部はやらんのでは
893 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 17:20:18.26 ID:YDe/U6R6.net] clojureは頻繁にリファクタリングを繰り返す開発には向いてない? 型がないと設計的な変更を避けるようになりそうだけどフォローはあるのかな
894 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 02:42:57.67 ID:MGD+BScA.net] データの定義とチェックをするけど、 関数の型チェックはあまりしないみたい。 https://github.com/Prismatic/schema https://github.com/miner/herbert 関数の型チェックは、phpみたいにIDEやlint向けだけのアノテーションにでも使えば(使える?)いいんだけど、いまのところ使いどころが難しいみたい。 https://github.com/clojure/core.typed ライブラリ利用者としては、リファクタリングより、APIが非互換で型が変わったときにソース追うしかなくて困ることはある。
895 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 02:46:55.61 ID:MGD+BScA.net] TypeScriptでJSのソースには型に全部Any型がつくみたいな問題があるけど、他にもあった気がする。
896 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 08:24:33.67 ID:AZJ05Qb9.net] やっぱそういうところは難しいか サンクス
897 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 20:07:22.44 ID:tjf5Il2M.net] SICPの新約が出たよ! d.hatena.ne.jp/takeda25/20151030/1446174031
898 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 20:15:47.93 ID:x0Dl4mG4.net] 売ってるやつの訳はとっつきにくかったからこれはありがたい 色々燃えてるみたいだけど一番良い訳を出した人が正義
899 名前:デフォルトの名無しさん [2015/11/01(日) 23:05:15.96 ID:PByF+5ro.net] 原書で読むのが大正義
900 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:29:27.25 ID:aNC/N0AH.net] ネットに全部出てるしな。 とはいえ今更英語に親しんでも……というロートルが趣味で読む分には日本語も悪くない。
901 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:48:53.92 ID:X9VGfBzl.net] よく知らんけどSICPの原文の著作権とかは大丈夫なん? 公開されてるからって著作権フリーなわけないだろし 日本語訳を公開するのに原著者の許諾は得たのかしら 著者がMITの人間だからって発表した文章までかたっぱしからMITライセンスなわけないだしょうし 大丈夫なのかしら
902 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:55:05.31 ID:X9VGfBzl.net] 原著のライセンスはCreative Commons Attribution-ShareAlike 4.0 International License なのね なら大丈夫そうね
903 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 00:39:53.84 ID:dHMsk6uD.net] clojureを勉強して一番意味があったことは オブジェクト指向の文法に寛容になれたことだな C#やJavaを見て 「どうしてこんなに行数書かないと、こんな単純な実装すらできないんだ! オレが間違ってるの?もっと短く書ける端的で最新な正しいやり方があるの?」 と模索してばっかりだった 最初からオブジェクト化に適さない、関数を詰め込んだユーティリティ(モジュール)クラスを見て いったいなにがオブジェクトで、何がユーティリティで その境目はどこにあるのかと、くだらないことを考えずに
904 名前:ただ純粋に機能に実装すればいいんだと、Clojureの短さを見てそう感じた オブジェクトの神秘性が完全に消えたんだ オブジェクトは単にデータ構造と関数の詰め合わせに過ぎない メソッドや継承というのは、単にディスパッチの手段にすぎない そうして改めて観察することで、オブジェクト指向言語の活かし方も分かったし 関数型言語の強みというものが、改めてよくわかった そうした意味合いでClojure(とLisp)には感謝している [] [ここ壊れてます]
905 名前:デフォルトの名無しさん [2015/11/02(月) 00:55:24.26 ID:3aJacJQZ.net] >>886 >オブジェクトの神秘性が完全に消えたんだ >オブジェクトは単にデータ構造と関数の詰め合わせに過ぎない >メソッドや継承というのは、単にディスパッチの手段にすぎない CommonLispとか関数型の人間は昔からそう思ってるのだが、 OOそれ自体はどうでもいいんだ、というこの感覚は なかなか納得してもらえないみたい
906 名前:デフォルトの名無しさん [2015/11/02(月) 01:01:02.40 ID:3aJacJQZ.net] Lispで自分でマルチディスパッチを実装してオブジェクトシステムもどきを作って見ると、 やってることの意味がわかるし、「オブジェクト」についてのよくある喩え話とセットに なった単一ディスパッチがクソだなと思う。
907 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/02(月) 13:19:52.26 ID:5/Pq42i4.net] 「アルゴリズムがデータ構造でしかない」までわかった次は それを短くかく為に再帰呼び出しが有効だとわかる 全てのアルゴリズムは再帰で書きはじめる しかしそれはループに比べて低速で複雑な再帰は末尾最適化もされないから 現実的には再帰でソースコード書いて良い場所は限られる 結局は「アルゴリズムをデータ構造」のように書く事をしてもしなくても、 最終的なコードを再帰呼び出しに出来ないならあまり意味がない よってそういう方面から離れて非完璧方面へ歩んでいるのがC#やJAVAという言語 もう一周すればそっちの凄さがわかるよ
908 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/02(月) 13:24:03.74 ID:xhNmMlq/.net] JAVAとかで「クラス定義」している場所が「再帰」になる 今のPCスペックに合わせたプログラミングを極めたって どうせパラダイム変化で灰燼に帰すから 今のハードウェアで動かなかろうと 究極的なソースコードを生産し 絶対的なCPUの演算速度が得られた暁に化けるコードをuyは書いています
909 名前:デフォルトの名無しさん [2015/11/02(月) 14:26:12.15 ID:LMLSqkfz.net] F#最強ですねわかります
910 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/02(月) 14:29:18.81 ID:QQA4QdjN.net] lambdaが使えれば言語は関係ない アルゴリズムの究極的メタプログラミング メタをメタで生成しそれをさらにメタしていくんだよ メタするほどに速度はお察しになる代わりにソースコードだけは極限まで短くなるのです
911 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/02(月) 14:30:59.68 ID:gLS3ib7d.net] 自分のアルゴリズムを動かすだけにスパコン欲しくなってきてる 個人で100万くらいで買える奴って性能どんくらいなのか
912 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 14:43:06.93 ID:kfXAgSVx.net] x F# o Elixir ここ大事
913 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 16:06:23.49 ID:Vf0g8fE7.net] >>889 ロジック記述の簡潔さと、cpu実行の効率性は必ずしも一致しないんだけど、そういうのを全部飲み込んだ上で、最高の知能集めてvmとjit作れば克服出来るってのがjavascriptだよ。
914 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 17:36:40.52 ID:VA7rHB22.net] >>893 むかーし、ペンティアムを最初に搭載したPC-98シリーズが100万円くらいの 値段を付けていた。パソコン、今は高いもので数十万円か。 スパコンというなら桁が違うのではないか。店で買うもので
915 名前:烽ネかろう。 その金額では人に作ってもらうわけにいかないだろうから、自作かな。 [] [ここ壊れてます]
916 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 18:52:22.02 ID:GSPDOiRN.net] スパコンって言ったらたいてい億の単位を使うよな というかあれは個人で所有なんてせずに時間あたりで借りるんだよ
917 名前:デフォルトの名無しさん [2015/11/02(月) 22:46:11.53 ID:3aJacJQZ.net] >>889 が再帰の基本も知らんことはよくわかった
918 名前:デフォルトの名無しさん [2015/11/03(火) 16:02:45.04 ID:47MAD1yd.net] esehara が気持ち悪すぎる
919 名前:デフォルトの名無しさん mailto:sage [2015/11/04(水) 22:54:55.98 ID:8s3mVvwI.net] >>893 AWSとか使えばいいのかも。
920 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 08:27:51.85 ID:YmehbHLE.net] >>900 1000インスタンスあったら1000倍のパフォーマンスでるような処理ならAWSは実際お勧めだと思う Clojureだとマシン数よりコア数が多い方が簡単にスケールできるからこのスレ的には難しいかもしらん ElixirとかErlangだとコア数よりマシン数が効くのだけど、純粋な数値計算だとものすごい遅いからこれまた難しい(IO待ちが多い処理だと有利なのに) ManyCoreを重視してるけどManyMachineでも簡単にパフォーマンス出せるようになってほしいなcore.async
921 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 21:35:01.30 ID:z0yAetDY.net] 計算より通信がボトルネックなら並列計算機とかIB使ったりするんだろうけど、 単純に物量が多いだけならば、awsのemrやらとspark使ったりでなんとかなるのではとも思う。
922 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:04:02.66 ID:z0yAetDY.net] kontraktor 3 っていう高性能なdistributed Actors の実装があるんだけど、 いまのところclojureやscalaでは(javaも)流行ってない。 ruedigermoeller.github.io/kontraktor/
923 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:01:37.25 ID:NW0PnoYA.net] 単純なことを聞いて申し訳ないのだが 外部ライブラリのdocを簡単に調べる方法ってないですかね 今例として探そうとしているのはclojure.data.jsonね leiningenで依存関係を定義して、lein repl ->docで調べられるのは知ってるけど その名前空間にどんな関数があるのかを列挙できない 逆にlighttableやLa clojureを導入してみると その名前空間にどんな関数があるかは列挙できるけどdoc関数が使えない? なんか勘違いしている可能性が高いけど詰まったので教えてほしいなあ
924 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:04:40.49 ID:NW0PnoYA.net] すいません、これだけだと意図が伝わらないので補足します 具体的には (find-doc "^clojure.data.json.*")で、全部の関数のdocがずらずら表示されて欲しいんだけど これやるとclojure.data.jsonの名前空間の説明だけが出てきて保持している関数の表示はされないということです なぜそうしたいのかというとdeprecatedな関数とそうでない関数の区別をしたいからです
925 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 01:53:49.91 ID:D9Y34ii+.net] https://crossclj.info/doc/org.clojure/data.json/latest/clojure.data.json.html こういうのは、組み合わせればできるんじゃないかな。 これでclojarsのレポジトリにあがってるのは見られるし、ローカルでやりたければ、似たようなツールのソース持って来ればいいし。
926 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 03:32:36.20 ID:Tb9WhGMi.net] >>905 find-docは引数のregexにマッチするネームスペースのドキュメントを表示する奴なので 特定の名前空間にあるvarにマッチする関数については表示されないよ ひつようならns内の名前一覧からclojure.repl/docを呼び出す関数自分で用意しないと駄目だとおもう 普段cider-repl使ってるからあんまりそう言うの必要って感じないけどあれば便利っぽいなぁ、書いてみようかな(さがせばありそうだけど)
927 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 01:43:06.77 ID:7h/fcopS.net] 名前空間で定義されてるpublicな名前の一覧が欲しいだけならns-publicsで取れる
928 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 18:18:34.43 ID:uaMoILlJ.net] byte-arrayのクラス表示バグってない?
929 名前:デフォルトの名無しさん mailto:sage [2015/12/06(日) 21:32:31.19 ID:8Olb+xvH.net] ClojureScript2版出るのか 今度こそは翻訳じゃなくて原著を
930 名前:デフォルトの名無しさん [2015/12/11(金) 20:51:07.58 ID:vPkQdQym.net] >>904 clojure.repl/dir で特定のネームスペースにインターンされている Var 一覧が出る clojure.repl/doc で特定の Var のドキュメントが引っ張れる が、そもそもライブラリでまともに docstring 書いてるの少ないから clojure.repl/source とかでソース見る方が早い cider 使ってるなら M-. でライブラリの中に定義ジャンプ出来るし、それが一番早かったりする
931 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 17:10:27.31 ID:QFBdnAFu.net] LightTableいつの間にかElectronになってる
932 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 01:17:04.18 ID:gGq035Jk.net] lighttable.com/2015/12/10/light-table-0-8-0/ > CHANGED: We have switched to Electron from NW.js とのこと。
933 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:12:25.41 ID:+4+8NPVu.net] 新人に関数型言語と定数性について教える羽目になったんだけど、Clojureだとどんな入り口があるかな? ;;; つかなんで自分なんだと言う疑問もつきまとうわけであるが
934 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 20:57:36.20 ID:EJm55LSE.net] そもそも関数型って切り口そのものがどうなんだって感じだけど いわゆる関数型ならHaskellの方がいいんじゃない? Lisp未経験者だと関数型要素とLisp要素を両方理解しなきゃいけないし
935 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 23:45:07.88 ID:ZrvCKGgP.net] HaskellだとどうしてもMonadの話になっちゃうし、関数型どうこうならOCamlの方が・・・。
936 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 23:24:55.87 ID:eYzd465J.net] www.amazon.co.jp/gp/aw/d/4781912850/ www.amazon.co.jp/gp/aw/d/4781911609/ ocamlだと簡潔な日本語の本もあるのも imutableなlispで教えようとするとracketかclojureあたりになってくるが、日本語で関数型を教えるとなると、資料作らないと注力し難いかも。
937 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 00:32:05.46 ID:NgHVQYk6.net] >>915-917 ありがとう Ocamlは確かに良いかもしれないですね、自分も再学習してみます。 実は自分等が使ってるのがClojureなんです(自分は下っ端の上の方、んでもってそのさらに下に新人が来るわけです) でもって自分は好きこそ物の上手なれというかLisp系言語は以前から遊んでいたせいで違和感無くClojureのプロジェクトこなせてしまい、 java,とかP言語とかしか知らない新人に教えるのに必要な切り口やら入り口やらがまったくわからんのです。(この辺が自分が担当になるのに不適切だとへこむ理由) 情報小出しになってごめんなさい、新人が入ってくるのは四月からなのでまだ時間はあるから自分も書籍よみあさって推薦図書とかも探している真っ最中 かつパニック状態でして、自分の書き込みみて何書いてんだこいつとか思うほどです、ほんとごめん。
938 名前:デフォルトの名無しさん [2015/12/29(火) 14:51:23.64 ID:/YFVsl6a.net] >>918 相手が分からないうちにどう教えるかばかり考えてもな 今できることとしては、自分でJavaなりで一つ実用になるプログラムを書いて、同じものをClojureで書いてみるんだね 何が違いか、そもそも自分が分かっているのかが自覚できるだろ
939 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 16:25:30.83 ID:PvAiYDv0.net] devopsの話からはじめるなら、達人プログラマーや最近の本などやってもいい。 clojure関連しては、repl、開発環境、leiningenもあるけど、 ボキャブラリー増やしていくのはkoansとかでも。 clojurekoans.com/ ここら辺の機能一覧は見た方がいいし、 clojure.org/documentation 実際の開発で、javaやjavaの相互が必要ならそこらへん分かるといいし、 clojure.org/java_interop あとは、ライブラリやテストの話となるかな。 本でやるなら、プログラミングclojureが古くなってるので、英語の入門書も一冊あった方がいいかもね。 shop.oreilly.com/product/0636920034292.do https://www.manning.com/books/the-joy-of-clojure-second-edition shop.oreilly.com/product/0636920013754.do
940 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 16:31:00.36 ID:PvAiYDv0.net] 前もって会社から人数分の教科書代出してもらったほうがいいと思うが、会社に置いとくか配るかは、なんとも言えず。
941 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 15:49:24.29 ID:X0SWm6Bi.net] 関係ないが902の言う定数性がどういう意味なのか気になってるんだけど、誰か教えてくれ。 ググっても分からん。イミュータブル??
942 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 18:33:46.58 ID:ff7EiwBI.net] オブジェクト志向から関数型に来るには エリック・エヴァンスのドメイン駆動設計がいいんじゃないかな この本を最近読み返したんだけど、オブジェクト志向と関数志向の バランスについてうまく書かれている気がする エリックとしてはオブジェクト志向啓蒙の書として書いたんだろうけど あれで書かれていることは関数型のほうが自然に実装できる気がする 問題は文章が冗長なところと、アジャイル特有の扱いにくい言語が出てくるところだな あと初心者が読む本でもない気がするからやっぱ微妙かな
943 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 00:32:59.75 ID:BGdG54RB.net] あれはオブジェクト指向で満たすべき不変性を素晴らしくよく説明した良著だと思う 関数型言語のほうが実装しやすいとは言い切れないが設計に関数型のエッセンスをいかに取り込めばよいかについては白眉であった
944 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 14:59:48.28 ID:29eVGrdT.net] やべぇドメイン駆動とか腐敗防止層とイーガーとレイジー位しか覚えてないわ。
945 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 05:19:43.68 ID:6GG4/tqm.net] >>922 たぶんイミュータブルの事だと思われ >>923 ,912 Object指向な頭でドメイン駆動読まずにImmutableなコードにしようとしてしまうとコピーコストが高いコードができちゃうよね。 Clojureのlist,vector,mapってCloneじゃなく変化差分の生成しているところとかを強調して記述してる書籍ってないのかな?(コード読めってのは無しで)
946 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 07:11:26.90 ID:f4fgmR8a.net] コード読まないならClojureに限定せず普通に関数型データ構造の説明を読めばいいのでは。
947 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 07:29:17.35 ID:6GG4/tqm.net] >>927 コード読まずにってのはプログラミング言語に依存しない解説って意味で使ったんで、誤解させたみたいでスマン できれば良書(英語でも日本語でも)示唆してくれるとうれしいんだけどお勧めってある?
948 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 14:07:46.00 ID:QO+J3mMy.net] コアチームで書いてた初期のclojure解説スライドだと、hmatの説明はよく見かけたね。 richのスライドがイマイチ探せず。 集まってるところってあったっけ? https://www.slideshare.net/adorepump/clojure-an-introduction-for-java-programmers https://github.com/stuarthalloway/clojure-presentations/downloads
949 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 14:42:18.83 ID:+GXK6sa1.net] 実際にhashmap操作してるところの詳しい図説とかあった気がするけど、見つからず。 改良版が見つかったみたいで、ちょっと話題になってる。 blog.acolyer.org/2015/11/27/hamt/ dev.clojure.org/display/design/Release.zFuture
950 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 21:40:29.86 ID:fHiB8twj.net] 効率的な不変データ型構造はideal hash treeの論文とかを参考にしたんじゃないっけ 名前からするにこれはマップの実装だと思う vectorについても確か別の論文を参照していたはずだが、名前を忘れた
951 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 21:41:51.79 ID:fHiB8twj.net] あとどっかでmapは二分平衡木で実装されてるってのも見た気がするな
952 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 00:25:20.65 ID:5kcmX1Qf.net] >>928 「Scala関数型デザイン&プログラミング」っていう オブジェクト指向言語のScalaで関数型っぽい事にチャレンジしてみましたって感じの本がオススメ。 始めにScala言語の記法を解説しながら単方向連結リストを実装、 その後無駄な計算をしない為の遅延リストの作り方や並列処理構造・コンビネータなどを作った上で、 それらのデータ構造をさらに抽象化した関手などを実装して行くって流れなので、Scalaを知らなくても全然読めます。 ただ、この本の少し先をScalaでやろうとするとScalaの表現力の無さに絶望しますが。。。
953 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 10:24:33.73 ID:dV4P966A.net] 上のスライドだと32-34ページに www.slideshare.net/adorepump/clojure-an-introduction-for-java-programmers 32. Persistent Data Structures • Immutable, + old version of the collection is still available after 'changes' • Collection maintains its performance guarantees for most operations • Therefore new versions are not full copies • All Clojure data structures persistent • Hash map and vector both based upon array mapped hash tries (Bagwell) • Sorted map is red-black tree 33. Structural Sharing • Key to efficient ‘copies’ and therefore persistence • Everything is final so no chance of interference • Thread safe • Iteration safe 34. Path Copying
954 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 22:04:08.48 ID:zxrZwk9x.net] LightTableがErectron化して大分いい感じになってるな Atomより使いやすい
955 名前:デフォルトの名無しさん mailto:sage [2016/01/11(月) 00:36:20.46 ID:VkRRM6DP.net] 勝手にerectしてもらっちゃ困りますけどね
956 名前:デフォルトの名無しさん mailto:sage [2016/01/16(土) 11:40:10.04 ID:NQXxqmGZ.net] 元々 Lisp + immutable みたいな宣伝されるからコンスセルを想像するんじゃないかな
957 名前:デフォルトの名無しさん mailto:sage [2016/01/16(土) 11:43:57.30 ID:NQXxqmGZ.net] 言葉足りなかった。説明がなくてもコンスセルを連想する、の意味
958 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 15:50:53.02 ID:b/h+vel4.net] HikariCPのロゴ見てると何とも言えない気分になるな ネイティブが日本人の英語名ライブラリ見るときもこんな気分なのかね
959 名前:デフォルトの名無しさん mailto:sage [2016/01/25(月) 23:04:08.20 ID:uLOkekXP.net] typed clojure や plumatic schema はどんなもんですか? 型付きlispって話題にならないのですか?
960 名前:デフォルトの名無しさん [2016/01/26(火) 01:07:42.01 ID:4P/8QI2U.net] ちゃんと計測した上で、必要ならtype hintつけるし 型チェックが必要ならそうするまで
961 名前:デフォルトの名無しさん mailto:sage [2016/01/26(火) 01:12:37.06 ID:fLwBjkWJ.net] schemaは、xml schemaみたいなもんかなと。 データ(ドキュメント?)のバリデーション用途で、 用途的にもジェネリックではなく固定されるので型アノテーションもやってくれる。 lispの型推論とかは、shenとかtyped racket、typed clojureとかあるけど、ジェネリックみたいなの含むため、静的型付けするわけではなく、高速化はしない。 あと、コアライブラリに対して、typescriptのd.tsファイルみたいなのがある訳ではないので、(あってもどこまでできるかというのはあるが、)範囲は狭いはず。 clojureみたい(lispみたい?)に、動的言語に型アノテーションつけるのは、ちょうど流行ってきてるみたい。
962 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 16:34:50.32 ID:Y3ed6r+r.net] ClojureでVPSにWebサービスを立てるときって uberjarしたjarをVPS側でjava -jarして nginxで80を3000(jarが起動するPort)にリバースするだけでいいの?
963 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 16:44:07.32 ID:nOSDiMZQ.net] >>943 問題ないよ awsでELBも使うならポート番号差し替えるだけで良いからnginxすらいらない(staticファイルあるだろうからそっちをどうにかするって事の方がデプロイ時にめんどくさいかもね)
964 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 00:13:56.24 ID:3RvzDSbC.net] herokuもそんな感じであげたりする。 portが変わったりするので、昔はProcfileで環境変数指定したりした。 いまは、lein herokuってのがあるんだね。 https://devcenter.heroku.com/articles/deploying-clojure-applications-with-the-heroku-leiningen-plugin
965 名前:デフォルトの名無しさん [2016/01/29(金) 22:51:01.29 ID:YK9TzO4/.net] >>933 ちなみにどういうところが表現力低いと感じる?>scala
966 名前:デフォルトの名無しさん [2016/01/30(土) 02:25:24.66 ID:MfxV3bNM.net] land of lispのコードをclojureで書くってブログのコード消えていた。 前はあった。 あれ参考にしながらcommon lispとclojure同時に勉強しようと思っていたから残念。
967 名前:電波いっぱい mailto:sage [2016/02/01(月) 06:48:44.66 ID:iITfW2yZ.net] >>947 CLとclojureを両方同時に勉強するのは大変だと思う。 基本的な考え方が、かなり違うから。
968 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 10:21:51.93 ID:viFYU2Ui.net] >>944 thx 日本語の情報だとHerokuばっかでVPSの場合がいまいち確証が持てなかったんで助かった
969 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 05:02:05.41 ID:ePEtCP+F.net] >>948 935とは別人だけど、そんなに違うもんなの? まだ本当に触りしかやってないけど、関数名とかの違いだけで、概念とかにそこまでの差は感じられないな
970 名前:デフォルトの名無しさん [2016/02/02(火) 10:33:02.57 ID:F+BpmlFQ.net] ClojureはLisp-1、データが不変、何でも遅延評価なところで書き方が変わる ↓でちゃんとまとめてくださってる https://sites.google.com/site/clojurejapanesedocumentation/home/reference/lisps
971 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 20:34:14.57 ID:2heLfAb0.net] 何でもは遅延しないわよ。遅延するものだけ。
972 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 20:40:48.46 ID:u0ZREARr.net] こういうのは同時にやる俺凄くねってだけだからなあ
973 名前:電波いっぱい mailto:sage [2016/02/02(火) 21:25:09.45 ID:JPo4W//F.net] まとめに書いてあることって、まあ、その通りと思うけど、CLって真にマルチパラダイムな言語であるのに対して、clojureは、関数型言語であることが一番の違いだと思う。 だから、clojureらしい書き方というのはあるけど、CLらしいってのは無くて C使う人かこう書きたいと思う方法でちゃんと書くことができる。
974 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 22:56:43.66 ID:9WMu+hA1.net] clojureの作者もこんな感じの事いってる。 d.hatena.ne.jp/katzchang/touch/20120211/p1 lispから引き継いだところと、捨てたところがあるので、litle schemerとかの本から持ってきてもうまく実装出来ない場合もある。
975 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 08:45:20.39 ID:0n3FRGss.net] ClojureとCL両方やると、CLがいかによく考えられた言語であることが分かる。 Clojureは、細かい挙動が曖昧な部分やどこにも記されてないコアチームの暗黙的な知識が多いように思う。 CLは、大抵議論が尽くされていて、仕様として定まっていて、仕様関連資料を読めばよい。 Clojureは、CLに比べて、シンプルで、簡単であるように思っていて、 JavaやJavaScriptが競合となるWebシステム、Webアプリ領域では、開発環境やライブラリの充実度から見ても無双状態かもしれない。 ただ、開発環境含めてリソース食いで、プログラムの起動時間が長すぎて一部クライアントアプリには向かないし、ハードの性能を絞り出すのにも不向き。
976 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 12:49:32.34 ID:fYtnlKxz.net] いや、でもCLは混乱するよ。初学者としては。C++並に複雑に見える
977 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 16:49:53.79 ID:0n3FRGss.net] 「仕様として定まってないので混乱する」vs「仕様を知らないから混乱する」による見え方の違いかもしれませんね。 Clojureは前者、CLは後者。
978 名前:デフォルトの名無しさん mailto:sage [2016/02/05(金) 16:52:53.80 ID:kM+NK6dn.net] play-clj、または、生libGDXでClojureによるクロスプラットフォームなモバイルアプリ開発をされた方いますか? 特に、起動時間やリソース使用量含めたパフォーマンスがどうなのか気になるところです。 play-cljは、iOSサポートは現在やめてしまったようなので、生libGDXを使うことになるかもしれませんが。
979 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 00:26:47.10 ID:4QXOAnIu.net] RoboVMが、有償ライセンスないと使えなくなったのが原因かなと。 libGDXも影響は受けてて今後RoboVMの有償ライセンスが必要になってくる。 https://github.com/libgdx/libgdx/wiki/Setting-up-your-Development-Environment-%28Eclipse%2C-Intellij-IDEA%2C-NetBeans%29 BugVMという公開コードからポートしたプロジェクトもあるが、今後新しいiOSに対応できるのかなど状況がわからない。 bugvm.com/ あと、RoboVMがlibGDXのスポンサーになってるのもあるので、 libGDXのBugVM対応あるとしても、BugVM側でポートして対応することになるかなと。
980 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 01:03:23.32 ID:4QXOAnIu.net] いちおうbugvmにbinding入れてるっぽい。 https://github.com/bugvm/bugvm/tree/master/libgdx
981 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 01:11:34.22 ID:4QXOAnIu.net] centosみたいに有償が成り立った上での存続にはなるんだろうけど、 作業自体は大変そうなので、継続できるように何か援助したいが、どんな状況なんだろうね。
982 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 04:05:41.80 ID:afxS0p+G.net] BugVM初めて聞きました。情報ありがとうございます。 RoboVMのライセンスの件、リンク先を見る限り、必ずしも有料ではなくて、 ・3人以下のチームの場合、無料でインディーライセンスキー発行 ・3人より大きいチームの場合、問い合わせが必要で、有名ゲームスタジオは有料になるが、そうではない場合、人数関係なく無料 ・商用可 ・ライセンスキーは無期限有効 また、play-cljがiOSサポートをやめてしまったのは、lein-fruitが動かなくなったのと、実機での動作に問題がありそうと説明してますね。 https://github.com/oakes/play-clj/releases
983 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 04:43:54.31 ID:afxS0p+G.net] あと、ClojureScriptになりますが、Cocos2D-JSによるJSとネイティブコードのハイブリッドアプリという選択肢もありそうですね。 主にCocos2D-html5を使ってブラウザ上で開発をし、リリースの際には、Cocos2D-x JSBを使ってハイブリッド化。
984 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 20:32:38.50 ID:8pvMtac5.net] なるほど、RoboVMはインディーズライセンス発行できるんですね。 robovmでiOS9,xcode7への対応と諸々が秋頃にあったので、それ以降に作者さんがメンテしてないか、対応出来なかったかのどちらかも。
985 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 20:34:13.83 ID:8pvMtac5.net] 953の部分は、lein-fruitが動かない理由についての話です。
986 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 20:43:24.24 ID:8pvMtac5.net] clojureとは直接関係ないのですが、 javafxportsの方は年初にメンテしてて動くようになってました。 https://bitbucket.org/javafxports/javafxmobile-plugin https://bitbucket.org/javafxports/samples https://bitbucket.org/javafxports/javafxmobile-plugin-ensemble 試した感じだとiosのアプリ証明書まわりの動きが、RoboVM直と違いちょっとおかしそうでしたが。
987 名前:デフォルトの名無しさん mailto:sage [2016/02/07(日) 22:51:41.81 ID:8pvMtac5.net] 別ブランチ切って、robovm-studio(1.9.0-)対応作業としてやってたみたいですね。 試してないので、動くか分からないですが。 https://github.com/oakes/lein-fruit/commits/robovm-studio 11/19にコミットが有りますね。 https://github.com/oakes/lein-fruit/commit/1490e38649b5a71a92d1e924a2cf1a2b2beb0376 構成が変わっただけなら、これだけでいいのかな。 lein-fruit 0.2.4って書いてありますが、clojarsには0.2.3までしかあげてないので、 試すには、本家とはべつにローカルか別名のリポジトリ作成してやる必要がありますね。
988 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 15:20:13.39 ID:fZyGkNbq.net] いろいろ情報ありがとうございます。 JavaFXPorts追ってなかったので見てみましたが、iOS用にはRoboVMを使っているんですね。また、Clojureがそのまま動くのか気になるところです。 ちなみにですが、Clojure1.8のダイレクトリンキングによる起動時間とJARファイルサイズへの影響を手元のMac上で簡易的に調べてみたところ、Clojure 1.7.0 -> 1.8.0では、 ・起動時間が約0.3s短縮 ・JARファイルサイズが約230KB小さく とかなので、モバイル端末実機でも効果を期待できそうです。 あと、Clojureと生libGDXで作られたというゲームをAndroidタブレットの実機で遊んでみましたが、 ダイレクトリンキング以前の状態でも、起動時間は許容範囲で、ロゴを表示することで、大して気にならない感じです。 また、その他ゲームプレイもClojureを一切感じず軽快でした。 ゲームが開発された当時は、libGDXとRoboVMの連携が無く、無料で簡単にiOS版をリリースする方法が無かったので、Android版だけのようです。 「Bounce Away」 https://play.google.com/store/apps/details?id=com.friendlyvillagers.ballz&hl=en
989 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 17:16:41.79 ID:/EKT/6se.net] EmacsでlispにどっぷりはまってClojureに辿り着いたよ ・調べたところ結構方言が強いみたいだけどみんな違和感無いのかな?better lispになってるかな? ・Emacsでの編集は快適かな? まだ使ってないからこの辺りが知りたいところだけど、手の空いた時にでも 教えてもらえると助かります。
990 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 21:29:40.96 ID:0R2jEsLy.net] >>970 emacs+ciderで幸せ break pointはよ(昔はswank-clojureでできたのに)
991 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 15:11:04.21 ID:NsOi1z3Q.net] CIDERにもbreakpointあるよ。 Clojureは良くも悪くも、より抽象化されたLispという印象かな。 State of Clojure 2015によると、Clojure界で一番人気あるのがEmacs+CIDER(約45%)で、次がIntelliJ+Cursive(約25%)。 どちらも業務に使えるし、快適ですね。
992 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 17:24:53.45 ID:JX9OE3S7.net] >>972 え?マジか、defaultのkeyboard bind何になってる?(キーバインド無し?) swank-clojure -> ritz でお世話になった後ciderになってbreak関係無くなってションボリしてるんでどのバージョンから使えるかもプリーズ updateとかの後に.elファイルまで読まないから全然気がつけてないんでマジでお願い。
993 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 20:08:32.16 ID:SJ1YLAR4.net] https://github.com/clojure-emacs/cider/blob/master/README.md#debugging ciderかは忘れたけど、ns変えてやらないとブレークしないという話を聞いたことがある。
994 名前:電波いっぱい mailto:sage [2016/02/20(土) 23:37:36.42 ID:bGD6QKVk.net] >>970 CommonLispが好きでずっと使ってたのにClojure鞍替えした者ですが、Clojureは全てのひとにとってのbetter lispではありません。見方によっては全く違う言語とも言えます。 ですが、LISPというのは懐の広い言語ですので、ClojureもLISPです。関数型に振られていて、javaの資産が使えて、活発なコミュニティーがあるというのが特徴かな。 僕にとってはまさにbetter lispだったので、メインの言語として使ってます。
995 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 01:08:40.47 ID:/soU/W5W.net] 設計の意図を探してきて読むと違いに対する違和感は減るかも。 https://sites.google.com/site/clojurejapanesedocumentation/home/reference/lisps www.geidai.ac.jp/~marui/clojure/rationale/ 上の日本語訳は結構前かな。よく使われる機能は変わってる場合もある。
996 名前:958 mailto:sage [2016/02/22(月) 17:10:14.60 ID:OQxBKkBP.net] >>971-976 遅レスですまんが、みんなciderとか色々教えてくれてどうもありがとう その辺りから色々調べてみると、意外と業務で使ってるところがあってびっくりした JDK使ってるってのが大きいと思うけど、この時代にLispが選択されるというのも凄い事だ
997 名前:デフォルトの名無しさん mailto:sage [2016/03/01(火) 13:00:53.78 ID:Ni2JKZi6.net] GSOC落ちてて草
998 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 22:03:06.43 ID:8SgHWKfM.net] 日々の生活に疲れました 救いと癒しが欲しいのでclojureを学ぼうと思います よろしくお願いいたします
999 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 03:34:57.11 ID:69hNyYMv.net] 阿澄佳奈のLispに対抗して 新田恵海と高部あいでclojureというユニットはどうか?
1000 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 23:26:24.63 ID:TikNVi9d.net] 石原絵理子もまぜてあげて
1001 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 19:20:05.21 ID:/2z8tz0e.net] 少しお尋ねしたいことがあります。 (def coll (range 100) ) (loop [x coll r [] ] (if (not= x nil) (recur (next x) (cons (first x) r) ) r)) としたときにxはシーケンスcollを走査しますが、 xが以前操作した任意の数n個のデータにアクセスしたいというとき 具体的には xが55を指しているときにそれ以前の54,53,52,51 ... 45 (ここではn=10とした) にアクセスしたいのですが、エレガントな方法ってあるでしょうか。 自分が思いついた方法 1.partitionにシーケンスを食わせてからloopに突っ込む しかしできればloop recur内で生成したい。 2.drop take を使ってcollをloop内で刻む partitionを使わないとなるとこれしかないのかな
1002 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 00:55:34.88 ID:
] [ここ壊れてます]
1003 名前:suuESVM3.net mailto: >>982 頭にnilがn個続くシーケンスをお供に連れて行くとか? (into (range 5) (repeat 3 nil)) -> (nil,nil,nil,0,1,2,3,4) [] [ここ壊れてます]
1004 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 02:01:38.74 ID:+C690be2.net] 勉強中のおいらには泥臭い方法しか思いつかなかった (let [operate (fn [idx target coll] (if (= 55 target) (println "捜査" target "Hit!! 履歴も見るよ" (take 10 (reverse (take idx coll)))) (println "捜査" target))) col-len (count coll)] (loop [idx 0] (when (> col-len idx) (operate idx (nth coll idx) coll) (recur (inc idx)) )) )
1005 名前:電波いっぱい mailto:sage [2016/04/11(月) 20:43:31.37 ID:+bjPPau5e] >>982 rの中にあるものからn個取るのではだめ?
1006 名前:デフォルトの名無しさん [2016/04/13(水) 07:01:24.27 ID:CWmrvo3n.net] 最近clojurescriptに興味があって質問です。 webアプリ+サーバを作成するためのleiningenのテンプレートは 見つかるんですが、単純にnode.js上のスクリプトとして動作させる用の leinigenの設定をしたテンプレートがmies-nodeくらいで それも既にメンテされてないようです。 こういう用途で使えるテンプレートを知ってる方いますか?
1007 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 01:18:05.19 ID:OuJbyPuf.net] cljsはブラウザ側が基本なので、いろいろハマりやすいかも。 https://github.com/bhauman/lein-figwheel/wiki/Node.js-development-with-figwheel aws lambda cljs https://github.com/nervous-systems/cljs-lambda GUI系は基本chromiumターゲットなので、ブラウザ向けに近い electron向け(chromium+node) https://github.com/karad/lein_template_descjop/ react native https://github.com/dmotz/natal
1008 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 01:21:20.28 ID:OuJbyPuf.net] 一番上のがそうだけど、テンプレートにはなってなかったね。すまぬ。
1009 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 01:40:05.59 ID:OuJbyPuf.net] コンパイルの必要ないけど、これはosxだけ、かつ、ブラウザ向けエンジン使ってる planck-repl.org
1010 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 13:25:13.39 ID:uVkdPs+4.net] 色々と情報ありがとう。 前にnodeを少しいじったんでclojurescriptだとどうなるかと思ったんだが… しかし、clojure自体初心者の自分ではハマりそうなので暫くはJVM上だけにしようと思います。 とりあえずQuilが面白そうなのでやってみる。
1011 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 01:21:05.74 ID:0VKAWbkk.net] 4clojureなかなか面白いね
1012 名前:デフォルトの名無しさん [2016/05/01(日) 12:05:06.37 ID:tKi6j9CT.net] 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません 6
1013 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 21:11:02.59 ID:K+NNsali.net] lazy-seqなんてどうせ大したことないんだろと思って def projectに :jvm-opts ["-Xmx1G"]としてmemory size 1GBの制限をかけた後に stackoverflowにある lazy-file-linesに12GBくらいのデータ食わせたら、マジで行数カウントしやがった。 夢が広がるな
1014 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 21:50:12.09 ID:x44Ry1He.net] 遅延評価は、処理中に強制終了したときのリソースの状態が気になってしょうがない
1015 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 23:06:11.61 ID:K+NNsali.net] そう言われたら俺も気になってきたんだが、 12GB中の6GBくらい読みだした時にとめたらどうなっちゃうんだろう?
1016 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 11:12:58.21 ID:D79M6+1d.net] >>993 でそいつの行数はlonglongで足りたのか?
1017 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 12:41:25.79 ID:+he7G1JM.net] One Million Clicks per Minute with Kafka and Clojure - Devon Peticolas https://youtu.be/VC_MTD68erY 上のやつは今年のclojure/westの発表なんだけど、ストリーム処理で遅延評価にならないようにするにはという話があった。
1018 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 13:43:51.64 ID:l0JwSRjw.net] >>996 ClojureならBigDecimalに移行するだけだと思うが?
1019 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 13:47:11.50 ID:l0JwSRjw.net] >>996 あと12GBのテキストデータの行数がlonglong超える訳が無いと思うぞ。
1020 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 22:24:06.08 ID:6f0pONvw.net] >>997 いろいろ参考になったわ KafkaStreamはlazy sequenceじゃないのかな あとその動画の指摘の通りlazy seqは確かに遅いわ 一個ずつ現実化して処理していくというのは特にFile I/OやNetwork I/Oに絡むと遅いんだろうな partitionの使い方とか、asyncのonto-chanの使い道とかpriority mapを用いたアルゴリズムの改善とか濃厚なプレゼンだった
1021 名前:デフォルトの名無しさん [2016/11/28(月) 22:32:01.86 ID:9f32phBy.net] オリジナルの型をcore.matrixに乗せたいのですが、何を定義したらmatrixライブラリにある和や積等の関数を適用可能になるのでしょうか?
1022 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 09:30:24.76 ID:1gz1M+ng.net] このあたりに書いてあったかも https://github.com/mikera/core.matrix/wiki/Implementation-Guide
1023 名前:デフォルトの名無しさん [2016/12/18(日) 17:03:58.39 ID:8F2gNr16.net] Clojureにも代数的データ型があればなあ
1024 名前:デフォルトの名無しさん [2016/12/26(月) 21:13:07.45 ID:XJppqmkm.net] マップがあるで(ゲス笑い)
1025 名前:デフォルトの名無しさん [2016/12/26(月) 21:15:52.87 ID:aoxifvbm.net] Clojureのマップの柔軟さ書きやすさは好きなんだけど、エラー検出力低くないだろうか?
1026 名前:デフォルトの名無しさん [2016/12/26(月) 21:30:49.56 ID:XJppqmkm.net] ぶっちゃけクソ低い。 TypeScriptたまに触ってると特に感じるわ。 だから対策としてスキーマバリデーションとかが欲しいわけではなくて、リアルタイムチェックや補完の方も欲しい。 あと (register-handler :keyword (fn ...)) 的なのも :keyword をtypoしたりしてムキーってなる。
1027 名前:デフォルトの名無しさん [2016/12/26(月) 21:44:39.57 ID:aoxifvbm.net] LightTableあかんか……
1028 名前:デフォルトの名無しさん [2016/12/27(火) 14:53:40.90 ID:ov9/Tp6R.net] 次スレ無いけど埋めとくか
1029 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 12:12:28.60 ID:0ISf0nRp.net] P言語のIDEだと、アノテーションとメソッドキャッシュで編集時支援ってのが多いかな。 既存のシンボルを集めておく仕組みはあまり聞いたことない気がする。 よく使う単語は補完してくれるので、それか定義してるところからのコピペで何とかしてる。
1030 名前:デフォルトの名無しさん mailto:sage [2017/01/04(水) 18:40:43.75 ID:uHeuKaUg.net] 次スレ 【Lisp】プログラミング言語 Clojure #4【JVM】 echo.2ch.net/test/read.cgi/tech/1483498849/
1031 名前:デフォルトの名無しさん [2017/01/04(水) 23:12:31.39 ID:VMJ7nozd.net] >>1010 :よくやった
1032 名前:デフォルトの名無しさん mailto:sage [2017/01/04(水) 23:13:43.28 ID:J+uePkPh.net] おつ
1033 名前:デフォルトの名無しさん mailto:sage [2017/01/04(水) 23:14:06.89 ID:hkcnZMZu.net] 次スレ 【Lisp】プログラミング言語 Clojure #4【JVM】 echo.2ch.net/test/read.cgi/tech/1483498849/
1034 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています