Julia Juno Jupyter part1 [無断転載禁止]©2ch.net (745レス)
1-

1
(2): 2016/02/12(金)19:05 ID:zhNvVfnf(1/4) AAS
LLVM で動く Julia のお勉強
Python に少し似てネイティブの速さで動く素敵な関数型言語
外部リンク:julialang.org
外部リンク:junolab.org
外部リンク:jupyter.org

関連
Pythonista のための Julia 100 問 100 答
外部リンク:bicycle1885.hatenablog.com
2: 2016/02/12(金)19:06 ID:zhNvVfnf(2/4) AAS
みなさんの貢献が求められています
外部リンク:pkg.julialang.org
外部リンク:docs.julialang.org
3: 2016/02/12(金)19:11 ID:zhNvVfnf(3/4) AAS
C の関数を呼ぶのも簡単
外部リンク:docs.julialang.org
ツールが無くても可能ですが他にも便利なのがあるのでお好みで
Clang.jl
外部リンク[jl]:github.com
Cpp.jl
外部リンク[jl]:github.com
Cxx.jl
外部リンク[jl]:github.com
4: 2016/02/12(金)19:36 ID:zhNvVfnf(4/4) AAS
私が Julia を推す理由 (翻訳)
外部リンク:d.hatena.ne.jp
原文
外部リンク[html]:www.evanmiller.org
Julia の開発環境を構築してみる (IJulia)
外部リンク:qiita.com
科学計算が得意な言語 Julia を試してみた
外部リンク:qiita.com
Gadfly
外部リンク:gadflyjl.org
Plotly
外部リンク:plot.ly
5: 2016/02/12(金)23:29 ID:5fxI8DGs(1) AAS
実は数年前にここでjuliaスレ立てたんだが落ちたんだよなあ。。。。
6: 2016/02/13(土)10:10 ID:3L3e3K/U(1/7) AAS
漏れもなんとなく見覚えがある気がするんだよなぁ・・・

落ちる条件ってなんだっけ
7
(1): 2016/02/13(土)10:11 ID:3L3e3K/U(2/7) AAS
という訳で保守がてら

juliaからCの関数を呼んでみた

julia> ccall(:printf, Void, (Ptr{Cchar}, Ptr{Cchar}), "%s", "abc")
abc
julia> ccall(:printf, Void, (Ptr{Cchar}, Ptr{Cchar}, Int), "%s%d", "abc", 9)
abc9

引数の数が自由なのがいいねっ!
8
(2): 2016/02/13(土)10:12 ID:3L3e3K/U(3/7) AAS
おれおれDLLだと呼び出し方がちょっと変わるみたい
(最近仕様が変わったらしいので古いドキュソの通りやると動かない
っていうか最新のドキュソもまだ動かないサンプルのままだぞω)

julia> libcurl = Base.Libdl.dlopen_e("./libcurl.dll")
Ptr{Void} @0x2c76e2c0
julia> curl_version = Base.Libdl.dlsym(libcurl, :curl_version)
Ptr{Void} @0x6b25c740
julia> curl_getenv = Base.Libdl.dlsym(libcurl, :curl_getenv)
Ptr{Void} @0x6b25c854
julia> curl_free = Base.Libdl.dlsym(libcurl, :curl_free)
Ptr{Void} @0x6b25cbf8
julia> p = ccall(curl_version, Ptr{Cchar}, ())
Ptr{Int8} @0x6b29c060
julia> ccall(:printf, Void, (Ptr{Cchar}, Ptr{Cchar}), "%s", p)
libcurl/7.30.0 OpenSSL/1.0.1e zlib/1.2.7
julia> q = ccall(curl_getenv, Ptr{Cchar}, (Ptr{Cchar}, ), "NUMBER_OF_PROCESSORS")
Ptr{Int8} @0x2c76df10
julia> ccall(:printf, Void, (Ptr{Cchar}, Ptr{Cchar}), "%s", q)
8
julia> ccall(curl_free, Cuint, (Ptr{Void}, ), q)
0x00000001
julia> Base.Libdl.dlclose(libcurl)

うっかり解放忘れそう
9
(2): 2016/02/13(土)10:14 ID:3L3e3K/U(4/7) AAS
stdcallな関数だとさらにこんな感じだよ

julia> user32 = Base.Libdl.dlopen_e("user32.dll")
Ptr{Void} @0x2c767300
julia> MessageBoxA = Base.Libdl.dlsym(user32, :MessageBoxA)
Ptr{Void} @0x76c6cf50
julia> err = ccall(MessageBoxA, stdcall, UInt, (Ptr{UInt}, Ptr{Cchar}, Ptr{Cchar}, UInt), 0, "Hello, work!", "Message", 0)
0x00000001

wchar_tはArray{UInt16,1}らしい(UTF8を表示したければ先にwchar_tへの変換が必要)

julia> MessageBoxW = Base.Libdl.dlsym(user32, :MessageBoxW)
Ptr{Void} @0x76c6d280
julia> err = ccall(MessageBoxW, stdcall, UInt, (Ptr{UInt}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt), 0, Array{UInt16,1}([0x304C,0x3063,0xFF01,0]), Array{UInt16,1}([0x306C,0x308B,0x307D,0]), 0)
0x00000001
julia> Base.Libdl.dlclose(user32)

解放解放

引数や戻り値の定義を呼び出しのたびに何度も書くの面倒なのでマクロを書くのが良いらしいよ
10
(1): 2016/02/13(土)10:17 ID:3L3e3K/U(5/7) AAS
>っていうか最新のドキュソもまだ動かないサンプルのままだぞω

