Описание тега starray

Изменяемые в штучной упаковке и распакованные массивы в монаде `ST`.
3 ответа

STArray и переполнение стека

Я пытаюсь понять, почему следующие попытки найти минимальный элемент в STArray приводят к переполнению стека при компиляции с ghc (7.4.1, независимо от уровня -O), но в ghci: import Control.Monad import Control.Monad.ST import Control.Applicative im…
23 янв '13 в 02:10
1 ответ

Несколько обновлений в ST-Monad

Я хочу учиться, используя ST-Monad. Поэтому я хочу переписать немного кода, вычисляющего для каждого целого числа - вплоть до предела - список всех его правильных делителей. Результатом должен быть массив, а запись индекса 'n' должна быть списком ег…
14 фев '14 в 12:43
3 ответа

Как я могу реализовать перемешивание Фишера-Йейтса в Scala без побочных эффектов?

Я хочу реализовать алгоритм Фишера-Йейтса (перемешивание массива на месте) без побочных эффектов, используя STArray для локальных эффектов мутации и функционального генератора случайных чисел type RNG[A] = State[Seed,A] чтобы получить случайные целы…
25 май '15 в 04:00
1 ответ

Наличие массивов ST(U) в структуре данных?

Что мне нужно сделать, чтобы GHC принял этот код: {-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-} module STTest where import Data.Array.ST import Control.Monad.ST.Strict as S import Control.Monad.ST.Lazy as L -- ST monad arrays (unboxed in…
19 июл '13 в 08:40
1 ответ

Haskell ST Monad: Нет экземпляра для (MArray (STArray s) Int (ST s1))

Я изучал Haskell в течение последнего месяца или двух, и недавно решил эту проблему кодирования. Дополнительная задача заключалась в том, чтобы выполнить задачу без дополнительного пространства и в линейном времени, что я не думал, что это возможно …
11 сен '17 в 02:09
1 ответ

Как улучшить этот алгоритм: 1) использовать массивы, 2) избежать конкатенации списков (отложенные списки?)?

Я пытался узнать, как работает STArray, но не смог. (Док плохой, или, по крайней мере, тот, который я нашел). В любом случае, у меня есть следующий алгоритм, но он использует много!!, что медленно. Как я могу преобразовать это, чтобы использовать мо…
15 окт '14 в 06:17
0 ответов

Как преобразовать код JavaScrpt в код Dart? [закрыто]

Я хочу преобразовать этот код js в код дротика : let strArr = ["baseball", "a,all,b,ball,bas,base,cat,code,d,e,quit,z"] function WordSplit(){ // First Element, with single string let wordToCompare = strArr[0] // Second Element, with single string le…
22 авг '21 в 22:06
1 ответ

Две почти одинаковые функции, использующие STArray: почему одна требует FlexibleContexts, а другая нет?

Рассмотрим функции Haskell test :: ST s [Int] test = do arr <- newListArray (0,9) [0..9] :: ST s (STArray s Int Int) let f i = do writeArray arr i (2*i) readArray arr i forM [1,2] f и test' :: ST s [Int] test' = do arr <- newListArray (0,9) [0…
22 янв '22 в 22:00