Utilizzando l'esempio di Nanashi, l'indizio è l'errore quando si chiama f(g())
julia> g() = (1, 2, 3)
g (generic function with 1 method)
julia> f(a, b, c) = +(a, b, c)
f (generic function with 1 method)
julia> g()
(1,2,3)
julia> f(g())
ERROR: no method f((Int64,Int64,Int64))
Ciò indica che questo dà la tupla (1, 2, 3)
come input per f
senza disimballo. Per decomprimerlo usa un'ellissi.
julia> f(g()...)
6
Il relativo capitolo nel manuale di Julia è qui: http://julia.readthedocs.org/en/latest/manual/functions/#varargs-functions
fonte
2014-04-04 22:26:59
non ha ancora sapere tuple potrebbero essere Splatted, grazie! – AJcodez
Preferisco 'f (g() ...)' su 'apply', e penso che il primo sia più idiomatico in Julia. –
@AJcodez: è possibile rimuovere la mia risposta come accettata e contrassegnarla come risposta? Credo che sia comunque meglio. – Manhattan