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

Julia Juno Jupyter part1 [無断転載禁止]©2ch.net

1 :
デフォルトの名無しさん
2016/02/12(金) 19:05:13.83 ID:zhNvVfnf
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
2 :
2016/02/12(金) 19:06:27.32 ID:zhNvVfnf
3 :
2016/02/12(金) 19:11:52.52 ID: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
4 :
2016/02/12(金) 19:36:28.01 ID: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/
5 :
2016/02/12(金) 23:29:57.13 ID:5fxI8DGs
実は数年前にここでjuliaスレ立てたんだが落ちたんだよなあ。。。。
6 :
2016/02/13(土) 10:10:05.58 ID:3L3e3K/U
漏れもなんとなく見覚えがある気がするんだよなぁ・・・

落ちる条件ってなんだっけ
7 :
2016/02/13(土) 10:11:00.83 ID: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

引数の数が自由なのがいいねっ!
8 :
2016/02/13(土) 10:12:28.35 ID: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)

うっかり解放忘れそう
9 :
デフォルトの名無しさん
2016/02/13(土) 10:14:00.39 ID: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)

解放解放

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

ああごめん動くわ
11 :
2016/02/13(土) 10:22:27.58 ID: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と解放してくれてるんだろうか
12 :
2016/02/13(土) 10:31:38.04 ID:Qsay8O0p
>>8
>OpenSSL/1.0.1e

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

"AaBb\\".data

代入も出来るようだ。

s = "AaBb\\"
s.data[2] = UInt8(64)
s
23 :
デフォルトの名無しさん
2016/02/15(月) 10:21:13.05 ID: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 ]"
24 :
デフォルトの名無しさん
2016/02/15(月) 10:31:07.93 ID: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]]"
25 :
2016/02/15(月) 11:19:37.91 ID:TvNTryet
>>11
julia> ccall((:curl_version, :libcurl), Ptr{Cchar}, ())
Ptr{Int8} @0x6b29c060

julia> @sprintf "%s" ccall((:curl_version, :libcurl), Ptr{Cchar}, ())
"Ptr{Int8} @0x6b29c060"

んーこれも期待した動作と違うなぁ。
26 :
2016/02/15(月) 11:28:27.71 ID:TvNTryet
>>16
ifに括弧なしは一見便利だけどend強制されるのはPythonに慣れてるとうざく感じる。

julia> Array{UInt8}([1:n;]) == map(a -> UInt8(a), 1:n)
true

ちょっと気持ち悪いところもある。
27 :
2016/02/15(月) 11:32:12.26 ID: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))
エラー
28 :
2016/02/15(月) 11:45:55.52 ID:2YjvKDPc
>>25
bytestring(ccall((:curl_version, :libcurl), Ptr{Cchar}, ()))
29 :
2016/02/15(月) 11:49:21.03 ID:TvNTryet
>>28
有賀d。
>>24でも書いたけどbytestringってこんなデータ来ると死ぬから使いたくないなぁ。
julia> bytestring(hex2bytes("414155aa554141"))
30 :
2016/02/15(月) 12:16:36.12 ID: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))
とかいちいち書くの面倒だなぁ。
31 :
2016/02/15(月) 12:19:08.24 ID:2YjvKDPc
>>30
Cchar == UInt8 # false
Cchar == Int8 # true
32 :
2016/02/15(月) 12:21:09.84 ID:TvNTryet
>>31
julia> pointer_to_array(ccall((:curl_version, :libcurl), Ptr{UInt8}, ()), n)
できました!!
ありがとうございます!!!
33 :
2016/02/15(月) 18:04:10.07 ID:0lvw83wi
意味わからずbytestring多用するのは危険
34 :
2016/02/16(火) 11:03:22.23 ID:OHS4PN3k
今はまだ julia 0.3.2 対応みたいだけど web から試せるよ
https://try.jupyter.org/

IJulia をインストールすれば自分のサイトでもできるよ
https://github.com/JuliaLang/IJulia.jl
35 :
2016/02/16(火) 11:49:26.30 ID:kTgVK006
>>14
ちょっと前から声が大きいだけで連投するうざいのが住み着いて2ちゃんはちょっとアレになったよね
筋が悪い
36 :
2016/02/16(火) 12:08:19.40 ID:OHS4PN3k
日本語サイトしか見ない病だ
37 :
デフォルトの名無しさん
2016/02/16(火) 17:07:24.65 ID:ZLhr12yF
ツイッターでjulia検索してもひどい
最悪だ
38 :
2016/02/16(火) 17:38:07.56 ID:3nSqd4oT
英語だが Julia をつかった科学計算を丁寧に解説しているサイト
ちなみに著者の一人 Sargent はノーベル経済学賞をとっている

http://quant-econ.net/jl/
39 :
デフォルトの名無しさん
2016/02/17(水) 08:55:28.12 ID:onBH4M/w
Python版はこちら
http://quant-econ.net/py/
40 :
2016/02/18(木) 11:45:57.02 ID:S96kZ0X7
>>38
GJ
勉強になります
ありがとう
41 :
2016/02/18(木) 15:58:36.56 ID:HBijeS9p
exe 化してみたら dll いっぱい作られて 200MB 超えるな
exe なのにロードして実行されるまで時間かかりすぎる
普通に julia --precompiled=yes hoge.jl で実行する方が速かった
python の exe 化と大して変わらん
42 :
デフォルトの名無しさん
2016/02/18(木) 19:42:32.50 ID: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
43 :
2016/02/19(金) 09:48:06.21 ID:hw/X0Y/j
>>42
# 文字列は文字の配列のように添字アクセスできます
"This is a string"[1] # => 'T' # Julia では添字は 1 から始まります
# ただし、UTF8 文字列の場合は添字アクセスではうまくいかないので、
# イテレーションを行ってください(map 関数や for ループなど)
44 :
2016/02/19(金) 09:52:08.93 ID:hw/X0Y/j
Pythonの実行速度に満足できないあなたに
http://www.mwsoft.jp/programming/julia/python_to_julia.html

正直なところ、まだ足りないところも多い言語なので、
今の時点で飛び込んでもそんなに良いことはないかもしれません。

個人的には分析するデータの整形をさせたり、簡単なシュミレータを書き捨てる用途などで使っています。

適当に書いてもそれなりに速度が出るし記法もシンプルで書きやすいので、
Pythonよりも便利だと感じていますが、
ライブラリの揃いや信頼性などの問題で、前処理だけはJuliaでやって
肝心なところはPythonやRで、といった流れになることもしばしばです。
45 :
2016/02/19(金) 10:01:01.67 ID: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

