Size: a a a

2021 February 03

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Kai Ren
Интересно что подразумевается именно под ФП, когда рядом стоят требования хайлоада и алгоритмов?
как и обычно - ссылочная прозрачность
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну по крайней мере это то что я понимаю
источник

KR

Kai Ren in rust_offtopic
Αλεχ Zhukovsky
как и обычно - ссылочная прозрачность
Чёт сомневаюсь)
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а что они понимают я понятия неимею
источник

KR

Kai Ren in rust_offtopic
Αλεχ Zhukovsky
а что они понимают я понятия неимею
Отож
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Kai Ren
Чёт сомневаюсь)
ну мб они имеют в виду "шобы в итераторы умел"
источник

KR

Kai Ren in rust_offtopic
Αλεχ Zhukovsky
ну мб они имеют в виду "шобы в итераторы умел"
Ага... вспомнилось про "бога алгоритмики" и "императивную макаку" кек)
источник

ID

Iv@n Dereviankin in rust_offtopic
Αλεχ Zhukovsky
ну мб они имеют в виду "шобы в итераторы умел"
позволю себе нубацкий вопрос: что не так с итераторами, почему они (или их методы) такие медленные? они разве не развертываються в обычные циклы?
источник

ID

Iv@n Dereviankin in rust_offtopic
P.S. в компилятор раста не лазил
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Iv@n Dereviankin
позволю себе нубацкий вопрос: что не так с итераторами, почему они (или их методы) такие медленные? они разве не развертываються в обычные циклы?
кто сказал что они медленные?
источник

DS

Doge Shibu in rust_offtopic
Iv@n Dereviankin
позволю себе нубацкий вопрос: что не так с итераторами, почему они (или их методы) такие медленные? они разве не развертываються в обычные циклы?
С итераторами все ок, если они целиком инлайнятся
источник

DS

Doge Shibu in rust_offtopic
Проблемы могут быть вокруг dyn Iterator
источник

ID

Iv@n Dereviankin in rust_offtopic
Αλεχ Zhukovsky
кто сказал что они медленные?
Я. Уже приводил пример с быстрой сортировкой на итераторах: да, пять строчек круто, но 6сек против 1сек если сравнивать с более традиционным подходом
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Iv@n Dereviankin
Я. Уже приводил пример с быстрой сортировкой на итераторах: да, пять строчек круто, но 6сек против 1сек если сравнивать с более традиционным подходом
быстрая сортировка не может работать на итераторах
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну то есть МОЖНО написать похожий алгоритм, но быстрой сортировкой он не будет
источник

ID

Iv@n Dereviankin in rust_offtopic
Αλεχ Zhukovsky
быстрая сортировка не может работать на итераторах
но ведь хаскель...
источник

ID

Iv@n Dereviankin in rust_offtopic
quicksort1 :: (Ord a) => [a] -> [a]
quicksort1 [] = []
quicksort1 (x:xs) =
 let smallerSorted = quicksort1 [a | a <- xs, a <= x]
     biggerSorted = quicksort1 [a | a <- xs, a > x]
 in  smallerSorted ++ [x] ++ biggerSorted
источник

ID

Iv@n Dereviankin in rust_offtopic
я вот по этому принципу "отфильтровал и в рекурсию" и сделал
источник

ID

Iv@n Dereviankin in rust_offtopic
Αλεχ Zhukovsky
быстрая сортировка не может работать на итераторах
а почему, если не секрет?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Iv@n Dereviankin
quicksort1 :: (Ord a) => [a] -> [a]
quicksort1 [] = []
quicksort1 (x:xs) =
 let smallerSorted = quicksort1 [a | a <- xs, a <= x]
     biggerSorted = quicksort1 [a | a <- xs, a > x]
 in  smallerSorted ++ [x] ++ biggerSorted
квиксорт это инплейс сортироква, ты же в курсе?

на хаскеле она пишется так

import qualified Data.Vector.Generic as V
import qualified Data.Vector.Generic.Mutable as M

qsort :: (V.Vector v a, Ord a) => v a -> v a
qsort = V.modify go where
   go xs | M.length xs < 2 = return ()
         | otherwise = do
           p <- M.read xs (M.length xs `div` 2)
           j <- M.unstablePartition (< p) xs
           let (l, pr) = M.splitAt j xs
           k <- M.unstablePartition (== p) pr
           go l; go $ M.drop k pr
источник