ああごめん動くわ
11
(3): 2016/02/13(土)10:22 ID:3L3e3K/U(6/7) AAS
ccall(:printf, Void, (Ptr{Cchar}, Ptr{Cchar}), "%s", ccall((:curl_version, :libcurl), Ptr{Cchar}, ()))

err = ccall((:MessageBoxW, :user32), stdcall, UInt, (Ptr{UInt}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt), 0, Array{UInt16,1}([0x304C,0x3063,0xFF01,0]), Array{UInt16,1}([0x306C,0x308B,0x307D,0]), 0)

Array{UInt16,1}のところはArray{Cwchar_t}とかVector{Cwchar_t}とも書ける

err = ccall((:MessageBoxW, :user32), stdcall, UInt, (Ptr{UInt}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt), 0, Vector{Cwchar_t}([0x304C,0x3063,0xFF01,0]), Array{Cwchar_t}([0x306C,0x308B,0x307D,0]), 0)

これでいいね
loadは省けるけど毎回loadと解放してくれてるんだろうか
12: 2016/02/13(土)10:31 ID:Qsay8O0p(1) AAS
>>8
>OpenSSL/1.0.1e

ワロス
13
(1): 2016/02/13(土)11:59 ID:3L3e3K/U(7/7) AAS
もう少しちらうら
julia> bytes2hex([65,97,66,98,0x5c])
ERROR: MethodError: `bytes2hex` has no method matching bytes2hex(::Array{Int32,1})
julia> bytes2hex(Array{UInt8,1}([65,97,66,98,0x5c]))
"416142625c"
julia> bytestring(Array{UInt8,1}([65,97,66,98,0x5c]))
"AaBb\\"
julia> hex2bytes("416142625c")
5-element Array{UInt8,1}: 0x41 0x61 0x42 0x62 0x5c
julia> string2bytes("AaBb\\")
ERROR: UndefVarError: string2bytes not defined
julia> stringbytes("AaBb\\")
ERROR: UndefVarError: stringbytes not defined
julia> read(IOBuffer("AaBb\\"))
ERROR: MethodError: `read` has no method matching read(::Base.AbstractIOBuffer{Array{UInt8,1}})
julia> read(IOBuffer("AaBb\\"), UInt8)
0x41
julia> read(IOBuffer("AaBb\\"), UInt8, length("AaBb\\"))
5-element Array{UInt8,1}: 0x41 0x61 0x42 0x62 0x5c

んー
マニュアルにはreaddim()があるって書いてあるのに・・・
何かimport忘れてるとか?
length省略できんのもなんだかな
勘違いならいいけど
14
(2): 2016/02/13(土)17:12 ID:AfSbfh5s(1) AAS
ちょっと前から同名のAV女優が出てきて検索がちょっとアレになったよね
運が悪い
15
(1): 2016/02/13(土)17:45 ID:6qRaMcc6(1) AAS
"どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る"
外部リンク:postd.cc
16
(3): 2016/02/13(土)22:04 ID:zoieo+tE(1) AAS
フォートランっぽい文法狂おしいほど嫌い
17: 2016/02/14(日)11:00 ID:7sraJ7/r(1/2) AAS
パッケージがおれおれやってみたばっかりで
まともなものが少ねーじゃねーか
これ PyPI よりひでーぞ
github っつーかオプソは害だな
18: 2016/02/14(日)11:01 ID:7sraJ7/r(2/2) AAS
>>16
21世紀にもなって添え字が 1 から始まるとかもうね
19: 2016/02/14(日)11:11 ID:FXwepV/m(1) AAS
おまいらなんだかんだ言って
みんなそれなりにやってんだな
ニヤニヤ
20: 2016/02/14(日)19:24 ID:UnbFC5qc(1) AAS
>1
>14 前スレで見た覚えがある
>16 それな
21: 2016/02/15(月)10:16 ID:TvNTryet(1/10) AAS
コンパイル中のエラーよりも実行時の型エラーの方が厄介な言語だなこいつは。
慣れれば問題ないが。
22: 2016/02/15(月)10:20 ID:TvNTryet(2/10) AAS
>>13
非推奨っぽいが、
これでいいらしい。

"AaBb\\".data

代入も出来るようだ。

s = "AaBb\\"
s.data[2] = UInt8(64)
s
23: 2016/02/15(月)10:21 ID:TvNTryet(3/10) AAS
これは割りと嬉しいかも。

julia> @sprintf "ab [%7s]" "xあx"
"ab [ xあx]"

julia> @sprintf "ab [%-7s]" "xあx"
"ab [xあx ]"

julia> @sprintf "ab [%7s]" "xxx"
"ab [ xxx]"

julia> @sprintf "ab [%-7s]" "xxx"
"ab [xxx ]"
24
(1): 2016/02/15(月)10:31 ID:TvNTryet(4/10) AAS
うむむ
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes(""))
"ab [ ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141E381824141"))
"ab [AAあAA ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141E981824141"))
"ab [AA遂AA ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141Ee81824141"))
"ab [AA\ue042AA ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141Ef81824141"))
"ab [AA\uf042AA ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141E881824141"))
"ab [AA聂AA ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141E8e8824141"))
"ab [AA騂AA ]"
julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("4141E9e8824141"))
"ab [AAꨂAA ]"

julia> @sprintf "ab [%-7s]" bytestring(hex2bytes("414155aa554141"))
ERROR: UnicodeError: invalid character index
in next at unicode/utf8.jl:65
in strwidth at strings/basic.jl:205
[inlined code] from printf.jl:159
in anonymous at no file:0

julia> @sprintf "ab [%-7s]" hex2bytes("414155aa554141")
"ab [UInt8[0x41,0x41,0x55,0xaa,0x55,0x41,0x41]]"
1-
あと 721 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.014s