本当はもっと初見向きなサイトを紹介したかったんだけど、あまり見当たらない。
今の調子ならそのうち増えてくると思うので、
その手の本を書店で見かけるようになった時が始めるタイミングとしては良いんじゃないだろうか。
※本項は更新情報があれば適宜変更します
46 :
2016/02/19(金) 10:02:23.04 ID:hw/X0Y/j
47 :
2016/02/19(金) 10:04:44.54 ID: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
48 :
2016/02/19(金) 10:19:38.04 ID: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

実におしい
49 :
2016/02/19(金) 13:47:52.38 ID:5RH0Tfsb
>>11
ccall((:MessageBoxW, :user32), stdcall, UInt, (Ptr{Void}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt),
C_NULL, [0x304C,0x3063,0xFF01,0x0000], [0x306C,0x308B,0x307D,0x0000], 0)

この方が良くね?
50 :
2016/02/20(土) 11:05:53.32 ID:Z/BOfpky
ccall((:MessageBoxW, :user32), stdcall, UInt, (Ptr{Void}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt),
C_NULL, pointer("がっ!"), pointer("ぬるぽ"), 0)

これだと化けるから、

ccall((:MessageBoxA, :user32), stdcall, UInt, (Ptr{Void}, Ptr{Cchar}, Ptr{Cchar}, UInt),
C_NULL, pointer("がっ!"), pointer("ぬるぽ"), 0)

にしたんだがやっぱり化ける。

原因はわかるんだが、wchar_t の文字列は作れない子なの?
51 :
2016/02/20(土) 11:46:21.48 ID:Z/BOfpky
>>41
こういうことらしい。
julia> "ぬるぽ"[nextind("ぬるぽ", 0):end]
"ぬるぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 1):end]
"るぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 2):end]
"るぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 3):end]
"るぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 4):end]
"ぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 5):end]
"ぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 6):end]
"ぽ"
julia> "ぬるぽ"[nextind("ぬるぽ", 7):end]
""
julia> "ぬるぽ"[nextind("ぬるぽ", end-1):end]
"ぽ"
52 :
2016/02/20(土) 11:59:22.33 ID:Z/BOfpky
"るぽ"をendの差分で取るのはループしないかぎりむりぽか
53 :
2016/02/21(日) 10:29:39.26 ID:zmvsu5mb
>>49-50
julia> ccall((:MessageBoxW, :user32), stdcall, UInt, (Ptr{Void}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt),
C_NULL, pointer(utf16("がっ!")), pointer(utf16("ぬるぽ")), 0)
julia> ccall((:MessageBoxW, :user32), stdcall, UInt, (Ptr{Void}, Ptr{Cwchar_t}, Ptr{Cwchar_t}, UInt),
C_NULL, pointer(wstring("がっ!")), pointer(wstring("ぬるぽ")), 0)

>>42-43 >>51-52
julia> utf16("ぬるぽ")[end-1:end]
"るぽ"
julia> wstring("ぬるぽ")[end-1:end]
"るぽ"

どうしても UTF-8 のままが良いなら
julia> s[prevind(s, end):end]
"るぽ"

http://docs.julialang.org/en/release-0.4/stdlib/strings/
読め

結論
>>42 がアホ
54 :
デフォルトの名無しさん
2016/02/21(日) 11:33:03.42 ID:zmvsu5mb
地雷満載

julia> length(utf16("あいう"))
3
julia> sizeof(utf16("あいう"))
6
julia> endof(utf16("あいう"))
3
julia> sizeof(utf16("あいう").data)
8
julia> endof(utf16("あいう").data)
4
55 :
デフォルトの名無しさん
2016/02/22(月) 12:14:35.86 ID:Y1bHL8fN
PythonよりUnicodeの扱いが親切だと思うω
56 :
デフォルトの名無しさん
2016/02/22(月) 17:04:35.55 ID:Y1bHL8fN
if __name__ == "__main__": みたいなのは無いんかな
57 :
2016/02/22(月) 17:23:08.96 ID:Y1bHL8fN
58 :
2016/02/22(月) 18:32:57.93 ID:QLpZ1xcH
馬鹿には無理
59 :
2016/02/23(火) 05:19:15.92 ID:I8nTY0JT
DLL は作れるのかな?
60 :
2016/02/23(火) 12:24:16.92 ID:SVaKsmEW
open(hoge) do f
fuga(f)
end

みたいな do end 出来る関数ってどうやって作るんですか?
61 :
2016/02/23(火) 12:56:21.77 ID:I8nTY0JT
julia> ASCIIString <: AbstractString
true

julia> Array{ASCIIString, 1} <: Array{AbstractString, 1}
false

julia> Array{ASCIIString, 1} <: Array{Union{ASCIIString, UTF8String}, 1}
false

julia> Array{Union{ASCIIString, UTF8String}, 1} <: Array{AbstractString, 1}
false

julia> typeof(["abc"]) <: Array{ASCIIString, 1}
true

julia> typeof(["abc"]) <: Array{AbstractString, 1}
false

julia> typeof(["abc"]) <: Array{Union{ASCIIString, UTF8String}, 1}
false

これなんとかならんか?
62 :
2016/02/25(木) 11:01:35.11 ID:xnX4JkuY
糞認定です。
おめでとう。
63 :
デフォルトの名無しさん
2016/02/26(金) 14:18:09.06 ID:VQGl6zaq
「XXX を削除できません。
ほかの人またはプログラムによって使用されています。
ファイルを使用している可能性があるプログラムをすべて閉じてから、やり直してください。」

が出る場合、そのファイルを使用しているプロセスを知る方法はありますでしょうか

あるよ
ただ、簡単ならいくらMicrosoftが能無しでもそこのダイアログに誰が開いているか表示するだろう
そのくらい面倒くさくまともな方法じゃないってことは察しろ
64 :
デフォルトの名無しさん
2016/03/20(日) 10:27:12.46 ID:0HfdLt5e
未完成感半端ない
65 :
デフォルトの名無しさん
2016/04/02(土) 12:07:37.96 ID:thGUj6UI
未来の言語
66 :
デフォルトの名無しさん
2016/04/20(水) 14:02:09.01 ID:KhdkVfqP
予知能力
67 :
2016/04/21(木) 15:08:23.44 ID:Jg/FpCZZ
>>61
言いたいことは分かるけど
継承関係にないジェネリッククラスに継承関係を認めたら
それはそれで問題が起きるから

