1read 100read
【Lisp】プログラミング言語 Clojure #3【JVM】 (100) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Git 7 (190)
【普通のやつらの】 Arc Language 0 【上を行け】 (260)
簡単なプログラム言語って何? (142)
スレ立てるまでもない質問はここで 129匹目 (952)
静的型付け言語の潜在開発生産性は今の100倍 ×3 (561)
【COBOLから】バッチ処理【Javaまで】 (153)

【Lisp】プログラミング言語 Clojure #3【JVM】


1 :2013/09/28 〜 最終レス :2013/10/28
JVM上で動作するLisp方言「Clojure」のスレ。
Clojure - home
http://clojure.org/
http://www.try-clojure.org/
前スレ:
【Lisp】プログラミング言語 Clojure #2【JVM】
http://toro.2ch.net/test/read.cgi/tech/1318498898/
【Lisp】プログラミング言語 Clojure【JVM】
http://hibari.2ch.net/test/read.cgi/tech/1255533519/

2 :
【リファレンス】
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 :
【ブログ・ML・質問箱】
Clojure
ttp://groups.google.com/forum/#!forum/clojure
Clojure Dev
ttp://groups.google.com/forum/#!forum/clojure-dev
Clojure Confluence wiki
http://dev.clojure.org/
Clojure JIRA tickets and patches
http://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 :
【チュートリアル】
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 :
【その他】
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に関するコンテンツ
http://www.infoq.com/jp/clojure/
InfoQ: All of Rich Hickey's Content
http://www.infoq.com/author/Rich-Hickey
RailsConf 2012 基調講演 Simplicity Matters 翻訳書き起し
ttp://eed3si9n.com/node/141

6 :
【本】
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 :
テンプレ収集場所
http://wiki.fdiary.net/lisp/?%A5%C6%A5%F3%A5%D7%A5%EC+%28Clojure+%A5%B9%A5%EC%29
(ID:guest Pass:cl)

8 :
>>1
そしてなぜ前スレが1000行く前に落ちてんだ

9 :
http://2013.8-p.info/japanese/09-28-languages.html
facebookが内部で形付きのphp拡張作ってるって。
typedscript含めて動的言語の型検査がトレンドになってきてる?
typed clojureは0.2で、使える代物になってるので、circleciでは実践投入しているらしい。
http://blog.circleci.com/supporting-typed-clojure/

10 :
typed clojureは、別に宣言する形なので、
慣れの問題だろうけど、本文中に埋め込んでる方が簡潔にみえる。
http://m.imgur.com/hUGIXwq
lisp族でもshenは埋め込んでたが、
racket, clojureで埋め込まなかったのは、構文の自由度に影響でるから?

11 :
>>8
980超えると一定時間経過で自動的に落ちるとかなんとか

12 :
Clojure Cupが昨日終了して、さっき一般投票が始まったみたいだけど、誰か参加した人っている?
http://clojurecup.com/apps.html

13 :
おいしい本は、ライブラリのカタログとしてかなり範囲が広いし、ライブラリが複数ある用途についてはしっかり一番オススメ出来るやつを選んで載せてある。
本屋でパッと見るだけでも全体通して同じだから雰囲気わかると思うよ。
参考文献がないのはなんかのお約束なんだろうか?
lolなところは、
入門書ではないが、leiningenのインストールのところはうまく初心者向けにかいてあるのに、javaのインストールには一言も触れてない点
関数脳って副題、内容関係なく編集者がつけた点
でした。

14 :
>>12
このチームは日本からの参加者みたい
http://clojurecup.com/app.html?app=focusoncoding

15 :
>>13
javaというか、jreだけでOKだよね?

16 :
>>14
宣伝乙

17 :
まあしかし、Rails Rumbleとかに比べてClojure Cupは全く盛り上がってないよなあ。そもそも母数が少ないから当たり前だが。

18 :
おいしいやつけっこう評価いいっぽいな。買うかな。

