2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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

1 :デフォルトの名無しさん:2017/01/04(水) 12:00:49.23 ID:uHeuKaUg.net
JVM上で動作するLisp方言「Clojure」のスレ。

Clojure - home
http://clojure.org/
http://www.try-clojure.org/

前スレ:
【Lisp】プログラミング言語 Clojure #3【JVM】
http://echo.2ch.net/test/read.cgi/tech/1380333808/
【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/

41 :デフォルトの名無しさん:2017/08/13(日) 19:51:35.89 ID:KJ+m5GEj.net
(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:11.94 ID:XAFRApiv.net
reduce

43 :デフォルトの名無しさん:2017/10/31(火) 14:28:53.47 ID:ks1WQGP1.net
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:35.01 ID:ks1WQGP1.net
失敬、バグってたw

45 :デフォルトの名無しさん:2017/11/05(日) 14:30:43.67 ID:aeYzbOC4.net
バグってないコードもかいておくれ

46 :デフォルトの名無しさん:2017/11/05(日) 18:22:24.05 ID:Ejsp/QIe.net
(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:07.55 ID:QNcerxGs.net
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:20.70 ID:7CLJqQI5.net
lein run では問題無く動作するけど
lein uberjar を行おうとすると失敗して困っています
Uberjar aborting because jar failed: Invalid argument というメッセージが表示されています
何方か解決方法を教えていただけると助かります

問題が発生してるコードはこれです
https://github.com/kemono/gaw-00001

49 :デフォルトの名無しさん:2018/01/09(火) 06:37:21.04 ID:lIn3WuFp.net
動かない原因は、: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 "https://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:00.75 ID:IAv+4//d.net
>>49
解決出来ました!!
本当に助かりました!ありがとうございます!!

51 :デフォルトの名無しさん:2018/01/18(木) 20:11:18.76 ID:vOZSq9tB.net
この言語って何に使うの?まさか仕事?

52 :デフォルトの名無しさん:2018/01/19(金) 19:58:18.39 ID:1WY9ihKS.net
5ちゃんで使われてるらしいよ

53 :デフォルトの名無しさん:2018/04/08(日) 19:11:22.71 ID:bJUCDaUD.net
LINE Game Cloudの例に見る関数型言語の特徴
https://engineering.linecorp.com/ja/blog/detail/244

54 :デフォルトの名無しさん:2018/05/23(水) 20:42:00.99 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

SAB28

55 :デフォルトの名無しさん:2018/07/05(木) 01:10:47.40 ID:RfoszcD2.net
ZO6

56 :デフォルトの名無しさん:2018/08/07(火) 00:00:25.28 ID:ahdeFvKS.net
関数型言語で画像処理のプログラムが書きたいんだけど
Common Lispで言う
(setf (aref ary img y x) num)
みたいなn次元配列をmutableでごりごり書き換えるのって
Clojureでできる?

オライリーのCLOJURE PROGRAMMINGとshiro kawai訳のプログラミングClojureの
最初の方は読んだ

57 :デフォルトの名無しさん:2018/08/08(水) 23:16:42.23 ID:o1dMGl8v.net
行列計算をごりごり使うってのは向いてないかなと。
javaなどでごりごり書いて、clojureから使ってるってひとはいるかもしれないが。

いちおうそのためのライブラリはある。
https://neanderthal.uncomplicate.org/articles/getting_started.html

58 :デフォルトの名無しさん:2020/03/16(月) 03:39:58.54 ID:r6kvZN2B.net
bashでパイプから流されてくるプログラムコードの文字列をprity printして綺麗に改行とかインテンドされたコードに変換して保存したい
どうすれば出来ますでしょうか

59 :デフォルトの名無しさん:2020/03/16(月) 09:09:27 ID:BYpTFeXn.net
VSCode みたいな、各言語の言語サーバーを使えば?

60 :デフォルトの名無しさん:2020/03/17(火) 10:10:43.60 ID:hrhIzOSk.net
>>58
pprint

61 :デフォルトの名無しさん:2021/02/18(木) 12:40:26.22 ID:wW4uIUgX.net
Clojure面白いけど日本だといまいち人気ないよね
Leiningenのサイトに行くと変なオッサンが現れるのが原因だと思うんだけど

62 :デフォルトの名無しさん:2021/02/20(土) 22:51:45.01 ID:kotKgp7H.net
最近始めたんだけど、leiningen使えば良いのかdeps.edn使えば良いか混乱した。boot?とかもあるし

63 :デフォルトの名無しさん:2021/02/27(土) 12:17:21.37 ID:IWlmpzlB.net
パッケージシステムってだいたい混沌としてる気がする

64 :デフォルトの名無しさん:2021/03/16(火) 12:27:40.79 ID:tUVUKdZi.net
Ruby on Rails 6 の本を出している人の、入門書が出た

Elixir実践ガイド、黒田努、2021/2/5

Ubuntu 20.04, Docker CE 19.03, Elixir 1.11

65 :デフォルトの名無しさん:2021/03/18(木) 18:18:56.25 ID:+052LPUC.net
clojure使う人ってjavaにも精通してるの?

ごりごりjavaなのをclojureに書き直すプロジェクトとかあるのかな

66 :デフォルトの名無しさん:2021/03/18(木) 20:39:43.08 ID:7a+X5xG9.net
勝手なイメージだかど、Javaの資産やライブラリを使う前提がありそうだから、それなりに知識が必要になりそう

67 :デフォルトの名無しさん:2021/03/18(木) 21:50:06.96 ID:1sWV2MVC.net
>>64
あわしろ氏が総監修のやつか。

68 :デフォルトの名無しさん:2021/05/10(月) 23:29:16.21 ID:zV1+0nw0.net
Clojure 二日目です

(ns example.trumps.card)
(def spades 4)
(def hearts 3)
(def diamonds 2)
(def clubs 1)
(def suit '(spades hearts diamonds clubs))

って定義して

user=> (use 'example.trumps.card)
nil
user=> spades
4
user=> suit
(spades hearts diamonds clubs)
user=> (first suit)
spades
user=> (= (first suit) spades)
false
user=> (= (eval (first suit)) spades)
true

ってなるのが理解出来ません…
特に (= (first suit) spades) が false になるのは何でですかね?
多分「評価」って事と、そのタイミングが理解出来てないんだと思いますが…

69 :デフォルトの名無しさん:2021/05/11(火) 00:27:26.30 ID:5VzwiW7v.net
>>68
丁度 Clojure 三日目になりました

(ns example.trumps.card)
(def spades 4)
(def hearts 3)
(def diamonds 2)
(def clubs 1)
;(def suit '(spades hearts diamonds clubs))
(def suit (conj '() clubs diamonds hearts spades))

って直したらイケました

user=> (use 'example.trumps.card)
nil
user=> spades
4
user=> suit
(4 3 2 1)
user=> (first suit)
4
user=> (= (first suit) spades)
true

リストを作りたいからクォートで評価を止めたので
リストの中身も評価されずに追加されている
って事だったみたいです…

うーん…

70 :デフォルトの名無しさん:2021/05/11(火) 00:56:40.16 ID:5VzwiW7v.net
>>69
んで、こうなりました…

(ns example.trumps.card)
(def spades 4)
(def hearts 3)
(def diamonds 2)
(def clubs 1)
;(def suit '(spades hearts diamonds clubs))
;(def suit (conj '() clubs diamonds hearts spades))
(def suit [spades hearts diamonds clubs])

って定義して

user=> (use 'example.trumps.card)
nil
user=> suit
[4 3 2 1]
user=> spades
4
user=> (get suit 0)
4
user=> (= (get suit 0) spades)
true

インデックス要らないからベクタじゃなくてリストで定義しようとして
クォートで括弧の評価を止めてリストを定義したら
リストの中身も評価されなかったので
クォートの要らないベクタに変更したら
ベクタの中身はちゃんと評価されましたとさ

別にインデックス要らないんだけど…

71 :デフォルトの名無しさん:2021/05/11(火) 10:31:49.88 ID:zfkVf3yY.net
これを (def suit '(spades hearts diamonds clubs))
こうすれば (def suit (list spades hearts diamonds clubs)) 中身を評価したリストが作れる
クォートでやりたいならこれでもいい (def suit `(~spades ~hearts ~diamonds ~clubs)) バッククォートの中はチルダをつけた式だけ評価してくれる

72 :デフォルトの名無しさん:2021/05/11(火) 20:06:43.07 ID:5VzwiW7v.net
>>71
アドバイスありがとうございます!
普通に list 関数でリストを作ればよかっただけだったんですね…

73 :デフォルトの名無しさん:2021/07/07(水) 05:19:35.12 ID:Jk8/Aq6G.net
なんでclojureが流行ってるのかわからない

74 :デフォルトの名無しさん:2021/07/07(水) 15:09:07.62 ID:49748z4f.net
なんでubyが流行ってるのかわからない

ubyは流行ってない

75 :デフォルトの名無しさん:2021/07/07(水) 18:20:58.87 ID:ustzb7y5.net
どこで流行っているのか詳しく...

76 :デフォルトの名無しさん:2021/07/15(木) 01:31:51.73 ID:UxRGUXYq.net
今年からClojure始めて遊んでるけど、はやってるのか?
日本語の記事見ると2013年頃のやつが多い気がするから、一度流行ってみんなどこかに行っちゃったのか?

77 :デフォルトの名無しさん:2021/07/17(土) 17:47:13.48 ID:Q2NmMT6S.net
そのくらいに関数型言語やらscalaとかclojureみたいな次期Java互換言語みたいのが流行った気がする。
あれはなんだったんだろう。

78 :デフォルトの名無しさん:2021/07/17(土) 21:49:07.90 ID:xmQE+uIu.net
Elixir の本なら出た

Elixir実践ガイド、黒田努、2021/2
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11

Scala は、YouTube で有名な、雑食系エンジニア・KENTA が、オワコン認定した!

新規参入が無いから、
コミュニティーに偏屈なベテが居座って、新人にマウントを取ってくる

それで寂れた

79 :デフォルトの名無しさん:2021/07/17(土) 22:37:43.26 ID:niIhu6/Y.net
雑食系エンジニア・KENTAってだれやねん(´・ω・`)

80 :78:2021/07/17(土) 23:10:42.22 ID:xmQE+uIu.net
KENTA のサロンは異例、日本6位の2千人入っている

未経験者の自社開発ウェブ系への転職、
Ruby on Rails の虎の穴

81 :デフォルトの名無しさん:2021/07/17(土) 23:46:21.71 ID:niIhu6/Y.net
(´・ω・`) うわぁ

82 :78:2021/07/18(日) 00:06:09.51 ID:H/NN8O82.net
KENTA は、Java 土方・SES とか、
高額学校とか、マナブの情報商材などを批判するから、
あちこちの経営者から攻撃されている

今も、200万円の学校をぼったくりと言ったので、訴えられたw

こういう手順で勉強すれば、お金が掛からないとか、
安上がりな方法を教えるから、多くの経営者から嫌われている

83 :デフォルトの名無しさん:2021/08/30(月) 16:00:14.46 ID:sXvjxAc3.net
libpython-clj を clojurescript から使うのは無理なのでしょうか?

84 :デフォルトの名無しさん:2021/09/23(木) 05:05:53.26 ID:M6IEENDA.net
lispやhaskellも日本ではちょっと前のほうが流行ってたな
みんなどうしてしまったのだろう

85 :デフォルトの名無しさん:2021/09/30(木) 17:21:48.87 ID:n/Set1um.net
pythonのpythonpathに相当するものないのでしょうか
自分で作ったコードで良く使い回しするもの集めたディレクトリにbashrcでパスを通しておくのpython でよくやってたので
clojureでも同じことできると嬉しい

86 :デフォルトの名無しさん:2023/04/29(土) 08:35:36.05 ID:C7fe7AD16
断じて容認できないのは金正恩し゛ゃなくて,温室効果ガスまき散らして気侯変動させて地球破壊してる國土破壞省た゛ヴォケ>岸田増税文雄
バカチン打ったバカのほうか゛コ口ナ拡散率が高いにもかかわらず全國旅行支援もとい地球破壊支援はハ゛力チン打ったハ゛カが対象.陰性証明は
1曰て゛も空いたり他県またいだら非対象とかやっていなか゛ら入国についてはザ儿、IρCСやら世界中から非難されまくって核ミサイ儿が
すかしっ屁レベ儿の地球破壞活動を繰り返し.テ□国家認定の称号化石賞まて゛連続受賞している世界最悪の地球破壊腐敗テ口国家日本
騷音まき散らして静音か゛生命線の知的産業壞滅させてテ゛ジ夕ル後進国に陥れて.腐敗まみれの税金泥棒どもが税金泥棒公務員と結託して
小学生が夏休みに作ったレベルのJアラ━ト(大爆笑)の税金泥棒っふ゜り露わにしてたり.バカチョンも対抗して曰本海を汚染しようと
コ゛ミ撃ち込もうとするも陸域で爆発させて大騒ぎ、ミサヰ儿補足もできない,税金泥棒シ゛ャクソはイプシ口ンミサヰルにНЗにと見事に失敗w
曰本に原爆落とした世界最悪の覇権主義国家を中心とした地球破壊テ□リス├税金泥棒ポンコツ連盟―匹残らずとっとと解散しろや

創価学会員は.何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ―が□をきけて容認するとか本氣て゛思ってるとしたら侮辱にもほと゛か゛あるぞ!
https://i.imgur.com/hnli1ga.jpeg

87 :デフォルトの名無しさん:2023/08/03(木) 18:53:19.76 ID:Ee057Aaj.net
native imageって使えてる?

88 :デフォルトの名無しさん:2023/12/20(水) 22:34:55.18 ID:/45PPSXv.net
>>78
Scalaが負けたのは単にベターJavaのポジションをKotlinが確保したってのが一番デカいと思うがな

JavaScriptがクソ言語だからってトランスパイルして動かすAltJSが乱立してたけど
CoffeeやPureScript、Elm、Flowとか優秀な言語は沢山あったけど
マイクロソフトがゴリ押ししたTypeScript一強で終わったし

89 :デフォルトの名無しさん:2024/01/31(水) 01:32:58.89 ID:+kvetBHm.net
Clojureの本スレだと思うけど、何でこんなに過疎ってんの?

90 :デフォルトの名無しさん:2024/04/11(木) 17:52:27.27 ID:jfKO/2Xn.net
>>89
他のプログラミング板も過疎ってるし
こんなもんじゃね?

28 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★