特に配列の場合はパフォーマンスが犠牲になるので受け入れがたいし
C++とかだとバグの温床なので「できて当然」という考えは捨てた方がいい
68 :
2016/04/30(土) 09:02:37.09 ID:FuZy8SxD
勉強中
69 :
デフォルトの名無しさん
2016/05/01(日) 13:10:40.52 ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
70 :
デフォルトの名無しさん
2016/05/02(月) 15:31:15.58 ID:aR8AOrvI
うざっ
71 :
2016/05/02(月) 19:04:53.82 ID:tya74GVe
72 :
デフォルトの名無しさん
2016/05/14(土) 14:39:51.17 ID:r8zKr16p
あと10年はかかるんじゃね
73 :
デフォルトの名無しさん
2016/05/16(月) 18:05:31.33 ID:DkcwsRla
T.K.
74 :
2016/05/18(水) 13:16:34.04 ID:u7J2zmgl
まともな開発者が使うなら何でもいいんだよ
juliaユーザーは一概にレベルが低いから信頼性の低いライブラリと化学反応を起こして爆発するのだ
ただしnodeよりマシか
75 :
2016/05/31(火) 06:58:34.84 ID:p6bvKsCE
こうして思うとmatlabの功罪は大きいな
76 :
デフォルトの名無しさん
2016/05/31(火) 13:36:58.59 ID:yIUZknFd
初心者に Fortran 教えるくらいなら Julia の方がマシ
77 :
デフォルトの名無しさん
2016/05/31(火) 17:49:10.36 ID:yIUZknFd
78 :
デフォルトの名無しさん
2016/06/02(木) 08:32:20.78 ID:O7OWJX/G
Jupyter Notebookで説明書きの通りのコードを入れても動きません。
terminals are unavailable と表示されてるのですが、これが動かない理由でしょうか。
79 :
2016/06/10(金) 16:36:24.64 ID:8yNz9kCr
C資産との連携を強調してるけど
JuliaでC呼ぶのは苦痛でしかない
Cで書いた方がまし
80 :
デフォルトの名無しさん
2016/06/11(土) 15:43:11.34 ID:iSPIsEmM
馬鹿には無理
81 :
2016/06/13(月) 14:44:15.88 ID:zgrawcOE
本家も放置?
82 :
デフォルトの名無しさん
2016/07/04(月) 12:10:46.03 ID:bmDp8Deu
相変わらずだな

514 デフォルトの名無しさん sage 2016/07/04(月) 01:22:47.14 a5Gl8mUE

Juliaの開発、俺が引き受けるから科研費くれ
という主張をしてみるか悩んでる

515 デフォルトの名無しさん sage 2016/07/04(月) 01:35:22.05 WZmggq2i

Julia で検索したら、AV 動画見たばかりでワロタ w

516 デフォルトの名無しさん sage 2016/07/04(月) 01:36:38.53 WZmggq2i

ありゃ、
AV 動画ばかりって書きたかったの…

517 デフォルトの名無しさん sage 2016/07/04(月) 01:44:34.13 Jqw/8rJ7

私も今まさにそれ思ってた>AVばっかり
83 :
2016/07/05(火) 13:25:11.27 ID:3gyxqmIo
Juliaってデータ分析というより数値計算じゃないの
全部インメモリの固定長配列にブチ込んでループぶん回す昔ながらのやつだよね
84 :
2016/07/06(水) 12:37:52.43 ID:T23wVNy/
別にデータ分析以外の数値計算が出来ないと言っている訳じゃないし

昔ながらのやつを現代的に書けるというだけでも有意義だろう
85 :
2016/07/06(水) 14:28:27.41 ID:X105+0ra
なんで >>83 へのレスが >>84 みたいなことになるんだろ
文盲かな?
86 :
2016/07/07(木) 11:04:48.07 ID:bjxB4lA1
なんで >>84 へのレスが >>85 みたいなことになるんだろ
文盲かな?
87 :
デフォルトの名無しさん
2016/07/13(水) 17:16:46.46 ID:Zm0ukFfg
88 :
デフォルトの名無しさん
2016/07/15(金) 17:01:44.97 ID:8P+uiz2j
誤解されてるようなので

>実際コード書いてても Python や C++ と比べて julia のコードって汚いんだよな

特定の条件がそろったときだけど
綺麗に描けることもある
89 :
2016/07/15(金) 22:38:04.14 ID:3IYjBgbR
誤爆か

言語内DSLを別言語とみなすなら
C++で綺麗に書けるものがjuliaで書くと汚いってことは考えにくいんだが?

C++は数値を表す抽象型が標準にないのが致命的
そのくせ最近までサイズ固定の整数型がなかった

pythonについてはラムダ式が好きになれない(汚いとは別だが)

まぁjuliaに求めるものは綺麗さじゃなく実用性なんだ
おっぱい的な意味で
90 :
デフォルトの名無しさん
2016/07/18(月) 12:18:17.33 ID:DeXLreOM
やっと気付いた
漏れはきっと end が嫌いなんだ
91 :
デフォルトの名無しさん
2016/07/19(火) 12:43:59.43 ID:3sf6xm4M
julia> reinterpret(Bool, 1)
true

julia> reinterpret(Bool, 2)
false

julia> reinterpret(Bool, 3)
true

julia> reinterpret(Bool, 4)
false

julia> reinterpret(Bool, 0)
false

julia> reinterpret(Bool, -1)
true

julia> reinterpret(Bool, -2)
false

ワロス
92 :
2016/07/20(水) 12:33:08.99 ID:IKGpFUMW
笑いどころがわからない

配列用でないreinterpretはconvertと違って慎重に使うべきもの

julia> reinterpret(Bool, 256)
false
これは気持ち悪い

……と開発者も思ったらしくv0.5ではエラーになる見込み
93 :
2016/07/20(水) 21:10:41.79 ID:AXsJLLhK
間にscheme入ってるならpythonに近い文法に変換するのも簡単に出来るのでは?
94 :
2016/07/20(水) 22:23:38.39 ID:IKGpFUMW
pythonに近い文法を求めているならpython使えばいいんでは?
てかschemeに何の関係が?
95 :
デフォルトの名無しさん
2016/07/21(木) 18:47:37.68 ID:Vj/xPVWN
S式でなんでもできるのは面白いな
96 :
2016/07/21(木) 18:53:51.10 ID:IyjPITzN
マクロで真っ黒
97 :
2016/07/22(金) 11:45:49.87 ID:f6dSUOKk
>>7-11 >>25 >>28 >>30-32
定義はmacro使うと楽

macro c(restype, fnc, argtypes)
local args = [symbol("a", n) for n in 1:length(argtypes.args)]
quote
$(esc(fnc))($(args...)) = ccall($(string(fnc)), $restype, $argtypes, $(args...))
end
end

@c UInt32 printf (Ptr{Cchar},)
@c UInt32 printf (Ptr{Cchar}, UInt32,)

printf(pointer(Array{UInt8,1}([65,66,0,67,68,0,0])))
printf("%s\n", pointer(Array{UInt8,1}([65,66,0,67,68,0,0])))

macro m(lib, restype, fnc, argtypes)
local args = [symbol("a", n) for n in 1:length(argtypes.args)]
quote
$(esc(fnc))($(args...)) = ccall(($(string(fnc)), $(Expr(:quote, lib))), $restype, $argtypes, $(args...))
end
end