19 :
RunaとClimateが買収されたらしく、盛り上がってる。
どちらも、ネット上でClojureの人材募集してたのを見かけたことがあるけど、
コアな人材を集める気のあるところの方が、
買収する側にとっても独立したRD部署とするにはマッチするのかもしれないね。

20 :
おいしい本は外部ライブラリ使った応用を紹介してるだけだから、文法的なことを期待して買うと塩漬けすることになる

21 :
こういう話なのかね。
http://blog.livedoor.jp/lionfan/lite/archives/52682119.html

22 :
おいしい本は、カタログ本なんでまず眺めてみたらいいと思うよ。
書店いくの面倒だったら、サンプルと草稿あるし。
http://gihyo.jp/book/2013/978-4-7741-5991-1
https://github.com/hellonico/niclojure/tree/master/textja

23 :
https://github.com/icylisper/jark
https://github.com/flatland/drip
コマンドライン上で先にjava立ち上げておくツールは、
普段したのやつ使ってるけど、おいしい本では、上のやつが紹介されてた。

24 :
どの本にも repl を終了するコマンドが書いてない件
(System/exit 0) で代用してるけど、いいのだろうか

25 :
>>24
http://stackoverflow.com/questions/4981584/how-to-exit-the-repl

26 :
Clojure Cupのエントリー数は42か。
まあ初回だしこんなもんなのかな

27 :
make-arrayで配列作ってたんだけど、状態変更不可だと聞いてたから、配列の値を変更するたびに新しい配列を作り直すのかと思ったら、中身はjavaの配列で普通に代入してる件

28 :
>>27
イミュータブルなデータ構造使いましょう

29 :
状態変更不可だと聞いたの聞き間違いだね
ClojureにはJavaオブジェクトとかrefとかアトムとか
変更可能なものがいろいろ用意されてる

30 :
http://clojure.org/java_interop
ここで扱う構造は、java直接なので代入可能。
基本的なデータ構造がイミュータブルな関数型言語でも、
http://en.m.wikipedia.org/wiki/Hash_array_mapped_trie
上の高速なHash使って、実用的な速度というので注目を集めたのがClojureだった。
なので、もともとHaskellでも代入可能なデータ構造が用意されてたりするし、使ったりする。
http://www.haskell.org/haskellwiki/Arrays
http://d.hatena.ne.jp/kazu-yamamoto/touch/20120706/1341546985

31 :
http://hackage.haskell.org/package/unordered-containers
これもclojureにインスパイアされて作ってたはず。

32 :
http://logaan.github.io/clojure/core.typed/2013/10/02/core.typed-game-of-life.html
clojureから、typed clojureにしてみて、scalaとhaskellに移植して比較してみたらしい。
typed clojureが一番長いけど、納得いかないものではない、という感想になってた。

33 :
cup戦の投票結果発表してたよ。

34 :
http://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 :
clojure-py やってみようと思ったけど
開発止まってるこれはもう開発の余地がないほど完成してるってとってもいいのかな

36 :
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 :
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 :
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 :
setterという変数の内部の値を書きかえる関数があるとき、
(let [] (setter x) x)

(do (setter x) x)
で結果が違うんですけど、これは仕様でしょうか?
letの方はxが変更されなくて、doの方はxの中身が変更されます

40 :
http://clojure.org/special_forms#Special%20Forms--(let%20[bindings*%20]%20exprs*)
http://clojure.org/special_forms#Special%20Forms--(do%20exprs*)
基本的に副作用ある場合は逐次実行される様にdo系の逐次実行マクロで囲む必要があるという認識。
http://d.hatena.ne.jp/ryoasai/touch/20110604/1307201476
http://d.hatena.ne.jp/awacio/touch/20121009/1349796084
基本は、副作用考慮しない実行順序によらない並列評価になると思うので
let使う場合も、(let [bindings*] (do (expr*)))にする必要がある(と思ってる)。

