Julia: ๋ฐฐ์—ด์—์„œ ํ•จ์ˆ˜๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๋ฉด ํ‘œํ˜„์‹์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 03์›” 26์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: JuliaLang/julia

์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์˜ค๋ฅ˜๋ฅผ ๋˜์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

julia> identity.[3,4,5]
:([3, 4, 5])
bug lowering

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๊ฒฐ์ฝ” ์˜๋ฏธ๊ฐ€ ์—†๋Š” ํ‘œํ˜„์ด ์•„๋‹™๋‹ˆ๋‹ค. julia์˜ ๋ชจ๋“  ๋ฒ„์ „์—์„œ ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ๋‚ฎ์ถ”๋Š” ๋™์•ˆ ์ผ์ข…์˜ ์˜ค๋ฅ˜์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

FWIW identity ์—์„œ๋งŒ ์ด๊ฒƒ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

julia> sum.[1,2,3]
ERROR: MethodError: no method matching start(::Expr)
Closest candidates are:
  start(::SimpleVector) at essentials.jl:259
  start(::Base.MethodList) at reflection.jl:560
  start(::ExponentialBackOff) at error.jl:107
  ...
Stacktrace:
 [1] mapfoldl(::Base.#identity, ::Function, ::Expr) at ./reduce.jl:67
 [2] sum(::Expr) at ./reduce.jl:342
 [3] broadcast(::Function, ::Expr) at ./broadcast.jl:415

julia> identity.[1,2,3]
:([1, 2, 3])

julia> length.[1,2,3]
ERROR: MethodError: no method matching length(::Expr)
Closest candidates are:
  length(::SimpleVector) at essentials.jl:257
  length(::Base.MethodList) at reflection.jl:558
  length(::MethodTable) at reflection.jl:634
  ...
Stacktrace:
 [1] broadcast(::Function, ::Expr) at ./broadcast.jl:415

broadcast(identity, :([1,2,3])) ๋กœ ๋‚ฎ์•„์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฒฐ์ฝ” ์˜๋ฏธ๊ฐ€ ์—†๋Š” ํ‘œํ˜„์ด ์•„๋‹™๋‹ˆ๋‹ค. julia์˜ ๋ชจ๋“  ๋ฒ„์ „์—์„œ ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ๋‚ฎ์ถ”๋Š” ๋™์•ˆ ์ผ์ข…์˜ ์˜ค๋ฅ˜์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