@m libcurl Cint curl_free (Ptr{Void},)
@m libcurl Ptr{Cchar} curl_getenv (Ptr{Cchar},)
@m libcurl Ptr{Cchar} curl_version ()

v = curl_getenv("TZ")
printf(v)
curl_free(v)
printf(curl_version())
98 :
2016/07/22(金) 11:49:20.02 ID:f6dSUOKk
>>9

macro w(lib, restype, fnc, argtypes)
local args = [symbol("a", n) for n in 1:length(argtypes.args)]
quote
$(esc(fnc))($(args...)) = ccall(($(string(fnc)), $(Expr(:quote, lib))), stdcall, $restype, $argtypes, $(args...))
end
end

@w user32 UInt32 MessageBoxA (UInt32, Ptr{Cchar}, Ptr{Cchar}, UInt32,)

MessageBoxA(C_NULL, "hage", "title", 1)
99 :
デフォルトの名無しさん
2016/07/22(金) 13:42:42.08 ID:hQsD+JBa
>>97-98
32bit 限定のコードを書くべきじゃないな
100 :
2016/07/22(金) 15:31:36.78 ID:TotCshYe
呼び出すライブラリの仕様は確定しているのだから実用上問題ないのでは?
101 :
2016/07/23(土) 10:27:35.38 ID:6lYjBmg5
ヒ素2さんかな(ヒソヒソ)
102 :
デフォルトの名無しさん
2016/07/23(土) 11:05:54.45 ID:+Jc7SqHC
x = UInt32(0x12345678)
a = pointer_to_array(convert(Ptr{UInt8}, pointer_from_objref(x)), 4)
a[2] = 51
println(@sprintf "%08X" x) # 0x12343378
103 :
デフォルトの名無しさん
2016/07/23(土) 11:07:52.09 ID:+Jc7SqHC
immutable TT
a::UInt16
b::UInt16
end
x = UInt32(0x12345678)
a = pointer_to_array(convert(Ptr{TT}, pointer_from_objref(x)), 1)
println(a) # [TT(0x5678,0x1234)]
a[].a = 0xaabb # ERROR: type TT is immutable
104 :
デフォルトの名無しさん
2016/07/23(土) 11:12:28.69 ID:+Jc7SqHC
type XX
a::UInt16
b::UInt16
end
x = UInt32(0x12345678)
# ↑ここまでは動く
a = pointer_to_array(convert(Ptr{XX}, pointer_from_objref(x)), 1)
# ↑インタプリタ環境だとこれを実行した時点で環境ごと落ちる (下へ行くケースあり)
println("reach here")
println(a)
# インタプリタの外から julia hoge.jl で実行したときは println(a) まで実行すると落ちる
105 :
デフォルトの名無しさん
2016/07/23(土) 11:13:02.17 ID:+Jc7SqHC
なぜでしょう?(unsafeなことしてるのは判ってるのですが・・・)
106 :
2016/07/23(土) 12:22:24.60 ID:lFeXmVIf
なぜって自分でbitstypeでもimmutableでもないって分かっている書きぶりじゃん
その上で聞いているならソース読め
107 :
2016/07/23(土) 17:00:36.64 ID:6lYjBmg5
へー Julia ってこういう壊れ方するのかー

julia> n = UInt32(3)
0x00000003

julia> p = Ptr{UInt32}(pointer_from_objref(n))
Ptr{UInt32} @0x06e474f0

julia> pointer_to_array(p, 1)
1-element Array{UInt32,1}:
0x00000003

julia> UInt32(3)
0x00000003

julia> pointer_to_array(p, 1)[] = 9
9

julia> UInt32(3)
0x00000009
108 :
2016/07/23(土) 17:11:02.05 ID:6lYjBmg5
こうなってるのかー
気付かんかったわー

julia> e = UInt32(11)
0x0000000b

julia> f = UInt32(11)
0x0000000b

julia> p = Ptr{UInt32}(pointer_from_objref(e))
Ptr{UInt32} @0x06e47770

julia> pointer_to_array(p, 1)
1-element Array{UInt32,1}:
0x0000000b

julia> UInt32(11)
0x0000000b

julia> pointer_to_array(p, 1)[] = 17
17

julia> UInt32(11)
0x00000011

julia> f
0x00000011
109 :
2016/07/24(日) 09:37:49.42 ID:wdZTIji9
インタラクティブシェルのヒストリーってどうやったら消せるん?
110 :
2016/07/24(日) 09:48:14.01 ID:wdZTIji9
~/.julia_history 消したら解決しました!
111 :
デフォルトの名無しさん
2016/07/25(月) 18:13:55.98 ID:r9xhFlm6
Cのunionと同じような機能ってreinterpret以外にないの?
112 :
デフォルトの名無しさん
2016/07/26(火) 10:16:34.91 ID:oKnTJYes
transpose と ctranspose って何が違うん?
113 :
2016/07/26(火) 10:29:26.50 ID:As2nHGxN
>>112
cはcomplex(複素数)のconjugate
114 :
デフォルトの名無しさん
2016/07/27(水) 09:34:21.46 ID:nl1cCFz0
>>107-108
julia> 100
100

julia> 100 - 23
77

julia> 100 + 23
123

julia> pointer_to_array(Ptr{Int}(pointer_from_objref(100)), 1)[] = 119
119

julia> 100
119

julia> 100 - 19
119 # ← ここだけ納得いかない

julia> 100 + 19
138
115 :
2016/07/27(水) 22:18:04.56 ID:vxMObH7b
納得いかないのが納得いかない
"100" - 19
→ 119 - 19
→"100"
→ 119
116 :
2016/07/28(木) 19:00:25.38 ID:O8Vfrh0P
なるほど!
目から鱗でした
117 :
2016/07/31(日) 11:27:08.15 ID:DMqYYSfk
llvm使いたくない。gccではビルドできないの?
118 :
2016/08/01(月) 12:23:48.40 ID:6PNy08If
C++AMPもそうだったんだけど
llvmがバージョンアップするとC++AMPの仕様も変わったりして
誰も安定してC++AMPを利用できなったので
C++AMPは消えたと思う

juliaがllvm使ってるのは嫌な予感しかしない
119 :
2016/08/01(月) 15:22:44.54 ID:JXVULl1x
コンパイル遅すぎ
120 :
2016/08/01(月) 16:51:02.97 ID:8rwcghCB
寧ろgccの方が先行き不安なような
121 :
2016/08/01(月) 17:20:22.43 ID:6PNy08If
llvmは安定して使うことよりもgccの妨害が目的っぽい部分があって
利用者は軽視(gccの足引っ張りが重要)

