0
ответов

Монада IO в Haskell и использование памяти

Я, вероятно, не очень хорошо понимаю монаду IO. Если я напишу приложение, которое, как ожидается, будет работать в течение многих месяцев, при этом записывая его прогресс, будет ли монада IO хранить весь журнал...
вопрос задан: 4 June 2012 11:45
0
ответов

Является ли моя программа полной по Тьюрингу?

Я потратил неделю или две на программирование простого логического решателя. Построив его, я задался вопросом, является ли язык, который он решает, полным по Тьюрингу или нет. Поэтому я закодировал небольшой набор уравнений...
вопрос задан: 4 June 2012 09:10
0
ответов

Могу ли я отказаться от использования UndecidableInstances в этом экземпляре Show для Free Monad?

Я только что пытался разобраться со свободными монадами; в качестве учебного пособия мне удалось написать экземпляр Show для следующего типа Free: {-# ​​LANGUAGE FlexibleContexts, UndecidableInstances #-} ...
вопрос задан: 4 June 2012 00:57
0
ответов

Уничтожение потока при сборке мусора MVar

У меня есть рабочий поток, который многократно считывает данные из MVar и выполняет над ним некоторую полезную работу. Через некоторое время остальная часть программы забывает об этом рабочем потоке, что означает, что он будет...
вопрос задан: 3 June 2012 17:18
0
ответов

Необходимость обёрток экзистенциальных типов

Оказывается, правильно использовать экзистенциальные/ранговые типы на удивление сложно, несмотря на очень простую идею, стоящую за ними. Почему необходимо оборачивать экзистенциальные типы в типы данных? Я...
вопрос задан: 3 June 2012 13:56
0
ответов

Реализация «show» для функции

Я хотел бы реализовать метод show для (бинарных) функций и сделать его способным различать эндофункции (a -> a). Что-то вроде кода на псевдо-хаскеле: instance Show (a->b) где ...
вопрос задан: 3 June 2012 13:13
0
ответов

Монадические выражения в условных выражениях - GHC компилирует, кабала отказывается

Целый день ломал голову над этим. В моем коде есть несколько функций, которые выглядят так: function :: IO (возможно, что угодно) function = do monadFun yaySomeIO status <- ...
вопрос задан: 3 June 2012 09:06
0
ответов

Как написать экземпляр Data.Vector.Unboxed в Haskell?

У меня есть числовое приложение, которое много работает с отрицательными логарифмами вероятностей, которые (поскольку вероятности варьируются от нуля до единицы) принимают значения положительных двойников или отрицательную бесконечность...
вопрос задан: 2 June 2012 23:22
0
ответов

Использование монады состояния для сокрытия явного состояния.

Я пытаюсь написать небольшую игру на Haskell, и мне нужно передать изрядное количество состояний. Я хочу попробовать скрыть состояние с помощью монады State. Теперь я столкнулся с проблемой: функции...
вопрос задан: 2 June 2012 21:08
0
ответов

Являются ли монады просто способами составления функций, которые в противном случае не складывались бы?

Функция связывания кажется удивительно похожей на функцию композиции. И это помогает в составлении функций, возвращающих монады. Есть ли что-нибудь более поучительное в монадах, чем эта идея?
вопрос задан: 2 June 2012 16:52
0
ответов

Найти источник исключения Haskell

Я пытаюсь выяснить, где генерируется исключение Это мой первый опыт обработки исключений в Haskell Я пытаюсь вызвать функцию XML-RPC на удаленном хосте, к которому обращаются ...
вопрос задан: 31 May 2012 18:00
0
ответов

Команда ls или dir в ghci

Я новичок в Haskell. Я использую gci. Я знаю, что могу перемещаться по каталогу с помощью команды :cd . Но я не могу найти команду для вывода списка файлов в каталоге (что-то вроде Unix ls или ...
вопрос задан: 31 May 2012 16:08
0
ответов

Как использовать функцию опускания канала в трубопроводе?

У меня есть простая задача — прочитать кучу строк из файла и что-то сделать с каждой из них. За исключением первого — некоторые заголовки следует игнорировать. Вот я и подумал попробовать проводники. ...
вопрос задан: 31 May 2012 13:58
0
ответов

Существует ли список расширений GHC, которые считаются «безопасными»?

Иногда часть кода, которую я хочу написать, недопустима без хотя бы одного языкового расширения. Это особенно верно при попытке реализовать идеи в исследовательских работах, которые, как правило, используют...
вопрос задан: 31 May 2012 09:21
0
ответов

Как сделать выборку из сложного или составного дистрибутива в Haskell?

Я пытаюсь сгенерировать случайные массы для гипотетических планет в Haskell. Я хочу получить эти массы путем выборки бимодального распределения (в идеале суперпозиции двух нормальных распределений: одно...
вопрос задан: 31 May 2012 03:53
0
ответов

Почему асинхронные дейтаграммы UDP Haskell Server имеют потерю пакетов?

Я отправляю простые UDP-пакеты на этот сервер Haskell. В качестве источника пакетов я использую простой текстовый файл, сгенерированный "aspell -l en dump master". Однако любой список из более чем 120 000 сообщений должен работать. ...
вопрос задан: 30 May 2012 20:44
0
ответов

Могу ли я отобразить первый элемент пары без стрелок?

Я присматриваюсь к функторам, аппликативным функторам… Я не уверен, как добраться туда, куда я хочу, но у меня есть ощущение, что следование типам должно приблизить меня. Есть ли простой способ сделать карту, похожую на карту, которая...
вопрос задан: 30 May 2012 14:52
0
ответов

Функция Haskell для обратного вызова функции

У меня есть лямбда \xf -> fx, которая используется в операции foldM, где x — значение, а f :: a -> б. Есть ли встроенная функция, которая делает это? Могу ли я заменить foldM (\xf -> fx) ... ...
вопрос задан: 30 May 2012 12:03
0
ответов

Является ли Haskell управляемым языком?

Я полный новичок в Haskell. Одна вещь, которая всегда беспокоит меня, - это двусмысленность в том, является ли Haskell управляемым (термин, заимствованный из MS) языком, таким как Java, или компилируемым в собственный код, таким как C? GHC...
вопрос задан: 30 May 2012 06:38
0
ответов

Утечка пространства с избыточным использованием seq в интерпретаторе GHC

Я набираю этот код в интерпретаторе, и память быстро расходуется: last [1..10^7] `seq` () Я не понимаю, почему это требуется больше, чем O (1) места. Если я сделаю просто (что должно быть тем же самым, потому что Show...
вопрос задан: 30 May 2012 04:00
0
ответов

Когда лучше явно закрывать дескрипторы файлов?

Мое первое впечатление от readFile было компромиссом между его удобством и возможностью оставлять файловые дескрипторы открытыми дольше, чем нужно, без возможности закрыть их. В качестве эксперимента я...
вопрос задан: 29 May 2012 21:08
0
ответов

Оптимизация потока данных с использованием HOOPL

Я программист на Haskell (обычно я реализую алгоритмы на Haskell) и пытаюсь понять библиотеку HOOPL, но не могу ее декодировать. У меня нет опыта работы с компилятором (сейчас изучаю...
вопрос задан: 29 May 2012 19:26
0
ответов

Haskell: Могу ли я выполнить несколько сверток одного и того же ленивого списка, не сохраняя список в памяти?

Мой контекст — биоинформатика, в частности секвенирование следующего поколения, но проблема общая; поэтому я буду использовать файл журнала в качестве примера. Файл очень большой (гигабайты большие, сжатые, поэтому он...
вопрос задан: 29 May 2012 17:17
0
ответов

iterate + forever = iterateM? Повторение действия с обратной связью

Я пытаюсь бесконечно повторять действие ввода-вывода, но передаю результат одного выполнения другому. Что-то вроде этого: -- плохо названо iterateM :: Monad m => (a -> m a) -> a -> m b ...
вопрос задан: 29 May 2012 14:19
0
ответов

Что такое объективы используется/полезен для?

Кажется, я не могу найти никакого объяснения того, для чего используются линзы в практических примерах. Этот короткий абзац со страницы Hackage является наиболее близким, что я нашел: Этот модуль обеспечивает удобный способ ..
вопрос задан: 28 May 2012 17:47
0
ответов

Неленивая ветвь GHC

Я слышал, что есть ветвь GHC, которая компилирует строгий код по умолчанию, тогда как ленивость может быть включена аннотацией. (IIRC, он сказал, что финансовая компания разрабатывает ветвь и использует ее для ...
вопрос задан: 28 May 2012 12:01
0
ответов

Каковы преимущества и недостатки использования линз?

Линзы, кажется, не имеют никаких недостатков, но имеют значительные преимущества по сравнению со стандартным Haskell: есть ли какая-то причина, по которой мне не следует использовать линзы везде, где это возможно? Есть ли производительность...
вопрос задан: 27 May 2012 14:46
0
ответов

Ограничение конструкторов в сигнатуре

Итак, я работаю над забавным экспериментом в контексте контекста, и я натыкаюсь на стену. Я пытаюсь определить тип данных, который может быть либо примитивом, либо функцией, которая преобразуется из одного...
вопрос задан: 27 May 2012 06:37
0
ответов

Общий вариант bi fab = (fa, fb)

Есть ли какой-нибудь типобезопасный способ написать функцию bi fab = (fa, fb) так, чтобы ее можно было использовать следующим образом: x1 : : (Целое число, Символ) x1 = bi head [2,3] "45" x2 :: (Целое число, Символ) x2 = bi ...
вопрос задан: 27 May 2012 06:34
0
ответов

Как заставить вычисление ST производить ленивый поток результатов (или работать как сопрограмма)?

Я борюсь с общей проблемой, как заставить вычисления с отслеживанием состояния в Haskell генерировать результаты лениво. Например. следующий простой алгоритм может быть выражен с помощью Python...
вопрос задан: 26 May 2012 20:03