In Julia, c'è un modo per scrivere una macro che si dirama in base al tipo (in fase di compilazione) dei suoi argomenti, almeno per gli argomenti i cui tipi possono essere dedotti in fase di compilazione? Come nell'esempio seguente, ho creato una funzione denominata code_type
che restituisce il tipo in fase di compilazione di x
. Esiste qualche funzione del genere o un modo per produrre questo tipo di comportamento? (O se le macro vengono espansa prima tipi sono desunti, in modo tale che questo genere di cose è impossibile.)In Julia, una macro può accedere al tipo dedotto dei suoi argomenti?
macro report_int(x)
code_type(x) == Int64 ? "it's an int" : "not an int"
end
Solo una piccola nota pedante: le funzioni generate operano sui tipi effettivi dei suoi argomenti e non solo sui tipi dedotti. (I due sono gli stessi se la funzione è di tipo stabile). –
Buon punto. Dovrei anche dire che questo è disponibile solo su build recenti di 0.4dev. – spencerlyon2