そんな印象がある
122 :
2016/08/01(月) 17:35:53.63 ID:8rwcghCB
うわぁ・・・
123 :
デフォルトの名無しさん
2016/08/01(月) 18:14:22.64 ID:JXVULl1x
M9誤報記念
124 :
2016/08/01(月) 19:39:59.72 ID:3q+qs35i
>>118
C++AMP ってマイクロソフト主導だったんじゃないのん?
125 :
2016/08/02(火) 10:29:05.14 ID:JwtZ9iAm
>>111
manual/calling-c-and-fortran-code/

Struct Type correspondences

Packed structs and union declarations are not supported by Julia.

You can get a near approximation of a union if you know, a priori,
the field that will have the greatest size (potentially including padding).
When translating your fields to Julia, declare the Julia field to be only of that type.

...

In the future, some of these restrictions may be reduced or eliminated.
126 :
デフォルトの名無しさん
2016/08/04(木) 11:46:11.27 ID:8anV95gh
reinterpretとBase.boxとどっち使うのが良いんですか?
127 :
デフォルトの名無しさん
2016/08/05(金) 10:14:39.63 ID:LJe/qM3f
>>79
それな
128 :
2016/08/05(金) 11:34:17.96 ID:9LvdmO9z
なぜ僕らはJuliaを創ったか
http://marui.hatenablog.com/entry/20120221/1329823079

ゆるいライセンスのオープンソースで、Cの速度とRubyの動的さが欲しい。
Lispのような真のマクロが使える同図象性のある言語で、
Matlabのように分かりやすい数学の記述をしたい。
Pythonのように汎用的に使いたいし、Rの統計処理、
Perlの文字列処理、Matlabの線形代数計算も要る。
シェルのように簡単にいくつかのパーツをつなぎ合わせたい。
チョー簡単に習えて、超上級ハッカーも満足する言語。
インタラクティブに使えて、かつコンパイルできる言語が欲しい。
(そういえば、C言語の実行速度が必要だってのは言ったっけ?)

イイね!
129 :
デフォルトの名無しさん
2016/08/12(金) 14:09:58.96 ID:5sOoPQZ5
マクロを入れ子で使ってるときの評価順が良く判らんな
130 :
デフォルトの名無しさん
2016/08/19(金) 20:54:44.94 ID:/WxFAz6S
Juliaの継承システムってなんでgoみたいなシステムにしなかったんだろうな
131 :
2016/08/20(土) 14:07:49.70 ID:cg7hw3nY
goはgoでアグレッシブすぎる気がするけど

C++とかJavaとか
結果的に抽象クラスとインターフェイスの関係が微妙になってしまったことを考えれば
Juliaの型システムは明確で合理的だと思う

あと多重ディスパッチが特徴に挙げられるくらいなので
ロジック・実装の散逸を防ぐ思想があるんだろう

具象型が継承不可な点は最適化の面でも有利に働くはず
132 :
デフォルトの名無しさん
2016/08/20(土) 14:58:26.80 ID:OZEoChm6
コンストラクタがきもい
133 :
2016/08/24(水) 18:07:53.88 ID:Ku8YOB4B
おまえそんなんばっか
134 :
デフォルトの名無しさん
2016/08/24(水) 20:40:56.81 ID:jKhJVkcK
@timeとか@showとか便利すぎて逆になんでpythonにはないのかと悲しくなるレベル
135 :
デフォルトの名無しさん
2016/09/01(木) 20:24:06.33 ID:YPWf/agv
一切カプセル化出来ないから無能を含む大規模プロジェクトには使えないな
136 :
デフォルトの名無しさん
2016/09/02(金) 07:56:04.86 ID:epTjFeL3
intをdepricated にして代わりに l->[parse(Int, s) for s=l] を使えって言ってくるのはマジで基地外じみてる
137 :
2016/09/02(金) 12:51:45.65 ID:W3BuWeJb
新言語のフリしたFORTRANだよなこれ
138 :
デフォルトの名無しさん
2016/09/02(金) 15:34:46.39 ID:tIJhbCeG
3次元の配列を効率よく初期化するにはどうすれば良いでしょうか?
139 :
デフォルトの名無しさん
2016/09/02(金) 20:42:33.40 ID:ZxHIRzh+
[f(I,j,k) for i=1:n, j=1:m, l=1:o]
Pythonとは訳が違う便利さ
140 :
2016/09/03(土) 13:20:01.65 ID:rRZKSjjx
>>136
じゃあ何が正解だというの?
141 :
2016/09/03(土) 13:59:08.29 ID:w8mOGCX1
添え字が 0 から始められるように設定変更ってどうするんだっけ
142 :
デフォルトの名無しさん
2016/09/03(土) 22:13:37.19 ID:b+GHqttd
>>140
安価ミスか?何を聞かれてるのかわからん
143 :
デフォルトの名無しさん
2016/09/13(火) 10:04:52.46 ID:igQxNPoH
>>141
マクロ使えば行けるけど見た目は良くないな

Juliaってcolumn majorのくせに多次元配列のconcatenation は左の添字からやろうとするの本当に謎
144 :
デフォルトの名無しさん
2016/09/13(火) 20:37:02.00 ID:roYGy53F
>>140
すまん、intをdeprecate にされたことがまず辛い。消すなら消すで同じくらい短くかける別の関数を用意してほしい
毎回これを書くのは嫌だし、自分でこれの別名をつけるのはなんか違う
145 :
デフォルトの名無しさん
2016/09/14(水) 13:14:08.84 ID:RIACRRsP
parseint なんで死んでもうたん
146 :
デフォルトの名無しさん
2016/09/19(月) 18:47:11.41 ID:4df2MR9Z
君死に勿給ふこと
147 :
デフォルトの名無しさん
2016/09/20(火) 11:35:12.98 ID:fyTX+ASc
IPython - 対話的にPythonプログラミングができるコマンドラインツールです。とはいえ初心者だと何をどうしていいかわからないかも
Jupyter Notebook - IPythonをブラウザ上で実行するツールです(全然それだけじゃないけど) 。とっかかりとして一番のおすすめ。
様々なサンプルがこのツールのNotebook形式で配布されており、学習効率もいいです。

とりあえずVisual StudioとPycharmがIDEで, 前者はpythonに限定しないIDE,
後者はpython用のIDEですね. ※Visual Studioはpythonに対応してるとの事です.
アナコンダはパッケージのインストーラーで, IpythonとJupyterも一緒に
ダウンロードされますよね.
JupyterもIDEではないのですか?

IDEの定義によるんだろうけど
JupyterはIDEの条件を満たしてはなさそう
ノート機能が付いたEditorに近いのかな

