[過去ログ] 【Lisp】プログラミング言語 Clojure #3【JVM】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(1): 2013/09/28(土)11:03 AAS
JVM上で動作するLisp方言「Clojure」のスレ。
Clojure - home
外部リンク:clojure.org
外部リンク:www.try-clojure.org
前スレ:
【Lisp】プログラミング言語 Clojure #2【JVM】
2chスレ:tech
省2
922: 2016/01/07(木)10:24 ID:dV4P966A(1) AAS
上のスライドだと32-34ページに
外部リンク:www.slideshare.net
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
省8
923: 2016/01/09(土)22:04 ID:zxrZwk9x(1) AAS
LightTableがErectron化して大分いい感じになってるな
Atomより使いやすい
924: 2016/01/11(月)00:36 ID:VkRRM6DP(1) AAS
勝手にerectしてもらっちゃ困りますけどね
925: 2016/01/16(土)11:40 ID:NQXxqmGZ(1/2) AAS
元々 Lisp + immutable みたいな宣伝されるからコンスセルを想像するんじゃないかな
926: 2016/01/16(土)11:43 ID:NQXxqmGZ(2/2) AAS
言葉足りなかった。説明がなくてもコンスセルを連想する、の意味
927: 2016/01/18(月)15:50 ID:b/h+vel4(1) AAS
HikariCPのロゴ見てると何とも言えない気分になるな
ネイティブが日本人の英語名ライブラリ見るときもこんな気分なのかね
928: 2016/01/25(月)23:04 ID:uLOkekXP(1) AAS
typed clojure や plumatic schema はどんなもんですか?
型付きlispって話題にならないのですか?
929: 2016/01/26(火)01:07 ID:4P/8QI2U(1) AAS
ちゃんと計測した上で、必要ならtype hintつけるし
型チェックが必要ならそうするまで
930: 2016/01/26(火)01:12 ID:fLwBjkWJ(1) AAS
schemaは、xml schemaみたいなもんかなと。
データ(ドキュメント?)のバリデーション用途で、
用途的にもジェネリックではなく固定されるので型アノテーションもやってくれる。
lispの型推論とかは、shenとかtyped racket、typed clojureとかあるけど、ジェネリックみたいなの含むため、静的型付けするわけではなく、高速化はしない。
あと、コアライブラリに対して、typescriptのd.tsファイルみたいなのがある訳ではないので、(あってもどこまでできるかというのはあるが、)範囲は狭いはず。
clojureみたい(lispみたい?)に、動的言語に型アノテーションつけるのは、ちょうど流行ってきてるみたい。
931(1): 2016/01/27(水)16:34 ID:Y3ed6r+r(1) AAS
ClojureでVPSにWebサービスを立てるときって
uberjarしたjarをVPS側でjava -jarして
nginxで80を3000(jarが起動するPort)にリバースするだけでいいの?
932(1): 2016/01/27(水)16:44 ID:nOSDiMZQ(1) AAS
>>931
問題ないよ
awsでELBも使うならポート番号差し替えるだけで良いからnginxすらいらない(staticファイルあるだろうからそっちをどうにかするって事の方がデプロイ時にめんどくさいかもね)
933: 2016/01/28(木)00:13 ID:3RvzDSbC(1) AAS
herokuもそんな感じであげたりする。
portが変わったりするので、昔はProcfileで環境変数指定したりした。
いまは、lein herokuってのがあるんだね。
外部リンク:devcenter.heroku.com
934: 2016/01/29(金)22:51 ID:YK9TzO4/(1) AAS
>>921
ちなみにどういうところが表現力低いと感じる?>scala
935(1): 2016/01/30(土)02:25 ID:MfxV3bNM(1) AAS
land of lispのコードをclojureで書くってブログのコード消えていた。
前はあった。
あれ参考にしながらcommon lispとclojure同時に勉強しようと思っていたから残念。
936(1): 電波いっぱい 2016/02/01(月)06:48 ID:iITfW2yZ(1) AAS
>>935
CLとclojureを両方同時に勉強するのは大変だと思う。
基本的な考え方が、かなり違うから。
937: 2016/02/01(月)10:21 ID:viFYU2Ui(1) AAS
>>932
thx
日本語の情報だとHerokuばっかでVPSの場合がいまいち確証が持てなかったんで助かった
938: 2016/02/02(火)05:02 ID:ePEtCP+F(1) AAS
>>936
935とは別人だけど、そんなに違うもんなの?
まだ本当に触りしかやってないけど、関数名とかの違いだけで、概念とかにそこまでの差は感じられないな
939: 2016/02/02(火)10:33 ID:F+BpmlFQ(1) AAS
ClojureはLisp-1、データが不変、何でも遅延評価なところで書き方が変わる
↓でちゃんとまとめてくださってる
外部リンク:sites.google.com
940: 2016/02/02(火)20:34 ID:2heLfAb0(1) AAS
何でもは遅延しないわよ。遅延するものだけ。
941: 2016/02/02(火)20:40 ID:u0ZREARr(1) AAS
こういうのは同時にやる俺凄くねってだけだからなあ
942: 電波いっぱい 2016/02/02(火)21:25 ID:JPo4W//F(1) AAS
まとめに書いてあることって、まあ、その通りと思うけど、CLって真にマルチパラダイムな言語であるのに対して、clojureは、関数型言語であることが一番の違いだと思う。
だから、clojureらしい書き方というのはあるけど、CLらしいってのは無くて
C使う人かこう書きたいと思う方法でちゃんと書くことができる。
943: 2016/02/02(火)22:56 ID:9WMu+hA1(1) AAS
clojureの作者もこんな感じの事いってる。
外部リンク:d.hatena.ne.jp
lispから引き継いだところと、捨てたところがあるので、litle schemerとかの本から持ってきてもうまく実装出来ない場合もある。
944: 2016/02/04(木)08:45 ID:0n3FRGss(1/2) AAS
ClojureとCL両方やると、CLがいかによく考えられた言語であることが分かる。
Clojureは、細かい挙動が曖昧な部分やどこにも記されてないコアチームの暗黙的な知識が多いように思う。
CLは、大抵議論が尽くされていて、仕様として定まっていて、仕様関連資料を読めばよい。
Clojureは、CLに比べて、シンプルで、簡単であるように思っていて、
JavaやJavaScriptが競合となるWebシステム、Webアプリ領域では、開発環境やライブラリの充実度から見ても無双状態かもしれない。
ただ、開発環境含めてリソース食いで、プログラムの起動時間が長すぎて一部クライアントアプリには向かないし、ハードの性能を絞り出すのにも不向き。
945: 2016/02/04(木)12:49 ID:fYtnlKxz(1) AAS
いや、でもCLは混乱するよ。初学者としては。C++並に複雑に見える
946: 2016/02/04(木)16:49 ID:0n3FRGss(2/2) AAS
「仕様として定まってないので混乱する」vs「仕様を知らないから混乱する」による見え方の違いかもしれませんね。
Clojureは前者、CLは後者。
947: 2016/02/05(金)16:52 ID:kM+NK6dn(1) AAS
play-clj、または、生libGDXでClojureによるクロスプラットフォームなモバイルアプリ開発をされた方いますか?
特に、起動時間やリソース使用量含めたパフォーマンスがどうなのか気になるところです。
play-cljは、iOSサポートは現在やめてしまったようなので、生libGDXを使うことになるかもしれませんが。
948: 2016/02/07(日)00:26 ID:4QXOAnIu(1/3) AAS
RoboVMが、有償ライセンスないと使えなくなったのが原因かなと。
libGDXも影響は受けてて今後RoboVMの有償ライセンスが必要になってくる。
外部リンク:github.com
BugVMという公開コードからポートしたプロジェクトもあるが、今後新しいiOSに対応できるのかなど状況がわからない。
外部リンク:bugvm.com
あと、RoboVMがlibGDXのスポンサーになってるのもあるので、
libGDXのBugVM対応あるとしても、BugVM側でポートして対応することになるかなと。
949: 2016/02/07(日)01:03 ID:4QXOAnIu(2/3) AAS
いちおうbugvmにbinding入れてるっぽい。
外部リンク:github.com
950: 2016/02/07(日)01:11 ID:4QXOAnIu(3/3) AAS
centosみたいに有償が成り立った上での存続にはなるんだろうけど、
作業自体は大変そうなので、継続できるように何か援助したいが、どんな状況なんだろうね。
951: 2016/02/07(日)04:05 ID:afxS0p+G(1/2) AAS
BugVM初めて聞きました。情報ありがとうございます。
RoboVMのライセンスの件、リンク先を見る限り、必ずしも有料ではなくて、
・3人以下のチームの場合、無料でインディーライセンスキー発行
・3人より大きいチームの場合、問い合わせが必要で、有名ゲームスタジオは有料になるが、そうではない場合、人数関係なく無料
・商用可
・ライセンスキーは無期限有効
また、play-cljがiOSサポートをやめてしまったのは、lein-fruitが動かなくなったのと、実機での動作に問題がありそうと説明してますね。
省1
952: 2016/02/07(日)04:43 ID:afxS0p+G(2/2) AAS
あと、ClojureScriptになりますが、Cocos2D-JSによるJSとネイティブコードのハイブリッドアプリという選択肢もありそうですね。
主にCocos2D-html5を使ってブラウザ上で開発をし、リリースの際には、Cocos2D-x JSBを使ってハイブリッド化。
953: 2016/02/07(日)20:32 ID:8pvMtac5(1/4) AAS
なるほど、RoboVMはインディーズライセンス発行できるんですね。
robovmでiOS9,xcode7への対応と諸々が秋頃にあったので、それ以降に作者さんがメンテしてないか、対応出来なかったかのどちらかも。
954: 2016/02/07(日)20:34 ID:8pvMtac5(2/4) AAS
953の部分は、lein-fruitが動かない理由についての話です。
955: 2016/02/07(日)20:43 ID:8pvMtac5(3/4) AAS
clojureとは直接関係ないのですが、
javafxportsの方は年初にメンテしてて動くようになってました。
外部リンク:bitbucket.org
外部リンク:bitbucket.org
外部リンク:bitbucket.org
試した感じだとiosのアプリ証明書まわりの動きが、RoboVM直と違いちょっとおかしそうでしたが。
956: 2016/02/07(日)22:51 ID:8pvMtac5(4/4) AAS
別ブランチ切って、robovm-studio(1.9.0-)対応作業としてやってたみたいですね。
試してないので、動くか分からないですが。
外部リンク:github.com
11/19にコミットが有りますね。
外部リンク:github.com
構成が変わっただけなら、これだけでいいのかな。
lein-fruit 0.2.4って書いてありますが、clojarsには0.2.3までしかあげてないので、
省1
957: 2016/02/08(月)15:20 ID:fZyGkNbq(1) AAS
いろいろ情報ありがとうございます。
JavaFXPorts追ってなかったので見てみましたが、iOS用にはRoboVMを使っているんですね。また、Clojureがそのまま動くのか気になるところです。
ちなみにですが、Clojure1.8のダイレクトリンキングによる起動時間とJARファイルサイズへの影響を手元のMac上で簡易的に調べてみたところ、Clojure 1.7.0 -> 1.8.0では、
・起動時間が約0.3s短縮
・JARファイルサイズが約230KB小さく
とかなので、モバイル端末実機でも効果を期待できそうです。
あと、Clojureと生libGDXで作られたというゲームをAndroidタブレットの実機で遊んでみましたが、
省5
958(3): 2016/02/19(金)17:16 ID:/EKT/6se(1) AAS
EmacsでlispにどっぷりはまってClojureに辿り着いたよ
・調べたところ結構方言が強いみたいだけどみんな違和感無いのかな?better lispになってるかな?
・Emacsでの編集は快適かな?
まだ使ってないからこの辺りが知りたいところだけど、手の空いた時にでも
教えてもらえると助かります。
959(1): 2016/02/19(金)21:29 ID:0R2jEsLy(1) AAS
>>958
emacs+ciderで幸せ
break pointはよ(昔はswank-clojureでできたのに)
960(2): 2016/02/20(土)15:11 ID:NsOi1z3Q(1) AAS
CIDERにもbreakpointあるよ。
Clojureは良くも悪くも、より抽象化されたLispという印象かな。
State of Clojure 2015によると、Clojure界で一番人気あるのがEmacs+CIDER(約45%)で、次がIntelliJ+Cursive(約25%)。
どちらも業務に使えるし、快適ですね。
961(1): 2016/02/20(土)17:24 ID:JX9OE3S7(1) AAS
>>960
え?マジか、defaultのkeyboard bind何になってる?(キーバインド無し?)
swank-clojure -> ritz でお世話になった後ciderになってbreak関係無くなってションボリしてるんでどのバージョンから使えるかもプリーズ
updateとかの後に.elファイルまで読まないから全然気がつけてないんでマジでお願い。
962(1): 2016/02/20(土)20:08 ID:SJ1YLAR4(1) AAS
外部リンク[md]:github.com
ciderかは忘れたけど、ns変えてやらないとブレークしないという話を聞いたことがある。
963(1): 電波いっぱい 2016/02/20(土)23:37 ID:bGD6QKVk(1) AAS
>>958
CommonLispが好きでずっと使ってたのにClojure鞍替えした者ですが、Clojureは全てのひとにとってのbetter lispではありません。見方によっては全く違う言語とも言えます。
ですが、LISPというのは懐の広い言語ですので、ClojureもLISPです。関数型に振られていて、javaの資産が使えて、活発なコミュニティーがあるというのが特徴かな。
僕にとってはまさにbetter lispだったので、メインの言語として使ってます。
964(1): 2016/02/21(日)01:08 ID:/soU/W5W(1) AAS
設計の意図を探してきて読むと違いに対する違和感は減るかも。
外部リンク:sites.google.com
外部リンク:www.geidai.ac.jp
上の日本語訳は結構前かな。よく使われる機能は変わってる場合もある。
965: 958 2016/02/22(月)17:10 ID:OQxBKkBP(1) AAS
>>959-964
遅レスですまんが、みんなciderとか色々教えてくれてどうもありがとう
その辺りから色々調べてみると、意外と業務で使ってるところがあってびっくりした
JDK使ってるってのが大きいと思うけど、この時代にLispが選択されるというのも凄い事だ
966: 2016/03/01(火)13:00 ID:Ni2JKZi6(1) AAS
GSOC落ちてて草
967: 2016/04/05(火)22:03 ID:8SgHWKfM(1) AAS
日々の生活に疲れました
救いと癒しが欲しいのでclojureを学ぼうと思います
よろしくお願いいたします
968: 2016/04/07(木)03:34 ID:69hNyYMv(1) AAS
阿澄佳奈のLispに対抗して
新田恵海と高部あいでclojureというユニットはどうか?
969: 2016/04/07(木)23:26 ID:TikNVi9d(1) AAS
石原絵理子もまぜてあげて
970(1): 2016/04/10(日)19:20 ID:/2z8tz0e(1) AAS
少しお尋ねしたいことがあります。
(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とした)
にアクセスしたいのですが、エレガントな方法ってあるでしょうか。
省5
971: 2016/04/11(月)00:55 ID:suuESVM3(1) AAS
>>970
頭にnilがn個続くシーケンスをお供に連れて行くとか?
(into (range 5) (repeat 3 nil)) -> (nil,nil,nil,0,1,2,3,4)
972: 2016/04/11(月)02:01 ID:+C690be2(1) AAS
勉強中のおいらには泥臭い方法しか思いつかなかった
(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)
省4
973: 2016/04/13(水)07:01 ID:CWmrvo3n(1) AAS
最近clojurescriptに興味があって質問です。
webアプリ+サーバを作成するためのleiningenのテンプレートは
見つかるんですが、単純にnode.js上のスクリプトとして動作させる用の
leinigenの設定をしたテンプレートがmies-nodeくらいで
それも既にメンテされてないようです。
こういう用途で使えるテンプレートを知ってる方いますか?
974: 2016/04/15(金)01:18 ID:OuJbyPuf(1/3) AAS
cljsはブラウザ側が基本なので、いろいろハマりやすいかも。
外部リンク:github.com
aws lambda cljs
外部リンク:github.com
GUI系は基本chromiumターゲットなので、ブラウザ向けに近い
electron向け(chromium+node)
外部リンク:github.com
省2
975: 2016/04/15(金)01:21 ID:OuJbyPuf(2/3) AAS
一番上のがそうだけど、テンプレートにはなってなかったね。すまぬ。
976: 2016/04/15(金)01:40 ID:OuJbyPuf(3/3) AAS
コンパイルの必要ないけど、これはosxだけ、かつ、ブラウザ向けエンジン使ってる
外部リンク:planck-repl.org
977: 2016/04/15(金)13:25 ID:uVkdPs+4(1) AAS
色々と情報ありがとう。
前にnodeを少しいじったんでclojurescriptだとどうなるかと思ったんだが…
しかし、clojure自体初心者の自分ではハマりそうなので暫くはJVM上だけにしようと思います。
とりあえずQuilが面白そうなのでやってみる。
978: 2016/04/17(日)01:21 ID:0VKAWbkk(1) AAS
4clojureなかなか面白いね
979: 2016/05/01(日)12:05 ID:tKi6j9CT(1) AAS
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
Twitterリンク:Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
省11
980(1): 2016/05/03(火)21:11 ID:K+NNsali(1/2) AAS
lazy-seqなんてどうせ大したことないんだろと思って
def projectに :jvm-opts ["-Xmx1G"]としてmemory size 1GBの制限をかけた後に
stackoverflowにある lazy-file-linesに12GBくらいのデータ食わせたら、マジで行数カウントしやがった。
夢が広がるな
981: 2016/05/03(火)21:50 ID:x44Ry1He(1) AAS
遅延評価は、処理中に強制終了したときのリソースの状態が気になってしょうがない
982: 2016/05/03(火)23:06 ID:K+NNsali(2/2) AAS
そう言われたら俺も気になってきたんだが、
12GB中の6GBくらい読みだした時にとめたらどうなっちゃうんだろう?
983(2): 2016/05/04(水)11:12 ID:D79M6+1d(1) AAS
>>980
でそいつの行数はlonglongで足りたのか?
984(1): 2016/05/04(水)12:41 ID:+he7G1JM(1) AAS
One Million Clicks per Minute with Kafka and Clojure - Devon Peticolas
動画リンク[YouTube]
上のやつは今年のclojure/westの発表なんだけど、ストリーム処理で遅延評価にならないようにするにはという話があった。
985: 2016/05/04(水)13:43 ID:l0JwSRjw(1/2) AAS
>>983
ClojureならBigDecimalに移行するだけだと思うが?
986: 2016/05/04(水)13:47 ID:l0JwSRjw(2/2) AAS
>>983
あと12GBのテキストデータの行数がlonglong超える訳が無いと思うぞ。
987: 2016/05/04(水)22:24 ID:6f0pONvw(1) AAS
>>984
いろいろ参考になったわ
KafkaStreamはlazy sequenceじゃないのかな
あとその動画の指摘の通りlazy seqは確かに遅いわ
一個ずつ現実化して処理していくというのは特にFile I/OやNetwork I/Oに絡むと遅いんだろうな
partitionの使い方とか、asyncのonto-chanの使い道とかpriority mapを用いたアルゴリズムの改善とか濃厚なプレゼンだった
988: 2016/11/28(月)22:32 ID:9f32phBy(1) AAS
オリジナルの型をcore.matrixに乗せたいのですが、何を定義したらmatrixライブラリにある和や積等の関数を適用可能になるのでしょうか?
989: 2016/11/29(火)09:30 ID:1gz1M+ng(1) AAS
このあたりに書いてあったかも
外部リンク:github.com
990: 2016/12/18(日)17:03 ID:8F2gNr16(1) AAS
Clojureにも代数的データ型があればなあ
991: 2016/12/26(月)21:13 ID:XJppqmkm(1/2) AAS
マップがあるで(ゲス笑い)
992: 2016/12/26(月)21:15 ID:aoxifvbm(1/2) AAS
Clojureのマップの柔軟さ書きやすさは好きなんだけど、エラー検出力低くないだろうか?
993: 2016/12/26(月)21:30 ID:XJppqmkm(2/2) AAS
ぶっちゃけクソ低い。
TypeScriptたまに触ってると特に感じるわ。
だから対策としてスキーマバリデーションとかが欲しいわけではなくて、リアルタイムチェックや補完の方も欲しい。
あと (register-handler :keyword (fn ...)) 的なのも :keyword をtypoしたりしてムキーってなる。
994: 2016/12/26(月)21:44 ID:aoxifvbm(2/2) AAS
LightTableあかんか……
995: 2016/12/27(火)14:53 ID:ov9/Tp6R(1) AAS
次スレ無いけど埋めとくか
996: 2016/12/28(水)12:12 ID:0ISf0nRp(1) AAS
P言語のIDEだと、アノテーションとメソッドキャッシュで編集時支援ってのが多いかな。
既存のシンボルを集めておく仕組みはあまり聞いたことない気がする。
よく使う単語は補完してくれるので、それか定義してるところからのコピペで何とかしてる。
997(1): 2017/01/04(水)18:40 ID:uHeuKaUg(1) AAS
次スレ
【Lisp】プログラミング言語 Clojure #4【JVM】
2chスレ:tech
998: 2017/01/04(水)23:12 ID:VMJ7nozd(1) AAS
>>997
:よくやった
999: 2017/01/04(水)23:13 ID:J+uePkPh(1) AAS
おつ
1000: 2017/01/04(水)23:14 ID:hkcnZMZu(1) AAS
次スレ
【Lisp】プログラミング言語 Clojure #4【JVM】
2chスレ:tech
1001(1): 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 1194日 12時間 10分 39秒
1002(1): 1002 Over 1000 Thread AAS
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.188s*