LINUX.ORG.RU

[Haskell][repa] traverse

 


0

2

Кто-нибудь пользовался функцией traverse из repa? Никак не въеду в её смысл и как ею пользоваться. Например, как с её помощью взять последние s элементов массива DIM1?


Там же в документации всё написано. Пользоваться как-то так:

lastS :: Int -> Array DIM1 Int -> Array DIM1 Int
lastS s arr = traverse arr (const $ Z :. s) $ \f (Z :. i) -> f (Z :. n - s + i)
  where
    (_ :. n) = extent arr

Проверка:

> let x = fromList (Z :. (10 :: Int)) ([1,2,3,4,5,6,7,8,9,10] :: [Int])
> lastS 3 x
[8,9,10]

exlevan
()

спасибо

dmn
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.