подскажете почему ошибка?
quickSort [] = []
quickSort (x:xs) = quickSort l:x:quickSort r
where
l = filter (<x) xs
r = filter (>=x) xs
А компилятор что говорит?
Стикер
l - список, а ты его прикручиваешь как числовое значение
quickSort (x:xs) = quickSort l ++ [x] ++ quickSort r
да, с таким работает. Но синтаксис 1:2:3 мне кажется более приятным
зачем делать [x] ++ когда можно x:
двоеточие прикрепляет элемент к списку, а не сцепляет два списка
1 : 2 : 3 не получится, получится 1 ++ 2 : 3 или 1 <> 2 : 3 ++ и <> в данном случае равноценны
Кажется понял идею. Значит может быть только 1 «:» ?
чтобы было симметрично
Обсуждают сегодня