私のとらえ方ではIDEは3ペイン・2ペイン構成のデスクトップアプリで
IPythonをブラウザ上で(シングルペインではあるが)IDE「的」に使えるのがJupyterですね
Anacondaにはpython用IDEデスクトップアプリのSpyderというものも入ってますので
インストール後両方起動されると、おおよその雰囲気の違いがわかると思います

Jupyter-IPython は Mathematica を目指してる。
Kernel + Notebook の構造。
IDE とはまた違うかな。
148 :
2016/09/20(火) 16:45:47.03 ID:OOeys4LV
俺定義とかどうでもいい
149 :
デフォルトの名無しさん
2016/09/20(火) 18:24:31.81 ID:9mjD9CdW
0.5正式版出た?
150 :
2016/09/23(金) 22:24:53.87 ID:kOClgCb6
ジェネレータ式はトリッキーなマクロが要らなくなっていいな

PROGRAM_FILEはやっとか
151 :
デフォルトの名無しさん
2016/09/23(金) 23:25:21.12 ID:88XXmyIP
この調子で引数に_を使った時に部分適用になるあれもこないかな
152 :
デフォルトの名無しさん
2016/09/27(火) 10:01:40.02 ID:pOx3jF2U
Julia0.5正式に出たっていうのになんだこの話題なってなさは
153 :
デフォルトの名無しさん
2016/10/20(木) 11:50:05.14 ID:lWKh0RTB
FORTRAN2016
154 :
デフォルトの名無しさん
2016/11/03(木) 03:38:05.60 ID:iYejUQc8
煽り抜きでダメだなもう
ガバナンスも利いてないしめちゃくちゃ
文法も思想もとっちらかったクソ言語に成り果ててる
155 :
2016/11/03(木) 06:39:55.89 ID:yjP+XKqq
もうガバガバなんす
156 :
デフォルトの名無しさん
2016/11/03(木) 08:35:32.33 ID:Qx64j3d5
>>154
ほんまこれ。迷走しすぎて言語仕様めちゃくちゃ
157 :
2016/11/03(木) 10:49:45.39 ID:6FeMk1RE
どこで間違ったし
158 :
デフォルトの名無しさん
2016/11/10(木) 00:39:14.58 ID:il4z8U8D
pythonでよくね
159 :
デフォルトの名無しさん
2016/12/02(金) 20:17:55.46 ID:4z6Tns60
type Pos
x::Float64
y::Float64
end

Base.+(a::Pos, b::Pos) = Pos(a.x + b.x, a.y + b.y)

ってやると(a::Pos, b::Pos) is not a valid function
ってエラー吐くのですが、オリジナルの型用の演算子定義するにはどうすればいいのでしょうか?
160 :
デフォルトの名無しさん
2016/12/03(土) 14:42:15.35 ID:iU+ignEA
(+)(a::Pos, b::Pos) = Pos(a.x + b.x, a.y + b.y)
161 :
2016/12/03(土) 14:45:29.61 ID:iU+ignEA
こっちか
(:(+))(a::Pos, b::Pos) = Pos(a.x + b.x, a.y + b.y)
162 :
デフォルトの名無しさん
2016/12/03(土) 22:57:39.15 ID:MCWCirTG
>>160をやると普通の+が使えなくなり、
>>161をやるとsyntax: invalid function name ":+"
ってなりました……
163 :
2016/12/04(日) 16:46:36.86 ID:sRaGesqk
import Base.+
.+(a::Pos, b::Pos) = Pos(a.x + b.x, a.y + b.y)
とか?
164 :
2016/12/04(日) 16:55:46.44 ID:sRaGesqk
すまん+の前のドット要らん
165 :
デフォルトの名無しさん
2016/12/18(日) 17:43:44.11 ID:ZqV+jY/A
Tk.jl わろす
166 :
2016/12/24(土) 06:10:21.30 ID:WW/1/xEY
3ヶ月程前からPython+Numpy 覚えながら前から作ろうと思っていたプログラム書き始めていたのですが、
最近Juliaを知って日本語で書かれたドキュメント読み切って中身知ったら凄く綺麗で良い言語に見えてきて、
むしろPythonの方はダメな部分を補う為に無理やりNumpyをくっつけているようにすら見えてきたのですが、
その認識は間違ってないでしょうか?
書きかけのプログラムをPython+NumpyやめてJuliaを覚える方にシフトしようかある程度Pythonを覚えてきたこともあって悩んでいます。
167 :
デフォルトの名無しさん
2016/12/24(土) 12:34:17.22 ID:p4lqfCaM
めりくり
168 :
デフォルトの名無しさん
2016/12/24(土) 15:53:34.28 ID:8EM69YXY
numpyで充分
169 :
2016/12/26(月) 19:37:06.22 ID:/4K9rjX9
Juliaは上手く統合されてると思うけど、まだ色々足りないでしょ
自分でバンバン書ける人ならともかく、覚え始めとかならPythonやっとけ
170 :
デフォルトの名無しさん
2016/12/26(月) 20:42:06.86 ID:aoxifvbm
JuliaスレでJuliaをディスるな��
171 :
デフォルトの名無しさん
2016/12/27(火) 14:39:42.88 ID:ov9/Tp6R
disってるようには思わないな
正当な批判はちゃんと批判として受け入れるべき
172 :
2016/12/27(火) 20:29:48.62 ID:tyJ7Gcdt
JuliaにはRを殺して欲しい
173 :
デフォルトの名無しさん
2016/12/27(火) 20:54:54.62 ID:6hdNCFW6
配列が線形代数向けに整備されてる言語ってJuliaとRくらいのもんか?
174 :
2016/12/27(火) 21:07:35.36 ID:tyJ7Gcdt
J
175 :
デフォルトの名無しさん
2016/12/27(火) 21:16:00.31 ID:6hdNCFW6
Jはちょっと……
176 :
2016/12/27(火) 21:56:48.37 ID:Av1wtqbn
線形代数向けに整備されてるってどういうこと?
177 :
デフォルトの名無しさん
2016/12/28(水) 00:10:38.62 ID:h6cUbtbL
配列を使って高速に内積とか行列演算とか出来るということ
C++のEigenとかPythonのNumpyにあたる機能がJuliaでは標準の配列でサポートされている
178 :
2016/12/28(水) 01:58:11.43 ID:Pt7cMAGf
そんなもん書いたら終わりじゃん。
宣言型だとか、原始再帰関数がどうとか言い出すならともかく。
179 :
デフォルトの名無しさん
2016/12/28(水) 11:27:50.75 ID:h6cUbtbL
>>178
いちいち自分で外積内積アダマール積、逆行列行列式特異値分解とかLAPACKラッパー書いていくの?
180 :
2016/12/28(水) 12:24:00.73 ID:JT952dSj
>>179
標準、がフワフワしすぎ、って事。
181 :
デフォルトの名無しさん
2016/12/28(水) 12:24:37.91 ID:kFL7wfb2
>>177
勝手にCUDAってくれたりするってこと?
182 :
デフォルトの名無しさん
2016/12/28(水) 12:25:24.34 ID:kFL7wfb2
>>179
一回書いたら終わりだろ
183 :
デフォルトの名無しさん
2016/12/28(水) 12:59:27.07 ID:/YvbcywK
>>182
最近の言語は大体色々楽するために発展して来てるのに、その発想はストイックすぎるだろ。俺はそれをD言語でやろうとして途中で面倒になってやめたわ。ライブラリの存在を全否定するような発想はC言語とFortranの世界の中でお願いします。