41 :
逐次実行の外部計算ライブラリ利用したプログラムでベンチとった時に、cpuが100%(=1論理コア)以上使われてた。
検証せずに、とりあえず並列評価された可能性が高いってことにしておいた。
別件だけど、reducerでメモリまわりも節約出来るようだし、java1.6以降対応だから初めから使うようにしたいんだが、
javaのagentが立ち上がるので、明示的にjavaをexitするところの作法ってないのかな?
http://tnoda-clojure.tumblr.com/post/60197800824/reducers
http://tnoda-clojure.tumblr.com/post/59364812844/dispelling-tis-fud-about-clojure-part-one
http://tnoda-clojure.tumblr.com/post/59416260402/dispelling-tis-fud-about-clojure-part-two

42 :
exitする前にshutdown-agents呼んどく、という話ではない?
ttp://clojuredocs.org/clojure_core/clojure.core/shutdown-agents

43 :
ひょっとして、 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)

44 :
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 は変数の不変性を前提に変な遅延評価と最適化してるような気がする

45 :
mapが返すのは遅延リストだから、
(do s1 s2 s3)
s1 が s2 より前に実行されることが保証されているだけで、 s1 と s2 の間に他の処理をしないことは保証されていない
s1 s2 が s3 の内部の値を書き換える操作の場合は s3 の内部状態が書き換わることは保証されない

46 :
遅延評価まじでウザいな
なんでこんな欠陥を導入したんだよ

47 :
破壊的副作用に頼ったコードを書かなければどうということはない
・・・と言いたいところだけど、java呼び出しで書かざるを得ない時は結構ある
毎日clojureさわってる内はちゃんとdoallとかdorunとか呼ぶようにするけど、
ひさしぶりにさわると忘れてる事が

48 :
データ構造を作った後に値を埋めていくタイプのコンストラクタはどうやって作るのだろうか…

49 :
遅延評価ではなく遅延シーケンスな

50 :
>>46
遅延シーケンスを否定するならClojureを使う意味はほぼ無いよ
まさしくClojureの主要機能

51 :
順序問題はloop使うとちょっと逃げられる

52 :
>>48
doto を使うということではなくて?

53 :
do一族
http://clojure.github.io/clojure/clojure.core-api.html#clojure.core/doall
http://julianlaffey.wordpress.com/2013/04/25/untangling-clojures-do-functions-do-doall-dorun-doseq-dosync-dotimes-doto/

54 :
遅延なんて、カスと認定されて20年以上前に主要プログラミング言語から追放された昨日なのに
どうして関数型を名乗る言語で復活してしまったのか
カスなのに

55 :
>>54
54の頭が20年前で止まってるから。

56 :
そもそも追放されてなくね

57 :
>>54
リストxs が f1 f2 f3 ... で構成されてて、
各fi が xs の部分集合から計算されるとき、
各fi の計算順序を無視して xs の定義を記述できる
ので便利

58 :
副作用を制限する関数型言語の特性と遅延処理の相性がいいからねえ

59 :
netflixの紹介は遊んでるな
https://speakerdeck.com/daveray/clojure-at-netflix

60 :
その作者、seesaw作ってた人か
当時は学生っぽく見えたけど、どうだったんだろう。

61 :
>>59
マクロの項目吹いたwwwww

62 :
それマクロスちゃうヴァルキリーやで
っていう突っ込み欲しいんだろうか

63 :
netflix社内では、アニメ見放題なんだろうか。
最近見かけるようになった機械学習のSaaSっぽいやつのひとつ
https://bigml.com/features
バックエンドが99%clojureらしい。
http://blog.bigml.com/2013/06/21/clojure-based-machine-learning/

64 :
割とマジでコレが日本で流行らん理由がわからん。
PHPなんかよりよっぽどWeb関係作りやすいし安定してるのに。

