Sto cercando di creare alcuni tipi di Haskell parametrizzati non dai tipi ma dagli elementi di un tipo, in particolare, gli interi. Ad esempio, un vettore (lineare-algebra) in R^2 e un vettore in R^3 sono diversi oggetti tipizzati. Nello specifico, sto scrivendo un albero K-D in Haskell e voglio parametrizzare la mia struttura dati con un numero intero positivo, quindi un albero 3D e un albero 4-D hanno un tipo diverso.Parametrizzazione dei tipi per interi in Haskell
Ho provato a parametrizzare il mio albero con le tuple, ma non sembra andare da nessuna parte (e sembra alquanto improbabile che questo possa essere spinto attraverso, soprattutto perché non sembra che le triple o le più grandi siano anche funtori (e non so alcun modo per dire come, esempio HomogeneousTuple a => Functor a) voglio fare qualcosa del genere:.
data (TupleOfDoubles a) => KDTree a b = ... ---so in a 3DTree a is (Double,Double,Double)
che sarebbe bello, o qualcosa di simile sarebbe altrettanto buono
data KDTree Int a = ... -- The Int is k, so KDTree has kind Int -> * -> *
Qualcuno sa se uno di questi gli effetti sono praticabili o ragionevoli?
Grazie -Joseph
una nota a margine, potreste essere interessati a parte della letteratura sui tipi dipendenti, che è un tipo più generale di funzioni da valori a tipi: mi sono divertito http://www.cse.chalmers.se/~peterd /papers/DependentTypesAtWork.pdf –
grazie Amos, sembra qualcosa che posso usare –