それに線形代数よく分かってなくてもJuliaの関数を色々使ってみて理解が進むという側面もあるから、出来るやつが書いた使いやすい線形代数APIが標準で搭載されている言語は重要だと思うわ

ちなみにJuliaでのcudaのサポートはまだまだこれから

>>180
すまんが意味がわからんかった
184 :
2016/12/28(水) 13:10:29.72 ID:45reyBmE
>それに線形代数よく分かってなくてもJuliaの関数を色々使ってみて理解が進むという側面もあるから

こんなとこで高卒自慢ですねわかります
185 :
デフォルトの名無しさん
2016/12/28(水) 13:31:41.63 ID:/YvbcywK
線形代数の動きやどんな関数があるかは大学でもMapleやMathematicaで実際に動かして実習するというのに、それがJuliaに変わるだけで高卒自慢と捉えるのは数学ガチ勢か老害か効率悪いアホかただの煽り野郎かのどれかだな
186 :
2016/12/28(水) 14:35:26.89 ID:JT952dSj
>>183
実装みてない関数で集計とかキチガイの所業じゃん。
187 :
2016/12/28(水) 16:24:36.07 ID:1TyJaTqj
166ですが、結局Julia漬けの毎日になってしまいました。
昔Cでアルゴリズムを書いて学んだのですが、それをそのままJuliaで書いて練習してます。いくつか言語の経験はあったのですが、Cの組み込みをやっていたのもあって、型をきちんと指定出来る上にCの構造体のように書けるのでとても扱いやすくて良いです。
188 :
2016/12/28(水) 17:06:05.37 ID:kFL7wfb2
↑amazonの自演レビュー見てる気がしてきた
189 :
デフォルトの名無しさん
2016/12/28(水) 18:51:49.10 ID:XL99jgpe
>>186
オープンソースなんだから見ればいいじゃん
190 :
デフォルトの名無しさん
2016/12/28(水) 19:01:40.76 ID:/YvbcywK
>>186
おまえは自分が使ってるもののソース全部見てんのか?
191 :
2016/12/29(木) 00:05:08.16 ID:RruPXahs
>>190
全部書いてる。
192 :
2016/12/29(木) 00:15:27.73 ID:byMsx2NY
>>190
その2chブラウザもか、やるな!
193 :
デフォルトの名無しさん
2016/12/29(木) 00:35:10.76 ID:rvAXIAg7
>>191
LAPACK使わないの?MKL使わないの?それで速くてまともなプログラムを一から十までちゃんと作って完成させられるのなら相当凄いな

でも今時は量子化学ソフトの開発者だって当然のように他人のコード混ぜるし、量子化学ソフト使ってる人は使ってるプログラムのアルゴリズムの詳細までは知らないことが多い。
数学の教授だってMathematicaの実装知らずに使ってるよ。統計の学者だってRの中身全部把握してる訳じゃない。
そもそも実験屋はコードが何かもよく分かってなかったりするけど出来合いのアプリケーションで集計して論文を書く。どこかで妥協して人を信用しないと新しいものを作れる段階に行けないことが多いから。
だから、実装見てない関数で集計するのがキチガイの所業だと思う方がキチガイだと思うぞ
194 :
2016/12/29(木) 00:40:53.56 ID:5yPVbf0y
>>193
お金もらってるしね。
実験屋のデータを意味のあるものにするのが仕事だから。
Rの中身は全部読んでるし、割と枯れたものに修正入れて全部検証してるよ。
そんなのは実験屋であって、研究者でもないし、
研究者は実験屋でもない。
妥協と信頼は金で買うんだよ、普通の研究所って。
こんなとこでママゴトみたいな言い分聞くとは思わなかったな。
195 :
デフォルトの名無しさん
2016/12/29(木) 01:12:28.24 ID:rvAXIAg7
>>194
じゃあ一体何のためにこの世にRは存在しているの?
196 :
2016/12/29(木) 01:14:25.61 ID:RruPXahs
>>195
足場。
197 :
デフォルトの名無しさん
2016/12/29(木) 01:17:59.94 ID:rvAXIAg7
>>196
Rを使って研究している計量経済学の教授で、Rの内部実装をちゃんと読んでない教授はキチガイ?
198 :
デフォルトの名無しさん
2016/12/29(木) 01:33:55.87 ID:rvAXIAg7
>>194
この世にはシミュレーションソフトを回すことを専門とする教授が一定数いるんだけど彼らはGaussianの内部実装を全部読むのは無理という人ばかりだよ。彼らはキチガイ?
199 :
2016/12/29(木) 02:33:47.93 ID:RruPXahs
>>197
知ってる限りの学者は、ソース読んでる。
マクロ系ばっかりだけど。

