Sto provando a creare una funzione modulo all'interno di haskell usando le funzioni primtive recursive. So che è possibile (perché è sulla lista delle funzioni di esempio su wikipedia)ricorsione primitiva modulo haskell
E so come lo farei anche io logicamente .. Ma non riesco proprio ad implementarlo!
IE, la logica è (non ricorsione primtive o Haskell)
function mod(a, b){
while(a > b)
a -= b
return a;
}
Che posso definire utilizzando la ricorsione (ancora una volta non Haskel)
function mod(a, b){
if(a < b) return a;
return mod(a - b, b);
}
Ma io proprio non riesco a implementare usando le funzioni ricorsive primitive. Mi morsi che non posso fare è la logica di una < b
Credo che per risolvere davvero il mio problema ho bisogno di un qualche tipo di logica definita come (ancora una volta non Haskel)
reduce(a, b)
= a >= b -> a-b
otherwise x
se qualcuno potrebbe aiutatemi con qualsiasi parte di questo lo apprezzerei molto, grazie
Modifica :: Ho pensato di definire potenzialmente una funzione modulo facendo uso della divisione, cioè mod (a, b) = a - (a/b) * b, ma poiché la mia funzione ricorsiva primitiva per divisione si basa su modulo I non può farlo haha
'mod ab | a
@DanBurton Un utente lo ha già postato prima, ma poi ha cancellato il suo messaggio in quanto non è realmente pertinente al contesto delle funzioni ricorsive primitive – AlanFoster