【Lisp】プログラミング言語 Clojure #4【JVM】 [無断転載禁止]©2ch.net (89レス)
上下前次1-新
26: 2017/03/02(木)00:51 ID:5Cm7dTQ2(1/2) AAS
javaと変換を扱うライブラリあるけど、可変にするものではなさそう。
外部リンク[data]:github.com
外部リンク:github.com
外部リンク:github.com
行列みたいな計算向けは可変あるけど、一般的なjavaのって話ではないか。
これも操作を完結する感じなので、java関係なさそう。
外部リンク:github.com
abclもlispobjectとあるので、直接は扱えないのかな?
外部リンク:abcl.org
27: 2017/03/02(木)00:56 ID:5Cm7dTQ2(2/2) AAS
そういえば、こんなのあったね。
外部リンク:github.com
外部リンク[html]:docs.caudate.me
28: 2017/03/02(木)22:07 ID:7sf+xG/k(1/2) AAS
あらためて調べて考えたんだけど
javaでは、ヴァルハラがくるまで、ジェネリクスパラメータにプリミティブが使えないんだよね
じゃあ例えばリストを使う場合に特定の参照型、例えばboxed Doubleのような参照型が要素になり、結局mutableのメリットがなくなるってことなのかな
javaはあまり詳しくないけど、プリミティブはメモリを直接上書きするから、高速
オブジェクトは変更されると、
動的に新しい値がメモリに割り当てられ、古いデータはGCに回収されるとする
そうするとミュータブルクラスはパーシステントクラスを使ってるのと決定的な差がなくなってくるという考えに行き着くんだけど
29: 2017/03/02(木)22:17 ID:dlTbMJUn(1) AAS
javaだとgc避けるために、off-heepのスタック領域などにリングバッファ作って処理する話が出てくるね。
30: 2017/03/02(木)22:58 ID:7sf+xG/k(2/2) AAS
lmaxのdisruptorとか?
てかいまのやりとりでようやく固定長のキューではなくリングバッファ使っている理由がなんとなくわかった気がするわ
31: 2017/03/06(月)14:04 ID:R0WeGFec(1) AAS
>>25
それ必要かな?
メモリセンシティブな用途以外出番なくね?
32(1): 2017/03/06(月)23:40 ID:MJoZTqPl(1) AAS
clojureでbigdataな処理をやりたいとかね
sparkとかつかえよっていう話かもしれないが
とりあえずletをうまくつかったら40分の計算が9秒になったわ
だがrepl出力にアウトプットをそのまま垂れ流そうとすると標準i/o出力に40分かかってしまう
ちなみに9秒になったのはlazyで計算されてないわけではなく計算値のlastは普通に12(9+3)秒程度で取得できる
大型なデータのrepl出力を手軽に高速化する方法ってないのかな
なんか挙動見てる限りchunk seqをちまちま出力しているように見える、計算結果はinto []してるんだけどな
33: 2017/03/07(火)01:35 ID:72cHV2nQ(1) AAS
>>32
replの出力鈍いからなぁ
ものすげぇ長い戻り値って端からわかってるならファイルに書いちゃうのが吉
いつもemacs+ciderでうぼあーってなる自分が言うのもなんだけど
34: 2017/03/07(火)02:02 ID:TRrf8/Mo(1) AAS
あれから少し調べたけど
system/outがそもそも遅いみたいね
普通にreplの挙動を考えると1ラインで1システムコールだもんな
OSコールと描画のオーバーヘッドは無視できない
とりあえずbufferedwriterでsystem/outを包んでやるか、素直にfileに出すのが良さそうね
だからみんなtimbreとかlog4jとか使ってるわけだ
35: 2017/03/07(火)23:38 ID:4Kmn9smG(1) AAS
unixならtail -fなりでいいしね。winで調べたらpowershellか。
36: 2017/03/09(木)13:15 ID:fDJtN/vS(1) AAS
いろいろ調べたけどそもそも計算できてなかったわ
lazy-seqのvectorになってただけだった
37: 2017/05/05(金)13:48 ID:H2WcmmXo(1/2) AAS
facebook傘下のwitaiが基盤実装をclojureからc++かhaskellに移行する予定だったらしく、haskellにしたとのこと。
移行したら読みやすいみたいな話もちょっとだけ。
clojureの場合、ライブラリは一度作るまでいろいろいじって、一回出来るとあまりいじらないイメージもあるけど、実装を多人数でよくいじるみたいなのだと、難しいのかな?
IDE上手く使えばそういう開発もできるのだけど、最初からなんでも決まってるほうがいいってのはgo見るとわかる気もする。
外部リンク:wit.ai
38: 2017/05/05(金)13:57 ID:H2WcmmXo(2/2) AAS
外部リンク:postd.cc
外部リンク:postd.cc
gc関連の話題に触れると、基盤系はgcチューニングに結構リソース割いてるgoやそもそもgc回避できるrustが来そうってのはあるが、
javaはどうなってくんだろうね。
JVM言語向けのvmやpauseless vmを開発してる話は聞くんだけど、あまりリソースが割けてなさそう。
39: 2017/05/05(金)21:49 ID:MDgrGB6E(1) AAS
spec方面でエコシステムが育って来てるようだけど、どれぐらいで落ち着いて参入しやすくなるかな?
外部リンク:www.slideshare.net
40: 2017/05/30(火)19:28 ID:5LsaYMbU(1) AAS
threading macroを使ったSeqの途中で一時変数(let)を使いたいんだけど、どうすれば良いの??
41: 2017/08/13(日)19:51 ID:KJ+m5GEj(1) AAS
(A 1 2 3 B 1 2 C 1 2 3 4)
から
((A 1 2 3) (B 1 2) (C 1 2 3 4))
を得たいのですが、loop、recur以外のよい方法はあるでしょうか?
42: 2017/10/31(火)07:56 ID:XAFRApiv(1) AAS
reduce
43: 2017/10/31(火)14:28 ID:ks1WQGP1(1/2) AAS
Clojure知らんのだけど、CLならこんな書き方も
(defun ochinchin (xs)
(mapcon (lambda (xs &aux (head (first xs)) (tail (rest xs)))
(when (symbolp head)
(list (subseq xs 0 (position-if (lambda (x) (not (numberp x))) tail)))))
xs))
(ochinchin '(A 1 2 3 B 1 2 C 1 2 3 4))
==> ((A 1 2) (B 1) (C 1 2 3 4))
44: 2017/10/31(火)14:31 ID:ks1WQGP1(2/2) AAS
失敬、バグってたw
45: 2017/11/05(日)14:30 ID:aeYzbOC4(1) AAS
バグってないコードもかいておくれ
46: 2017/11/05(日)18:22 ID:Ejsp/QIe(1) AAS
(position-if (lambda (x) (not (numberp x))) tail)
の部分を、↓
(let ((n (position-if (lambda (x) (not (numberp x))) tail)))
(when (numberp n) (1+ n)))
もしくは、アナフォリックマクロライブラリが使えるなら
(awhen (position-if (lambda (x) (not (numberp x))) tail)
(1+ it))
ですね。 ◎
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
47: 2017/11/07(火)09:53 ID:QNcerxGs(1) AAS
Clojureということでシーケンスを使って、以下はどうでしょうか?
(defn foo
[xs]
(->> xs
(partition-by char?)
(partition-all 2)
(map (partial apply concat))))
> (foo [\a 1 2 3 \b 4 5 \c 6 7 8])
((\a 1 2 3) (\b 4 5) (\c 6 7 8))
48: 2018/01/08(月)22:31 ID:7CLJqQI5(1) AAS
lein run では問題無く動作するけど
lein uberjar を行おうとすると失敗して困っています
Uberjar aborting because jar failed: Invalid argument というメッセージが表示されています
何方か解決方法を教えていただけると助かります
問題が発生してるコードはこれです
外部リンク:github.com
49(1): 2018/01/09(火)06:37 ID:lIn3WuFp(1) AAS
動かない原因は、:resource-paths ["resources" "lib/jme3/*"]
lein2になってからワイルドカード使ってjarをまるごと解決ってのが出来なくなってlein runすら動かないと思うし、直接lib/jme3/hoge.jarみたいに指定しても、uberjar時にjar内にjarが出来てそのままではうまくいかない
簡単な解決方法としては、Mavenレポジトリを使った方法で、以下変更点によってlein uberjarがうまくいく
念のためleinのアップデートもね
; project.clj
(defproject tiny-game "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.8.0"]
[org.jmonkeyengine/jme3-core "3.2.0-stable"]
[org.jmonkeyengine/jme3-desktop "3.2.0-stable"]
[org.jmonkeyengine/jme3-plugins "3.2.0-stable"]
[org.jmonkeyengine/jme3-jogg "3.2.0-stable"]
[org.jmonkeyengine/jme3-blender "3.2.0-stable"]
[org.jmonkeyengine/jme3-lwjgl "3.2.0-stable"]]
:repositories {"jcenter" {:url "外部リンク:jcenter.bintray.com
:resource-paths ["resources"]
:main tiny-game.core
:aot :all)
; core.clj
(ns tiny-game.core
(:gen-class)
...)
50: 2018/01/09(火)08:36 ID:IAv+4//d(1) AAS
>>49
解決出来ました!!
本当に助かりました!ありがとうございます!!
51: 2018/01/18(木)20:11 ID:vOZSq9tB(1) AAS
この言語って何に使うの?まさか仕事?
52: 2018/01/19(金)19:58 ID:1WY9ihKS(1) AAS
5ちゃんで使われてるらしいよ
53: 2018/04/08(日)19:11 ID:bJUCDaUD(1) AAS
LINE Game Cloudの例に見る関数型言語の特徴
外部リンク:engineering.linecorp.com
54: 2018/05/23(水)20:42 ID:Au5e7VGg(1) AAS
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
SAB28
55: 2018/07/05(木)01:10 ID:RfoszcD2(1) AAS
ZO6
上下前次1-新書関写板覧索設栞歴
あと 34 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.006s