LLVM で動く Julia のお勉強
Python に少し似てネイティブの速さで動く素敵な関数型言語
http://julialang.org/
http://junolab.org/
http://jupyter.org/
関連
Pythonista のための Julia 100 問 100 答
http://bicycle1885.hatenablog.com/entry/2014/12/23/170745
探検
Julia Juno Jupyter part1 [無断転載禁止]©2ch.net
1デフォルトの名無しさん
2016/02/12(金) 19:05:13.83ID:zhNvVfnf2016/02/12(金) 19:06:27.32ID:zhNvVfnf
2016/02/12(金) 19:11:52.52ID:zhNvVfnf
C の関数を呼ぶのも簡単
http://docs.julialang.org/en/release-0.4/manual/calling-c-and-fortran-code/
ツールが無くても可能ですが他にも便利なのがあるのでお好みで
Clang.jl
https://github.com/ihnorton/Clang.jl
Cpp.jl
https://github.com/timholy/Cpp.jl
Cxx.jl
https://github.com/Keno/Cxx.jl
http://docs.julialang.org/en/release-0.4/manual/calling-c-and-fortran-code/
ツールが無くても可能ですが他にも便利なのがあるのでお好みで
Clang.jl
https://github.com/ihnorton/Clang.jl
Cpp.jl
https://github.com/timholy/Cpp.jl
Cxx.jl
https://github.com/Keno/Cxx.jl
2016/02/12(金) 19:36:28.01ID:zhNvVfnf
私が Julia を推す理由 (翻訳)
http://d.hatena.ne.jp/isobe1978/20140330/1396201066
原文
http://www.evanmiller.org/why-im-betting-on-julia.html
Julia の開発環境を構築してみる (IJulia)
http://qiita.com/miiton@github/items/33c2b62c4911216d5fdb
科学計算が得意な言語 Julia を試してみた
http://qiita.com/chezou/items/d090f26dcb31818d6964
Gadfly
http://gadflyjl.org/
Plotly
https://plot.ly/julia/
http://d.hatena.ne.jp/isobe1978/20140330/1396201066
原文
http://www.evanmiller.org/why-im-betting-on-julia.html
Julia の開発環境を構築してみる (IJulia)
http://qiita.com/miiton@github/items/33c2b62c4911216d5fdb
科学計算が得意な言語 Julia を試してみた
http://qiita.com/chezou/items/d090f26dcb31818d6964
Gadfly
http://gadflyjl.org/
Plotly
https://plot.ly/julia/
2016/02/12(金) 23:29:57.13ID:5fxI8DGs
実は数年前にここでjuliaスレ立てたんだが落ちたんだよなあ。。。。
2016/02/13(土) 10:10:05.58ID:3L3e3K/U
漏れもなんとなく見覚えがある気がするんだよなぁ・・・
落ちる条件ってなんだっけ
落ちる条件ってなんだっけ
2016/02/13(土) 10:11:00.83ID:3L3e3K/U
という訳で保守がてら
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
引数の数が自由なのがいいねっ!
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
引数の数が自由なのがいいねっ!
2016/02/13(土) 10:12:28.35ID:3L3e3K/U
おれおれ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)
うっかり解放忘れそう
(最近仕様が変わったらしいので古いドキュソの通りやると動かない
っていうか最新のドキュソもまだ動かないサンプルのままだぞω)
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デフォルトの名無しさん
2016/02/13(土) 10:14:00.39ID:3L3e3K/U 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)
解放解放
引数や戻り値の定義を呼び出しのたびに何度も書くの面倒なのでマクロを書くのが良いらしいよ
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)
解放解放
引数や戻り値の定義を呼び出しのたびに何度も書くの面倒なのでマクロを書くのが良いらしいよ
2016/02/13(土) 10:17:20.41ID:3L3e3K/U
>っていうか最新のドキュソもまだ動かないサンプルのままだぞω
ああごめん動くわ
ああごめん動くわ
2016/02/13(土) 10:22:27.58ID:3L3e3K/U
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と解放してくれてるんだろうか
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と解放してくれてるんだろうか
2016/02/13(土) 10:31:38.04ID:Qsay8O0p
13デフォルトの名無しさん
2016/02/13(土) 11:59:14.88ID:3L3e3K/U もう少しちらうら
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省略できんのもなんだかな
勘違いならいいけど
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省略できんのもなんだかな
勘違いならいいけど
2016/02/13(土) 17:12:04.67ID:AfSbfh5s
ちょっと前から同名のAV女優が出てきて検索がちょっとアレになったよね
運が悪い
運が悪い
2016/02/13(土) 17:45:27.64ID:6qRaMcc6
"どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る"
http://postd.cc/python_meets_julia_micro_performance/
http://postd.cc/python_meets_julia_micro_performance/
16デフォルトの名無しさん
2016/02/13(土) 22:04:46.56ID:zoieo+tE フォートランっぽい文法狂おしいほど嫌い
2016/02/14(日) 11:00:37.07ID:7sraJ7/r
パッケージがおれおれやってみたばっかりで
まともなものが少ねーじゃねーか
これ PyPI よりひでーぞ
github っつーかオプソは害だな
まともなものが少ねーじゃねーか
これ PyPI よりひでーぞ
github っつーかオプソは害だな
18デフォルトの名無しさん
2016/02/14(日) 11:01:38.90ID:7sraJ7/r >>16
21世紀にもなって添え字が 1 から始まるとかもうね
21世紀にもなって添え字が 1 から始まるとかもうね
2016/02/14(日) 11:11:08.67ID:FXwepV/m
おまいらなんだかんだ言って
みんなそれなりにやってんだな
ニヤニヤ
みんなそれなりにやってんだな
ニヤニヤ
20デフォルトの名無しさん
2016/02/14(日) 19:24:28.30ID:UnbFC5qc >1 乙
>14 前スレで見た覚えがある
>16 それな
>14 前スレで見た覚えがある
>16 それな
21デフォルトの名無しさん
2016/02/15(月) 10:16:09.06ID:TvNTryet コンパイル中のエラーよりも実行時の型エラーの方が厄介な言語だなこいつは。
慣れれば問題ないが。
慣れれば問題ないが。
22デフォルトの名無しさん
2016/02/15(月) 10:20:41.18ID:TvNTryet23デフォルトの名無しさん
2016/02/15(月) 10:21:13.05ID:TvNTryet これは割りと嬉しいかも。
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 ]"
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デフォルトの名無しさん
2016/02/15(月) 10:31:07.93ID:TvNTryet うむむ
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]]"
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]]"
2016/02/15(月) 11:19:37.91ID:TvNTryet
>>11
julia> ccall((:curl_version, :libcurl), Ptr{Cchar}, ())
Ptr{Int8} @0x6b29c060
julia> @sprintf "%s" ccall((:curl_version, :libcurl), Ptr{Cchar}, ())
"Ptr{Int8} @0x6b29c060"
んーこれも期待した動作と違うなぁ。
julia> ccall((:curl_version, :libcurl), Ptr{Cchar}, ())
Ptr{Int8} @0x6b29c060
julia> @sprintf "%s" ccall((:curl_version, :libcurl), Ptr{Cchar}, ())
"Ptr{Int8} @0x6b29c060"
んーこれも期待した動作と違うなぁ。
2016/02/15(月) 11:28:27.71ID:TvNTryet
>>16
ifに括弧なしは一見便利だけどend強制されるのはPythonに慣れてるとうざく感じる。
julia> Array{UInt8}([1:n;]) == map(a -> UInt8(a), 1:n)
true
ちょっと気持ち悪いところもある。
ifに括弧なしは一見便利だけどend強制されるのはPythonに慣れてるとうざく感じる。
julia> Array{UInt8}([1:n;]) == map(a -> UInt8(a), 1:n)
true
ちょっと気持ち悪いところもある。
2016/02/15(月) 11:32:12.26ID:TvNTryet
julia> Array{UInt8}([1:n;]) == map(a -> UInt8(a), (1:n))
true
julia> Array{UInt8}([1:n]) == map(a -> UInt8(a), (1:n))
警告出るが
true
(二回目からは警告出なくなる?)
julia> Array{UInt8}((1:n)) == map(a -> UInt8(a), (1:n))
エラー
true
julia> Array{UInt8}([1:n]) == map(a -> UInt8(a), (1:n))
警告出るが
true
(二回目からは警告出なくなる?)
julia> Array{UInt8}((1:n)) == map(a -> UInt8(a), (1:n))
エラー
2016/02/15(月) 11:45:55.52ID:2YjvKDPc
>>25
bytestring(ccall((:curl_version, :libcurl), Ptr{Cchar}, ()))
bytestring(ccall((:curl_version, :libcurl), Ptr{Cchar}, ()))
2016/02/15(月) 11:49:21.03ID:TvNTryet
2016/02/15(月) 12:16:36.12ID:TvNTryet
julia> pointer_to_array(ccall((:curl_version, :libcurl), Ptr{Cchar}, ()), n)
でnバイト分のArray{Int8}になるみたいだけどなぜかデフォでUInt8じゃないのが気に入らないなぁ。
julia> Array{UInt8}(pointer_to_array(ccall((:curl_version, :libcurl), Ptr{Cchar}, ()), n))
とかいちいち書くの面倒だなぁ。
でnバイト分のArray{Int8}になるみたいだけどなぜかデフォでUInt8じゃないのが気に入らないなぁ。
julia> Array{UInt8}(pointer_to_array(ccall((:curl_version, :libcurl), Ptr{Cchar}, ()), n))
とかいちいち書くの面倒だなぁ。
2016/02/15(月) 12:19:08.24ID:2YjvKDPc
2016/02/15(月) 12:21:09.84ID:TvNTryet
>>31
julia> pointer_to_array(ccall((:curl_version, :libcurl), Ptr{UInt8}, ()), n)
できました!!
ありがとうございます!!!
julia> pointer_to_array(ccall((:curl_version, :libcurl), Ptr{UInt8}, ()), n)
できました!!
ありがとうございます!!!
2016/02/15(月) 18:04:10.07ID:0lvw83wi
意味わからずbytestring多用するのは危険
2016/02/16(火) 11:03:22.23ID:OHS4PN3k
今はまだ julia 0.3.2 対応みたいだけど web から試せるよ
https://try.jupyter.org/
IJulia をインストールすれば自分のサイトでもできるよ
https://github.com/JuliaLang/IJulia.jl
https://try.jupyter.org/
IJulia をインストールすれば自分のサイトでもできるよ
https://github.com/JuliaLang/IJulia.jl
2016/02/16(火) 11:49:26.30ID:kTgVK006
2016/02/16(火) 12:08:19.40ID:OHS4PN3k
日本語サイトしか見ない病だ
37デフォルトの名無しさん
2016/02/16(火) 17:07:24.65ID:ZLhr12yF ツイッターでjulia検索してもひどい
最悪だ
最悪だ
2016/02/16(火) 17:38:07.56ID:3nSqd4oT
39デフォルトの名無しさん
2016/02/17(水) 08:55:28.12ID:onBH4M/w Python版はこちら
http://quant-econ.net/py/
http://quant-econ.net/py/
2016/02/18(木) 11:45:57.02ID:S96kZ0X7
2016/02/18(木) 15:58:36.56ID:HBijeS9p
exe 化してみたら dll いっぱい作られて 200MB 超えるな
exe なのにロードして実行されるまで時間かかりすぎる
普通に julia --precompiled=yes hoge.jl で実行する方が速かった
python の exe 化と大して変わらん
exe なのにロードして実行されるまで時間かかりすぎる
普通に julia --precompiled=yes hoge.jl で実行する方が速かった
python の exe 化と大して変わらん
42デフォルトの名無しさん
2016/02/18(木) 19:42:32.50ID:AuqopEbQ 想像以上にアホの子かもな
julia> "あいう"[end:end]
"う"
julia> "あいう"[end-1:end]
ERROR: UnicodeError: invalid character index
julia> "あいう"[end-3:end]
"いう"
julia> "あいう"[1:end]
"あいう"
julia> "あいう"[2:end]
ERROR: UnicodeError: invalid character index
julia> "あいう"[2]
ERROR: UnicodeError: invalid character index
julia> "あいう"[3]
ERROR: UnicodeError: invalid character index
julia> "あいう"[4]
'い'
julia> length("あいう")
3
julia> length("1いう")
3
julia> ("1いう")[2]
'い'
julia> ("1いう")[end]
'う'
julia> ("1いう")[3]
ERROR: UnicodeError: invalid character index
julia> "あいう"[end:end]
"う"
julia> "あいう"[end-1:end]
ERROR: UnicodeError: invalid character index
julia> "あいう"[end-3:end]
"いう"
julia> "あいう"[1:end]
"あいう"
julia> "あいう"[2:end]
ERROR: UnicodeError: invalid character index
julia> "あいう"[2]
ERROR: UnicodeError: invalid character index
julia> "あいう"[3]
ERROR: UnicodeError: invalid character index
julia> "あいう"[4]
'い'
julia> length("あいう")
3
julia> length("1いう")
3
julia> ("1いう")[2]
'い'
julia> ("1いう")[end]
'う'
julia> ("1いう")[3]
ERROR: UnicodeError: invalid character index
2016/02/19(金) 09:48:06.21ID:hw/X0Y/j
>>42
# 文字列は文字の配列のように添字アクセスできます
"This is a string"[1] # => 'T' # Julia では添字は 1 から始まります
# ただし、UTF8 文字列の場合は添字アクセスではうまくいかないので、
# イテレーションを行ってください(map 関数や for ループなど)
# 文字列は文字の配列のように添字アクセスできます
"This is a string"[1] # => 'T' # Julia では添字は 1 から始まります
# ただし、UTF8 文字列の場合は添字アクセスではうまくいかないので、
# イテレーションを行ってください(map 関数や for ループなど)
2016/02/19(金) 09:52:08.93ID:hw/X0Y/j
Pythonの実行速度に満足できないあなたに
http://www.mwsoft.jp/programming/julia/python_to_julia.html
正直なところ、まだ足りないところも多い言語なので、
今の時点で飛び込んでもそんなに良いことはないかもしれません。
個人的には分析するデータの整形をさせたり、簡単なシュミレータを書き捨てる用途などで使っています。
適当に書いてもそれなりに速度が出るし記法もシンプルで書きやすいので、
Pythonよりも便利だと感じていますが、
ライブラリの揃いや信頼性などの問題で、前処理だけはJuliaでやって
肝心なところはPythonやRで、といった流れになることもしばしばです。
http://www.mwsoft.jp/programming/julia/python_to_julia.html
正直なところ、まだ足りないところも多い言語なので、
今の時点で飛び込んでもそんなに良いことはないかもしれません。
個人的には分析するデータの整形をさせたり、簡単なシュミレータを書き捨てる用途などで使っています。
適当に書いてもそれなりに速度が出るし記法もシンプルで書きやすいので、
Pythonよりも便利だと感じていますが、
ライブラリの揃いや信頼性などの問題で、前処理だけはJuliaでやって
肝心なところはPythonやRで、といった流れになることもしばしばです。
2016/02/19(金) 10:01:01.67ID:hw/X0Y/j
Pythonの実行速度に満足できないあなたに
http://www.mwsoft.jp/programming/julia/python_to_julia.html
これからJuliaを始める方へ
これからJuliaを始めようという方は、まずは下記ページに書かれているサンプルコードを眺めてみると、
どんな言語か理解できると思います。
Julia By Example
http://www.scolvin.com/juliabyexample/
統計関連のライブラリがどの程度揃っているかは、下記にまとめられています。
ちゃんとDataFrame的なものもあって、そこそこ揃ってはいます。
Julia Statistics
https://github.com/JuliaStats
入門書などの情報は出版されれば下記に掲載されると思う。(まだ入門書なんて存在しねーけどな)
Learning Julia
http://julialang.org/learning/
公式サイトのドキュメントも充実しています。充実し過ぎてどこから読めばいいのかわからなくなります。
Julia Documentation
http://docs.julialang.org/
あとは挙動でわからないことがあれば、ソースを読もう。
わかりやすいシンプルなコードなので、意外と簡単に読めます。
言語作者が書いたコードに触れておくと勉強になるしね。
JuliaLang/julia - GitHub
https://github.com/JuliaLang/julia
本当はもっと初見向きなサイトを紹介したかったんだけど、あまり見当たらない。
今の調子ならそのうち増えてくると思うので、
その手の本を書店で見かけるようになった時が始めるタイミングとしては良いんじゃないだろうか。
※本項は更新情報があれば適宜変更します
http://www.mwsoft.jp/programming/julia/python_to_julia.html
これからJuliaを始める方へ
これからJuliaを始めようという方は、まずは下記ページに書かれているサンプルコードを眺めてみると、
どんな言語か理解できると思います。
Julia By Example
http://www.scolvin.com/juliabyexample/
統計関連のライブラリがどの程度揃っているかは、下記にまとめられています。
ちゃんとDataFrame的なものもあって、そこそこ揃ってはいます。
Julia Statistics
https://github.com/JuliaStats
入門書などの情報は出版されれば下記に掲載されると思う。(まだ入門書なんて存在しねーけどな)
Learning Julia
http://julialang.org/learning/
公式サイトのドキュメントも充実しています。充実し過ぎてどこから読めばいいのかわからなくなります。
Julia Documentation
http://docs.julialang.org/
あとは挙動でわからないことがあれば、ソースを読もう。
わかりやすいシンプルなコードなので、意外と簡単に読めます。
言語作者が書いたコードに触れておくと勉強になるしね。
JuliaLang/julia - GitHub
https://github.com/JuliaLang/julia
本当はもっと初見向きなサイトを紹介したかったんだけど、あまり見当たらない。
今の調子ならそのうち増えてくると思うので、
その手の本を書店で見かけるようになった時が始めるタイミングとしては良いんじゃないだろうか。
※本項は更新情報があれば適宜変更します
2016/02/19(金) 10:02:23.04ID:hw/X0Y/j
2016/02/19(金) 10:04:44.54ID:hw/X0Y/j
julia> run(`cmd /c dir`)
したときは日本語が UTF-8 に変換されてるのかな
julia> open(`cmd /c dir`) do f
for l in eachline(f)
println(chomp(l))
end
end
すると結果が違うような気がするけど気のせいかな
julia> open("test_out.txt", "w") do w
open(`cmd /c dir`) do r
for l in eachline(r)
println(w, chomp(l)) # これだとSJISで書き込まれているな
end
end
end
したときは日本語が UTF-8 に変換されてるのかな
julia> open(`cmd /c dir`) do f
for l in eachline(f)
println(chomp(l))
end
end
すると結果が違うような気がするけど気のせいかな
julia> open("test_out.txt", "w") do w
open(`cmd /c dir`) do r
for l in eachline(r)
println(w, chomp(l)) # これだとSJISで書き込まれているな
end
end
end
2016/02/19(金) 10:19:38.04ID:hw/X0Y/j
julia> (3+2im)*(3-2im)
13 + 0im
julia> 1//3 + 1//3 + 1//3
1//1
julia> 2π
6.283185307179586
julia> r = 4
4
julia> 2πr
ERROR: UndefVarError: πr not defined
julia> 2π*r
25.132741228718345
実におしい
13 + 0im
julia> 1//3 + 1//3 + 1//3
1//1
julia> 2π
6.283185307179586
julia> r = 4
4
julia> 2πr
ERROR: UndefVarError: πr not defined
julia> 2π*r
25.132741228718345
実におしい
レスを投稿する
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 中国政府、日本人のビザ免除停止、鬼滅の刃公開停止を検討へ [271912485]
- 【悲報】日本人の半数以上が、事ここに至っても日本が中国に喧嘩売ったって理解していない件について [616817505]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
- Bloomberg「やり過ぎた中国、高市首相の政策遂行手助け」 [481941988]
