Je voudrais concevoir un algorithme Haskell utilisant récursion queue et première programmation de commande pour tri par insertionsorte d'insertion en utilisant la récursivité queue et première fonction pour
Je suis venu avec cette solution
isort :: Ord a => [a] -> [a]
isort [] = []
isort [x] = [x]
isort (x:xs) = insert (isort xs)
where insert [] = [x]
insert (y:ys)
| x < y = x : y : ys
| otherwise = y : insert ys
Mais je ne suis pas sûr si elle utilise le premier ordre et la récursivité de la queue.
Quelqu'un peut-il trouver une solution de rechange à l'aide
- queue récursion
- première programmation pour
Merci,
Ceci n'utilise pas la récursivité de la queue. La clause 'else' de' insert' est 'y: insert ys' (plus clairement écrit' (:) y (insert ys) ') l'appel à' insert' apparaît comme argument de '(:)', non en position de queue –
Pouvez-vous expliquer ce que vous entendez par "Programmation de premier ordre"? Est-ce juste quelque chose qui ne prend pas une fonction comme argument. – Lazersmoke
@Lazersmoke oui, exactement. –