65 :
流行らない理由「Lispだから」説
twitterでもネタで書かれてたけど
本当にこれありそうだよな

66 :
Pythonみたいなのが流行りつつあるのを見ると
やはりみんな括弧が嫌いなのかね
自分もエディタのサポートが無い環境なら
括弧の類が少ない言語を選ぶ気がするよ

67 :
Lisp系の文法フリーな文化に慣れると
他の言語に手を出す気が失せる

68 :
>>66
今の時代エディタのサポートなしとか余程の変態か初心者しかやらないし
python流行ってるのは米軍とかgoogleが支援してるからも大きい
つまりclojureにもいいパトロンがつけば

69 :
外野からすると単にカッコがというよりものっぺりしたコードの見た目に抵抗がある

70 :
>>64
生のJavaScript書くのが辛いという理由で、Haxeみたいなのが人気が出てるのを見ると、
「コンパイラがエラーを指摘してくれる安心感」に魅力を感じる人が多いんだな、と思う。
Lispは発想を自由にコーディング出来るが、言い換えると開発者によって練度のバラつきが
大きく影響する--->人月で契約するプロジェクトマネージャーへの受けの問題だろう。

71 :
マクロ書けなかったらClojure使う意味なんかないしなぁ

72 :
>>70
JavaScriptもClojureのREPLみたいに使えればそんなに書くの嫌いじゃ無いんだが開発環境がとてもショボイのが嫌いだ
ってなわけでWeb環境はclojure+clojure scriptが楽だったりする。
プロトタイプはこれで作ってプレゼンする感じ
でも実際の運営までにはPHPとかに変換しないと運営から文句来る orz

73 :
これはClojure->PHPのトランスレータのフラグ。

74 :
Twitter見てるとアニオタに人気の言語なのかね

75 :
>>74
PythonとRubyがアップを始めたようです

76 :
Haskell「所詮スポーツマンじゃの」

77 :
今勉強中なんだけど、
セットとかマップって単にリストとか連想リストではいかんのだろうか。
そんなに効率が変わるようにも思えないし

78 :
普段はScala + Playをsbt + IDEAでコーディングしてるんだけど、
Clojureでウェブアプリ作ろうと思ったらどんな組み合わせでやるものなの?
デプロイ先とかも簡単に見つかるのかどうかも気になります。

79 :
Ring: RubyでいうRackのようなミドルウェア
Compojure: RubyでいうSinatraのようなWebアプリ記述用DSL
ということらしい、詳しくは知らん
参考URL ttp://d.hatena.ne.jp/oknknic/20130704/1372950152

80 :
ringアプリでwarとか作れば、servletで提供できるよ。
http://www.ibm.com/developerworks/jp/java/library/j-paasshootout/
なので、openshift,run@cloud,gae,beanstalk,herokuなど無料から使えるとこで使える。

81 :
mvc的なものなら
compojure
https://devcenter.heroku.com/articles/clojure-web-application
luminus
http://www.luminusweb.net
RESTとクライアントJSアプリなら
liberator
http://clojure-liberator.github.io/liberator/
http://www.flyingmachinestudios.com/programming/building-a-forum-with-clojure-datomic-angular/
この本は、compojure中心
http://pragprog.com/book/dswdcloj/web-development-with-clojure
クライアントサイドJSまわりは、clojurescriptというのでかけたりする。
http://www.oreilly.co.jp/books/9784873116129/
Railsのmigration、scaffold的なところがあるツールは、今のところないと思う。

82 :
>>78
webアプリだと基本warに落とせる物が多いからAWSでもなんでも何処でもOKですぜ。
servletエンジン持ちもあるから単体jarで起動できる物も多いし。
JVMの有無だけじゃないのかなデプロイの可否

83 :
ふっふっふ
社内で勉強会開始
emacsenが半数を占めていたのでCCWじゃなくnrepl-jack-inでclojure学習でだいぶいけそう

