Описание тега stream-fusion
2
ответа
Почему `Vector.length (Vector.replicate n 0)" не сливается?
Следующий код неожиданно (по крайней мере для меня) создает промежуточный вектор: import qualified Data.Vector as Vector main :: IO () main = print (test n) n :: Int n = 1000000 test :: Int -> Int test n = Vector.length (Vector.replicate n (0 :: …
18 мар '16 в 23:28
2
ответа
Что такое фьюжн в Хаскеле?
Время от времени я замечал в документации по Haskell следующее: (например, в Data.Text): Подлежит слиянию Что такое фьюжн и как его использовать?
11 авг '16 в 20:17
1
ответ
Не удается установить пакет Haskell stream-fusion-0.1.2.5: неоднозначное вхождение
Я пытаюсь построить проект Barbarosa, который требует пакет stream-fusion-0.1.2.5. тем не мение cabal install терпит неудачу со следующим [3 of 3] Compiling Control.Monad.Stream ( Control/Monad/Stream.hs, dist/dist-sandbox-8bb5b9c9/build/Control/Mon…
06 ноя '15 в 08:49
0
ответов
Почему -O2 так сильно влияет на простой калькулятор расстояний L1 в Хаскеле?
Я реализовал простой калькулятор расстояния L1, используя Haskell. Поскольку я заинтересован в производительности, я использовал распакованные векторы для хранения изображений для сравнения. calculateL1Distance :: LabeledImage -> LabeledImage -&g…
09 май '17 в 09:55
1
ответ
Постоянно увеличивающееся потребление ресурсов процессора с помощью Haskell и Stream-Fusion
Вот короткая программа на Haskell, которая генерирует звук 440 Гц. Он использует pulseaudio в качестве аудио-бэкенда. import GHC.Float import Control.Arrow import Sound.Pulse.Simple import qualified Data.List.Stream as S import Data.List type Time =…
11 мар '14 в 16:42
1
ответ
Как я могу улучшить производительность этой реализации minmax?
Вот мой текущий код. Это наивная реализация. import System.Environment (getArgs) minmax [] = Nothing minmax [x] = Just (x, x) minmax (a:b:xs) = Just $ minmax' xs $ sort a b where minmax' [] lohi = lohi minmax' [x] lohi@(lo, hi) | x < lo = (x, hi)…
05 сен '17 в 21:19
1
ответ
Какие компиляторы сегодня способны преобразовывать (map f (map g h)) в (map (f . G) h)?
Для этого используются многие методы, от простых, таких как Short Cut Fusion, до разработки Stream Fusion. Я знаю, что компиляторы, такие как GHC и MLTon, в значительной степени полагаются на эту технику. Существуют ли другие компиляторы, которые де…
04 янв '14 в 13:26
1
ответ
Как создать контейнеры на Haskell, которые сливаются?
Я заинтересован в создании нового типа контейнера Haskell (строгие списки) и хочу убедиться, что операции над ними пригодны для объединения потоков. Как я могу включить функцию объединения потоков GHC? Если мой контейнер TraversableБудет ли он автом…
03 дек '14 в 05:16