黒木玄 Gen Kuroki
- いいね数 389,756/311,170
- フォロー 995 フォロワー 14,556 ツイート 293,980
- 現在地 (^-^)/
- Web https://genkuroki.github.io/documents/
- 自己紹介 私については https://twilog.org/genkuroki と https://genkuroki.github.io と https://github.com/genkuroki と https://github.com/genkuroki/public を見て下さい。
2020年10月10日(土)
私の記事のコメント欄から転載。JuliaがLispより優れている点が挙げられています。
"逆にLisp側(リスト操作マクロ)のデメリットは構文情報が欠落するということです。"(続く)
#Julia言語 #Lisp twitter.com/muuumin20/stat...
posted at 23:06:51
「掛け算に順序があるなら、足し算にも順序があることになるじゃないか?」
これは、ある意味「背理法」で、「掛け算の順序を認めるとこんなバカなことになりますよ」ということで言っていたけど、
「当然その通りですが何か?」と言われてしまって、
「馬鹿に理屈は通じない」と悟ったのであった。 twitter.com/CoffeeCup2018/...
タグ:
posted at 21:35:36
Optional arguments in Rust macro definition qiita.com/liubin/items/7... #Qiita
これな…(´・ω・`)
タグ: Qiita
posted at 21:12:32
当初は足し算の順番なんて掛算順序を皮肉るブラックユーモアだとしか思ってなかったけど、真剣に主張する教員がいると知ったときは驚天動地の衝撃だった。どうしてこうなった。 twitter.com/siawasensei/st...
タグ:
posted at 20:56:23
#Rust言語
誰かが雑談していることが大事。
doc.rust-lang.org/reference/macr...
The Rust Reference
Macros
The functionality and syntax of Rust can be extended with custom definitions called macros. They are given names, and invoked through a consistent syntax:some_extension!(...).
タグ: Rust言語
posted at 20:42:12
ローカルのWebコンテンツをブラウザに表示してFluvidで録画しようと思ったら、ローカルコンテンツは録画できないというエラーが出た。そこでローカルマシンにXAMPPを入れて自前のWebサーバ経由で表示させたら録画できた。いいのかそれで
タグ:
posted at 20:40:31
#Julia言語 以上の遊び を繰り返せば、Expr型オブジェクトのイメージがつかめます。しかし、その中身の操作もできるようになるためには、内部構造をdumpして確認する経験も必要です。
dump(:(sin(π/6)))
または
Meta. @ dump sin(π/6)
で中身の詳細が見える。
gist.github.com/genkuroki/b410... pic.twitter.com/f2f6AGgarT
タグ: Julia言語
posted at 20:34:45
#Julia言語 Lisp風のタプルで書かれた式を得るには、例えば、
Meta. show_sexpr(:(sin(π/6))
を実行します。結果は
(:call, :sin, (:call, ./, π, 6))
になります。これを @ tevalで実行すると
0.49999999999999994
がえられる。@ tevalでは、:call をある程度省略可能にしてあります。 pic.twitter.com/Aef5DRxrBW
タグ: Julia言語
posted at 20:18:21
#Julia言語 続き~
gist.github.com/genkuroki/b410...
tuple processing language
です。空行とコメントを除くと13行しかない。
@ teval はタプルで書かれたLisp風の式をJuliaで実行可能な「式」に変換して実行するまくろです。
タプルで書かれた式で、Plotsパッケージを読み込んでグラフも書ける。 pic.twitter.com/yeyJatwMn0
タグ: Julia言語
posted at 20:13:09
juliaで
function csa(a,b,c,carry_in=0)
s = (a ⊻ b) ⊻ c
c = (((a & b) | (a & c) | (b & c)) << 1) | carry_in
return (s, c)
end
みたいに回路っぽいのを書いてます
タグ:
posted at 19:59:16
Gen.jlで作った線形確率モデル。出力をnorm=1に規格化している。いままで使ってきたMCMCライブラリよりはるかに使いやすい。
#Julia言語 pic.twitter.com/wLcmk4S5d9
タグ: Julia言語
posted at 19:44:57
#Julia言語
JuliaのマクロもJuliaのすべての機能を使えます。
何でもあり。
しかし、私はそれが普通だと思っていた。
Juliaのそういう所はCommon Lispに似ている。
Common LispからJuliaへの移住者の例↓
tamaspapp.eu/post/common-li... twitter.com/hyotang666/sta...
タグ: Julia言語
posted at 19:05:56
ナショナル ジオグラフィック TV @natgeotv_jp
わずか3秒で時速100キロまで加速するチーター。そんな地上最速の捕食者でも、狩りが百発百中というわけではない。
bit.ly/NatGeoYouTubeJP
#ナショジオ pic.twitter.com/FBGf4o9gr5
タグ: ナショジオ
posted at 19:00:01
Common LispマクロのすごいとこはCommon Lispのすべての機能が使えるところで、つまりマクロ展開中にライブラリをネットからインストールしてロードしてそれでネットに接続してjsonを落としてきてparseして必要なとこだけ使ってS式を組み立てるとかできるとこだと思う(極論)
タグ:
posted at 18:21:45
25LGTM! | Google ColabでJuliaを使う:元々あるノートブックを使う by @cometscome_phys bit.ly/3lwo1wH
タグ:
posted at 18:20:01
> 名前がわかりづらいって?
Common Lispにはそんな方のためにfirst、restもサポートされてますよ。
さらに仕様によりsecond~tenthまで保証されてます。 twitter.com/muuumin20/stat...
タグ:
posted at 18:16:58
#Julia言語 pkg> up するとPlots.jlの(正確に言えばFFMPEGの)プレコンパイルにこける問題
私は最新版をそのまま使い、PATH環境変数をstartup.jlで設定することによってしのぎました。これはWindowsの場合。他のOSではLD_LIBRARY_PATHの場合もある。
github.com/JuliaIO/FFMPEG... twitter.com/msekino_ml/sta...
タグ: Julia言語
posted at 18:04:41
小菅 信子 Nobuko M KOSUG @nobuko_kosuge
和解研究なんて、復讐研究そのものです。復讐はなぜ起きるか、暴力はなぜ連鎖するか、原因をつきとめ和解の条件をさぐるという感じです。
だから先々になりますが「復讐」の本を出します。
タグ:
posted at 17:48:22
#Julia言語 既出の
julia-users.narkive.com/bs3abQsV/julia...
tamaspapp.eu/post/common-li...
の両方で強調されていることは、数値計算における
* 成分の型が前もって決まっていない配列への対応の必要性。
成分の型が異なる配列の計算でコードを共有したい。しかも前もって予定していなかった成分の型も許したい。続く
タグ: Julia言語
posted at 17:42:36
#Julia言語
julia-users.narkive.com/bs3abQsV/julia...
【Stefan Karpinski
We were never directly influenced by Dylan.~Any linguistic
similarities are due to common influences (e.g. Lisp, Pascal, Algol),~I'm not sure what the reasons were for
Dylan choosing multiple dispatch, but for us ~】
タグ: Julia言語
posted at 17:25:52
Re: RT Lisp & Julia の「マクロで遊ぼう話」に Rust も参加して来るとさらにおもろい話になりそう。
シンプルなexamplesを幾つか見せてもらわないと感じがつかめない。 twitter.com/rithmety/statu...
タグ:
posted at 17:16:33
#Julia言語 参考情報
Common LispからJuliaに引っ越した人がその理由を次のリンク先で述べています。
tamaspapp.eu/post/common-li...
JuliaにはCommon LispやDylanに似ている。同じ人による「Common LispとDylanとJuliaの優位性」に関するコメント↓
discourse.julialang.org/t/design-patte...
twitter.com/muuumin20/stat...
タグ: Julia言語
posted at 16:49:02
まさか加算代入で躓くとは…
えぇぇぇ…
#julialang
#プログラミング
posted at 16:31:59
#Julia言語 #マクロ 【ネタ】
using Plots
plot(sin; label="sin(x)", size=(400, 250))
と同じことを添付画像のように「タプル式」の実行でも可能(笑)。
gist.github.com/genkuroki/b410... pic.twitter.com/RDQU0ZbCCC
posted at 16:23:38
#Julia言語 ゲロゲロ
github.com/JuliaIO/FFMPEG... と同じトラブルでPlots.jlを使えなくなった。私はWindowsなので
c:\Users\genkuroki\.julia\config\startup.jl
に
ENV["PATH"] = ENV["PATH"]*";"*raw"見付からないと言われたdllファイルが置いてあるディレクトリのフルパス"
と書いてしのいだ。
タグ: Julia言語
posted at 16:08:52
rarefactionです。よく見ると原点のあたりで滑らかでない箇所があります。Stegar-WarimingのFVSだと音速点において弱い不連続を生じることが知られています。これを解決するためにVan LeerのsplittingやAUSMなどの発展的スキームがあります。 pic.twitter.com/N2V5gygzuG
タグ:
posted at 15:56:54
JuliaでBurgers方程式解かせました。解法はStegar-WarmingのFlux Vector Splittingです。Burgers方程式はEuler方程式とは違い、homogeneity propertyを満たさないので、Vázquez-CendónのSplittingで計算しています。
Juliaでとても書くの楽です。普段使いにしようと思います。 pic.twitter.com/57GwM3QCOF
タグ:
posted at 15:29:51
非公開
タグ:
posted at xx:xx:xx
#Julia言語 JuliaのExprの直接的構成によって、タプルで書かれたLisp風のコードを容易に実行可能にできることについては
gist.github.com/genkuroki/b410...
を参照。添付画像のようなことをできる。
もちろんこれは【ネタ】で、ゲラゲラ笑ってもらえるとうれしいです。😊 pic.twitter.com/s02IdVNOyI
タグ: Julia言語
posted at 15:05:42
#Julia言語 JuliaにおけるExprの理解のためには
gist.github.com/genkuroki/fe9c...
を参照。添付画像では同一のExpr
:(function bar(a::T; b = 456) where T <: Real
println(a, " + ", b, " = ", a + b)
a + b
end)
の表現集です。見かけが違うだけで全部同じという認識が大事。 pic.twitter.com/VvyC1ZZV01
タグ: Julia言語
posted at 15:02:11
#Julia言語 再掲
* JuliaでのExprの直接操作によるマクロとLispでののマクロの優劣はないと私は思う。
* Juliaにおいて「人間に易しい表示」でもマクロを易しく書けるとありがたいが、現時点では無理だと私は思う。今後の発展に期待したい。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 14:55:57
#Julia言語 以下のリンク先での
【もとの函数が
function bar(a::T; b=456) where T<:Real
println(a, " + ", b, " = ", a + b)
a + b
end
でもうまく行きます】
という注意は見逃してはいけないコメント。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 14:22:15
#Julia言語 例えば、
muuuminsan.hatenablog.com/entry/2020/10/...
【もう一つ、MacroToolsというものを使うコードも例示されていたが、こちらの方が教育的だ】
としているマクロは函数定義の「頭の部分」の再構成が不十分で
function f(x::T) where T<:Real ~ end
のように定義された函数には使用できません。続く
タグ: Julia言語
posted at 14:12:34
@antimon2 @muuumin20 #Julia言語 私は「人間にとって易しい表示」と「実体」の話を分けて考えた方がよいと思っています。Juliaでの式を
:(sin(π/6))
のような「人間にとって易しい表示」で式を扱うことと、これと等価な
Expr(:call, :sin, Expr(:call, :/, π, 6))
(内部では head, args 複合体になっている)
を~続く
タグ: Julia言語
posted at 14:02:21
#Julia言語 タプルで書かれたLispっぽいコードはたった数行のプログラムでJuliaで実行可能な式に変換できます(添付画像1のtuple2expr函数)。
こういうことができる点も、Juliaが教育用プログラミング言語として__も__使えると私が考えるゆえん。
gist.github.com/genkuroki/b410... pic.twitter.com/FIXknxcmV9
タグ: Julia言語
posted at 13:49:24
Julia、他の言語との連携を考えるならWEBアプリにしたてるのも手かな?Genieというものが定番のフレームワークっぽい?
github.com/essenciary/Gen...
タグ:
posted at 13:46:52
#Julia言語
gist.github.com/genkuroki/b410...
tuple processing language.ipynb
Lisp-like example を追加した。
タプルで書かれたLispっぽいコードがJuliaの式に変換されて実行されています。
これを見れば、Lispを知っている人はJuliaについて理解し易いかも。car, cdrの定義は上のリンク先を参照。 pic.twitter.com/5EdwVaykKV
タグ: Julia言語
posted at 13:42:42
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
@sasaburo @hydrocoastjp #Julia言語
寝転んで、iPadのブラウザから自宅内Jupyterサーバーに接続してJuliaを使っています。ついさっきまで使っていたノートブックをワンボタンでGitHub Gistに投稿しておきました。
私のgistには1000以上のJuliaのノートブックがあるものと思われます。
gist.github.com/genkuroki/da67...
タグ: Julia言語
posted at 12:09:31
非公開
タグ:
posted at xx:xx:xx
@sasaburo @hydrocoastjp #Julia言語 逆に添付画像のようにすれば行列を分割することもできます。 twitter.com/sasaburo/statu... pic.twitter.com/KX0D76QQrQ
タグ: Julia言語
posted at 11:41:22
@sasaburo @hydrocoastjp #Julia言語 行列、縦ベクトル、横ベクトル、スカラーを組み合わせて、より大きな行列を作ることもできます。
線形代数の教科書における行列の分割にあたることをそのままできます。
Juliaと線形代数は非常に相性がよいです。 pic.twitter.com/jaeiBfkJB0
タグ: Julia言語
posted at 11:31:37
@hydrocoastjp @sasaburo #Julia言語 a, b, cが長さ3の縦ベクトルのとき
[a b c]
は3×3行列になります。 pic.twitter.com/AzdgrcJzqP
タグ: Julia言語
posted at 11:17:54
@beatboard1 「増加だろうが合併だろうが足し算に順序がある」
vs「順序があるのは増加だけ」
という、トンデモ算数同士の五十歩百歩の内ゲバ
twitter.com/siawasensei/st... pic.twitter.com/wlBIHcNU4j
タグ:
posted at 11:04:53
#Julia言語 いつもお世話になっていてかつ速くてびっくりのあんちもん2さん。head :vect を head :tuple に置き換える「手抜き」の話。
Juliaだとネストしたタプルを左辺で使える。例えば
(a, (b, c)) = (1, (2, 3))
でa,b,cをそれぞれ1,2,3にできる。 twitter.com/antimon2/statu...
タグ: Julia言語
posted at 11:04:23
e^iπ+1@Shadow UnBann @Shollow6
Julia言語、久々に1.2.0から1.5.2にアップデートしたら、すっげぇ速くなってた。
もともと速かったけど。
タグ:
posted at 11:00:49
@hydrocoastjp ありがとうございます!
とりあえず[r1 r2 r3]を試してみたところ、3×3ではなく1×3になってしまうようです。
他も試してみます!
タグ:
posted at 10:48:56
#Julia言語 Juliaのマクロを理解するために役に立つ情報(ネタ)
S式風のタプル式
(:call, :sin, (:call, ;/, π, 6))
をJuliaの式
Expr(:call, :sin, Expr(:call, ;/, π, 6))
に変換して実行するマクロ。これは :(sin(π/6)) に等しい。
この辺の知識があるとJuliaのマクロを理解し易くなる。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 10:48:50
@muuumin20 #Julia言語 [at]dbind マクロやっつけ版書いてみました。Juliaだと左辺がtupleなら普通に構造化代入できちゃうので配列の書式だったらtupleに変換するだけの手抜き版💦
gist.github.com/antimon2/23082...
タグ: Julia言語
posted at 10:44:11
#Julia言語 #Lisp 何はともあれ拡散 twitter.com/muuumin20/stat...
posted at 10:40:25
@sasaburo [r1 r2 r3]
hcat(r1,r2,r3)
cat(r1,r2,r3; dims=2)
これらのどれかですかね?
docs.julialang.org/en/v1/manual/a...
タグ:
posted at 10:34:18
@jiamao0106 Rについては役に立たないかもさけれど、数値計算周りのハードウェアの説明はこれがおすすめ。(julia言語めっちゃいいよ!)
biojulia.net/post/hardware/
タグ:
posted at 09:57:13
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
Ars technica article on how multiple dispatch in #julialang makes packages just 'magically' work together and how this realization is giving Julia a second boost of popularity now.
arstechnica.com/science/2020/1...
タグ: julialang
posted at 06:40:11
One of my long term favorite news sites Ars Technica is writing a great story on my favorite language Julia, explaining why it is taking the scientific world with storm. #JuliaLang #programming #science arstechnica.com/science/2020/1...
タグ: JuliaLang programming science
posted at 06:15:32
#Julialang 実測データを非線形なモデル関数で回帰分析したMCMCな例をTuring.jl tutorialの中から見つけられない。golf putting modelっていうこのブログは役立ちそう。jduncstats.com/tag/turing.jl/
タグ: Julialang
posted at 06:02:02
伯父さんの反抗期エピソード、「反抗期だから反抗しなくちゃ」感あってめっちゃ可愛いからマンガにしました
#寄り道日記 pic.twitter.com/fie9OBa9ta
タグ: 寄り道日記
posted at 05:00:13
I've succeeded to self-profile TypeProfiler.jl; I'm so happy that it detected true errors within TypeProfiler.jl itself, while there're only few false-positives. It even found a possible error point within Julia's compiler code itself (isnan isn't defined)
github.com/aviatesk/TypeP... pic.twitter.com/VWkaKc7d1P
タグ:
posted at 04:55:57
Stefan Karpinski @StefanKarpinski
Great article about #JuliaLang. Excellent work, @lpfeed! twitter.com/lpfeed/status/...
タグ: JuliaLang
posted at 02:46:25
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
JuliaとLispのマクロの記事、続きを書きました。
はてなブログに投稿しました #はてなブログ #Julia言語 #Lisp
Juliaのマクロは凄かった。Lispは果たして勝てるのか? - SE教育パパむううみんのブログ
muuuminsan.hatenablog.com/entry/2020/10/...
posted at 02:29:18
A really nice article. We use Julia for all of those reasons, but also because it is just a joy writing Julia code. It is friendly yet intellectually satisfying at the same time. #julialang twitter.com/lpfeed/status/...
タグ: julialang
posted at 01:24:36
#Julia言語 Juliaのコードに対応するタプル式は
Meta. show_sexpr(quote ~Juliaのコード~ end)
で得られます。コピー&ペーストして @ t を付ければ概ね(すべての場合とは言わない)実行できるはずです。
ソースコードのありかの再掲↓
gist.github.com/genkuroki/b410...
タグ: Julia言語
posted at 01:18:09
#Julia言語 タプル式でもっと複雑な函数(例えばforループやifelseを含む函数)を定義して実行することもできます。
添付画像1がタプル式によるプログラムで添付画像2がその実行結果です。1億回ループを回していますが、Juliaなので一瞬で計算が終わります。
ゆかい、ゆかい(笑) pic.twitter.com/s1CAcXIjFD
タグ: Julia言語
posted at 01:15:30
#Julia言語 タプル式内で函数の定義と実行の両方を行うこともできます。その場合にはタプル式内に2つの文を入れることになるので、:block を使います。
(:block,
(:function, :(g(x)), (:block, (:call, :sin, :x))),
(:call, :g, (:call, :/, π, 6))) pic.twitter.com/sBSc4nxPb0
タグ: Julia言語
posted at 01:13:37
#Julia言語 タプル式で函数も定義できます。
(:(=), (:call, :f, :x), (:call, :sin, :x))
で f(x) = sin(x) と定義できます。In[4]ではそのようにして定義した f(x) を使って f(π/6) を計算しています。続く pic.twitter.com/8kukK5onn9
タグ: Julia言語
posted at 01:12:10
#Julia言語 タプル式でsin(π/6)を計算してみましょう。
(:call, :sin, (:call, :/, π, 6))
を実行すれば sin(π/6) を計算できます。:call を省略して
(:sin, (:/, π, 6))
でも同じ結果が得られるようにしてあります。続く pic.twitter.com/0sTKEJrnoS
タグ: Julia言語
posted at 01:10:40
#Julia言語 【ネタ】tuple processing language
S式っぽいタプルでJuliaの式を与えると、それを解釈して実行してくれるマクロ(笑)
空行とコメントを合わせても33行しかありません。続く
gist.github.com/genkuroki/b410... pic.twitter.com/QJHFkulQgK
タグ: Julia言語
posted at 01:10:39