84 :
メモ帳+コマンドプロンプト の俺は異端か…

85 :
Lispでエディタ補助なしって拷問に近い
LightTableがオシャレ

86 :
メモ帳でLisp書くのとかどんな罰ゲームだよwww

87 :
>>84
器用だな
不便感じないの?

88 :
>>79
>>80
>>81
>>82
ありがとう。いろいろ選択肢はあるんですね。
少しずつ勉強してみます。

89 :
>>84
xyzzyいいよー^^

90 :
メモ帳+コマンドプロンプトになれると、USBメモリにclojure1.xx.x..jarとコマンドプロンプトのショートカットだけ入れてればどこでもプログラミングできる

91 :
xyzzyにclojure-modeあるのか?

92 :
>>90
いっそのことlanternaとか使ったテキストエディタもとろもつくっちまったほうがよくね?(lanterna日本語とおらないのがアレ過ぎるけど)

93 :
もはやメモ帳でコーディングする方が楽という領域に入ったが、
メモ帳閉じた後に自動インデント整形してソースを出力しなおしてくれるツールがあるとうれしい
clojure.jarにくっつけてくれ、とだれが英語でリクエストしておいてください

94 :
http://www.infoq.com/jp/news/2013/10/core-typed
形システムについての日本語記事

95 :
>>93
vimとclojure.vim入れて、全行を「=」コマンドで整形して保存するだけのスクリプトを書いて実行
もしくはemacsで(ry
コードの整形は流石にpretty-printでは無理か

96 :
leiningen使ってたら他の処理系のビルドが大変めんどくさくなってきて困る
なんだかdameningenになった気分だ

97 :
githubのランキングが変わってた。
だいぶ前なのかもしれないけど。
トレンドなリポジトリ
https://github.com/trending?l=clojure
トレンドな開発者
https://github.com/trending/developers?l=clojure
googleのリポジトリもあるんだね。

98 :
>>96
最近の、ビルドの最中までオンライン前提な風潮はどうにかならないのだろうか…

99 :
>>98
つlein -o

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【普通のやつらの】 Arc Language 0 【上を行け】 (260)
【COBOLから】バッチ処理【Javaまで】 (153)
Excel VBA 質問スレ Part32 (377)
【JavaScript】スクリプト バトルロワイヤル40【pl,rb,php,py】 (801)
スレ立てるまでもない質問はここで 129匹目 (952)
【C++】高速化手法【SSE】 (884)
--log9.info------------------
【サウンド】ゲーム制作者の為の音楽理論【初歩】 (186)
みんなでラグナロクを超えるネットゲーム作ってみね? (144)
ひまつぶし (124)
今日から必死で〜    (248)
妖精さんと一緒に戦うシューティング (145)
【遂に】3D版MUGENつくろうぜ part-001【始動!】 (117)
HSPで出来るのか・・・ (123)
あびる優容疑者をネタにゲームを作ろう (173)
flashでネトゲー作らない? (200)
【忍者】2ちゃんねるがログイン制 (368)
ゲーム製作者が自由にアンケートをとれるスレ (239)
ゲームにおけるデータ構造・クラス設計・パターン2 (603)
ActiveBasic + DXライブラリDLL でゲームを作るスレ (191)
さいたまRPG作ろうぜ (792)
エロゲ製作に関する技術 (454)
面白いフラグ立てゲームの作り方 (105)
--log55.com------------------
超合金 超合金魂 バンダイ ポピー 専用スレ vol40
ブルマァク復刻版等の行方 18
【仮面ライダー】装動STAGE1【エグゼイド】
【MP】トランスフォーマーマスターピース アンチ03
【ふうせん】風船 3 個目【バルーン】
【萌え】男・美少年フィギュア総合スレ22【燃え】
宇宙戦隊キュウレンジャーのおもちゃ キュータマ2個目
【RIOBOT】千値練総合 15チネル【1000Toys】