Programação

8
Como provar a igualdade de tipos indutivamente sem classes?

Estou tentando provar a associatividade das listas em nível de tipo de maneira que me permita converter entre tipos equivalentes sem contornar restrições. Assumindo a definição padrão de concatenação: type family (++) (xs :: [k]) (ys :: [k]) :: [k] where '[] ++ ys = ys (x ': xs) ++ ys = x ':...

8
Especialização std :: alocador fornecida pelo usuário

Os modelos de classe no ::stdnamespace geralmente podem ser especializados por programas para tipos definidos pelo usuário. Não encontrei nenhuma exceção a esta regra para std::allocator. Então, posso me especializar std::allocatorpara meus próprios tipos? E se me for permitido, preciso fornecer...

8
Restrição de assinatura em papéis no raku

Talvez esteja faltando alguma coisa, mas eu gostaria de saber se existe um bom motivo para esse código ser compilado role L { method do-l (Int, Int --> Int ) { ... } } class A does L { method do-l (Int $a, Real $b --> Str) { .Str ~ ": Did you expect Int?" with $a + $b } } my $a =...

8
Obter tipo na matriz

Como posso obter o tipo dentro de uma matriz? a = [1,2,3] Eu posso pegar o tipo de a typeof(a) Vector{Int64} mas eu realmente quero Int64. Primeiro, pensei que uma solução alternativa para iniciantes poderia ser typeof(a[1]) Int64 mas isso não está correto, como pode ser visto aqui: a =...