Kann ich Typinformationen zu Argumenten hinzufügen, die Funktionen sind?Kann ich Informationen zu Argumenten hinzufügen, die in Julia funktionieren?
Betrachten Sie das folgende Beispiel:
function f{T} (func, x::Int)
output = Dict{Int, Any}()
output[x] = func(x)
return output
end
Ich mag es nicht, dass ich Any
für den Werttyp des Wörterbuchs zu sagen haben. Ich würde eher das folgende tun:
function f{T} (func::Function{Int->T}, x::Int)
output = Dict{Int, T}()
output[x] = func(x)
return output
end
Kann ich Typhinweise solcher Funktionen zur Verfügung stellen? Ich möchte Folgendes sagen:
f :: (Int -> T), Int -> Dict{Int, T}
Jede Chance von Haskell-like all-in-one zu Typdeklarationen? (wie die untere Zeile der Frage) – MRocklin
Es gibt eine Chance. – StefanKarpinski
Hat sich das mit 0,5 geändert? Wir können jetzt 'function hallo (x :: String) :: String" Hallo ", * x *"! " Ende für benannte Funktionen ... können wir alles in der Art von 'x :: Function {_ -> String}; x = Hallo? (Im obigen Beispiel wird 'hallo :: Function 'übergeben,' typeof (hallo) 'ist' # hallo' und 'Base.return_types (hello)' ist '1-element Array {Any, 1}: String '.) – Philip