Czy w Julii istnieje możliwość napisania makra rozgałęziającego się w oparciu o typ argumentów (kompilacji), przynajmniej dla argumentów, których typy można wywnioskować w czasie kompilacji? Podobnie jak w poniższym przykładzie, utworzyłem funkcję o nazwie code_type
, która zwraca typ kompilacji x
. Czy istnieje jakakolwiek taka funkcja lub jakikolwiek sposób na wytworzenie tego rodzaju zachowania? (Albo czy makra rozszerzył się przed typy wywnioskować, tak że tego typu rzeczy jest niemożliwe.)W Julia, czy makro może uzyskać dostęp do wywnioskowanego typu jego argumentów?
macro report_int(x)
code_type(x) == Int64 ? "it's an int" : "not an int"
end
Po prostu pomniejsza notatka pedantyczna: wygenerowane funkcje działają na faktycznych typach argumentów, a nie tylko na podstawie wnioskowanych typów. (Te dwa są takie same, jeśli funkcja jest stabilna). –
Dobra uwaga. Powinienem też wspomnieć, że jest to dostępne tylko w najnowszych wersjach 0.4dev. – spencerlyon2