>>198
そんなもん「オペレータ」だよ。
活字拾うジョバンニと同じ。
ただしその人らが、Gaussianに限らず、方程式として書いたものを、所内のQCに投げて、オッケーですと確認する事を怠らなければ研究者だろうね。
大体は組み込みの関数やら標準ライブラリはオーバースペック。しかもバージョンアップある。
なら内製したほうがマシ。
200 :
デフォルトの名無しさん
2016/12/29(木) 02:45:49.88 ID:rvAXIAg7
>>199
大学の研究室にQCはいないよ。標準ライブラリの代わりを再開発してるような手数もないよ。めちゃくちゃ言うのやめてくれる?
201 :
デフォルトの名無しさん
2016/12/29(木) 02:59:11.48 ID:vM8XqIT4
標準ライブラリの存在意義を全否定する典型的なキチガイおるな
一時期C++スレに沸いてたのと同一人物か?
202 :
デフォルトの名無しさん
2016/12/29(木) 06:07:19.08 ID:L9EyXr64
LLVMのコード見ても不十分
全部アセンブリ以外認めない(きりっ)
ですね
203 :
デフォルトの名無しさん
2016/12/29(木) 10:35:54.26 ID:jjPid1L5
gccのコード見ても不十分
intelのチップの命令セット把握せずにコンピューター使うとかキチガイの所業(笑)
204 :
2016/12/29(木) 11:27:51.11 ID:AIw2bcpm
まぁ、コンパイラ変わったらアセンブリは見るなぁ。
205 :
2016/12/29(木) 11:49:57.94 ID:yRjYoWJx
なければ創れ
いまのJuliaはまだそういうレベル
206 :
デフォルトの名無しさん
2016/12/30(金) 15:37:34.62 ID:Q3tvxZdg
女性プログラマーに"熱視線"
http://www3.nhk.or.jp/news/web_tokushu/2016_1229.html
207 :
デフォルトの名無しさん
2017/01/04(水) 20:17:28.54 ID:S4XLibkf
JuliaでGUIする時の定番って何?
208 :
デフォルトの名無しさん
2017/01/04(水) 22:59:59.17 ID:J+uePkPh
tk.jl
209 :
デフォルトの名無しさん
2017/01/05(木) 09:16:45.27 ID:HIrpPtb3
サンクス
210 :
2017/01/05(木) 11:15:39.38 ID:2uA+A+xC
これ度のバージョンの Tk なんだろ
211 :
2017/01/05(木) 11:30:57.02 ID:2uA+A+xC
最近ダウソしたのみたら tcl/tk 8.6.0 だったわ
212 :
2017/01/13(金) 00:03:06.57 ID:BToQe0po
既存のパッケージ使って
使い捨てのスクリプト書くのは簡単なのに
クラスベースのOOPに慣れすぎた弊害か
いざ自分でモジュールを設計しようとすると途方に暮れる
213 :
2017/01/13(金) 00:32:54.45 ID:hG8N0LDQ
GoでGrumpyが出来るのだからJuliaでJumpyみたいなのって出来ないですか?
ライブラリが足りなくて無理?
214 :
2017/01/13(金) 16:09:05.38 ID:9VNDsy97
>>212
>クラスベースのOOPに慣れすぎた弊害か

違うよ
元々OOPやOODを判ってないだけ
215 :
2017/01/14(土) 14:53:43.03 ID:xCP+awUH
>>214
「本質が同じ」で片付けるなら
Juliaという言語が生まれる動機なんて無いのでは

それに理解していることと実践できることは同じではない
判っていても難しいものは難しいし
判っていなくても簡単ということだってある
216 :
デフォルトの名無しさん
2017/01/16(月) 16:59:03.34 ID:YH2Bx58z
コンストラクタの造り方(書き方)知らないだけだろ
217 :
デフォルトの名無しさん
2017/01/16(月) 18:00:28.81 ID:Zd7PlcsW
どちらかと言うとクラスベースだと思うけどな
昔のプロトタイプベースのjavascriptより100倍わかりやすい
218 :
2017/01/17(火) 17:23:59.95 ID:1PLMnPDO
mounko
219 :
2017/02/11(土) 00:31:23.05 ID:Ne5zNFDh
依存関係解析してincludeをソートしたりとか
変更のあったファイルだけテストするとか
そういったツールってあるの?
220 :
2017/02/12(日) 08:00:36.63 ID:fljd0HzI
Juliaと似た思想のhalideという画像処理言語がある
どっちもやりたいこと同じなんだから
統合してくれないものか
221 :
2017/02/12(日) 10:26:38.18 ID:xadXFsxa
思想は似てない部類だと思うが

Images.jlの中の人がちょっと実験していたみたいだけど
統合することはないだろうね
222 :
2017/02/14(火) 19:36:03.24 ID:QSsrItZ6
コンストラクタがよく分からん

type Hoge{T}

hoge::T

end


type Fuga{T}

hoge::T

Fuga(h::Hoge{T}) = new(h.hoge)

end

このFuga(h::Hoge{T})って外に出せないの?
223 :
2017/02/14(火) 19:50:40.55 ID:uwayiWk9
Fuga(h) = Fuga(h.hoge)
224 :
2017/02/14(火) 20:26:35.21 ID:QSsrItZ6
それはコンストラクタじゃなく
いわゆるファクトリーメソッドなんじゃ?

Fuga{Int}(Hoge{Int}(123))
みたいに呼べないからtypealiasを使ったときに都合が悪い

それならconvert()の方がいい
225 :
デフォルトの名無しさん
2017/02/15(水) 06:29:44.60 ID:N3aAX75A
なぜ TypeScript の型システムが健全性を諦めているか
http://qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
226 :
2017/02/15(水) 19:29:55.89 ID:zIDXvFzU
タプルの配列
tuples =[("a", 1), ("b", 2)]
からタプルの2番目の要素を抽出したい場合
[t[2] for t in tuples]
map(t->t[2], tuples)
より簡潔に書く方法ってある?
多次元配列の[:,2]みたいな
227 :
2017/02/16(木) 10:11:39.50 ID:81TflRQB
ありそうで無さそう
(t->t[2]).(tuples)
は若干簡潔?
228 :
2017/02/16(木) 12:10:29.76 ID:1VBkG9E6
tuples[:;2]
tuples[: 2]
229 :
2017/02/16(木) 20:29:06.67 ID:rN52lazs
>>227
ドット記法ってこんな風にも使えるのかぁ
ドットが中置の二項演算子にしか見えんけどw

>>228
v0.5ではエラーだったよ
230 :
2017/02/18(土) 22:39:19.58 ID:YIdsU2Sd
>>222
> Julia v0.6.0 Release Notes
> "Inner constructor" syntax for parametric types is deprecated.

where構文なんてものができるらしい

structとかv0.6で結構変わるけど
各種packageはついていけるんだろうか
231 :
デフォルトの名無しさん
2017/02/18(土) 22:42:03.79 ID:KVIDXYhT
>>230
え、マジ?whereできるんならjuliaの使い勝手大きく変わるぞ
232 :
デフォルトの名無しさん
2017/02/18(土) 22:43:56.61 ID:KVIDXYhT
なんか思ってたのと違った
233 :
デフォルトの名無しさん
2017/02/19(日) 11:09:58.78 ID:tjAiUQin
>>232
juliaそれ多い
234 :
2017/02/20(月) 10:14:45.50 ID:hUMmJbIR
パイプ演算子多用しちゃうんだが下品かな
235 :
デフォルトの名無しさん
2017/02/20(月) 10:19:46.85 ID:EsKjTg7q
おれも多用するわ。しかもなんならラムダと組み合わせて凄いことになってる
236 :
2017/03/02(木) 22:45:42.18 ID:Ht7v5Bb2
パイプ演算子と無名関数はElixirみたいに書けるとかっこよさそうなんだけどなあ
237 :
デフォルトの名無しさん
2017/03/03(金) 12:28:20.36 ID:IUFykjWp
漢は黙ってパイプカット
238 :
2017/03/08(水) 22:54:06.42 ID:sg23pP1Q
いつの間にか0.5.1になっているが何が修正されたのか分からない
2月が終わったけど0.6.0はまだなのか
79KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: