Публикации по теме 'haskell'


Monday Morning Haskell: обновлено!
Мне очень приятно сегодня анонсировать новый Monday Morning Haskell ! Мы только что представили последние изменения на сайте на этой неделе. Пришло время объявить, что будет дальше. Сейчас наш основной проект - это преобразование старого контента блога в постоянные организованные серии. В настоящее время у нас есть два раздела для этой серии. Один ориентирован на новичков, другой - на более продвинутых хаскеллеров. Раздел для начинающих Раздел для начинающих , очевидно, будет..

Одна проблема, пять решений — Функция Zip
Привет всем, я так давно не писал техническую статью, и сегодняшняя будет посвящена одной проблеме из пяти серий решений, в которых мы будем реализовывать функцию zip. Функция zip — это функция, которая упаковывает два списка и возвращает третий список кортежей из двух элементов, а функция zip хорошо известна программистам на Haskell благодаря тому, что она присутствовала в прелюдии Haskell. На практике функция zip в Haskell выглядит так: zip [1, 2, 3] [4, 5, 6] -- outputs..

отчет о любимом проекте: небольшая утилита-загрузчик
Я написал небольшую программу на Haskell для скачивания видео с Летней школы по языкам программирования в штате Орегон 2012 . Репозиторий GitHub можно найти здесь . (На самом деле, видео действительно огромные, и, возможно, вам было бы лучше посмотреть их на YouTube, вот несколько ссылок.) Получение страницы Я использовал wreq в качестве http-клиента, он прост и удобен в использовании, хотя, возможно, его зависимость от объектива немного тяжеловата. Кажется, что он может..

жемчужины этой недели
Жемчужины этой недели В эти выходные я тоже был свободен :), слишком много времени для Mett и Rausch , мало для качественных статей. На этой неделе я наткнулся на кое-что хорошее, так что, если вы этого не сделали, вот 3 вещи , которые мне понравились на этой неделе. 1. Стефани Халбурт — отличный аргумент в пользу баланса между работой и личной жизнью. Я сам трудоголик по своим личным причинам. Но я полностью с ней согласен, и в будущем я должен подробно написать об этом. У..

Вопросы по теме 'haskell'

Можно ли определять новые ADT в GHCi
Комментируя новые функции в ghci, я хотел, чтобы у ghci была возможность объявлять объявление типа и объявлять новые типы ADT, кто-то сообщил, что это действительно возможно, и после поиска я нашел эта страница , на которой мне было сказано, что я...
1150 просмотров

Попытка понять простые вещи Haskell STM
Я застрял в понимании концепции атомарности в STM. поясняю на примере import Control.Concurrent import Control.Concurrent.STM import Control.Monad import qualified Data.Map as Map main :: IO () main = do d <- atomically$ newTVar...
1752 просмотров
schedule 15.03.2024

Пример MongoDB для Yesod/Persistent
Новичок в Haskell и Yesod. Я пытался следовать примеру интеграции с Yesod из главы Persistent в книге Yesod (http://www.yesodweb.com/book/persistent). Кажется, что Sqlite компилируется и работает нормально. Тем не менее, я пытаюсь использовать...
3346 просмотров
schedule 17.03.2024

Парсеры Data.Text для Parsec 3.x
Я ищу вариант Text.Parsec.Char.satisfy для типа Data.Text или какую-то полиморфную альтернативу, что-то со следующей подписью: satisfy :: Stream s m Text => (Text -> Bool) -> ParsecT s u m Text Выполняется успешно для любого...
559 просмотров
schedule 17.03.2024

Что не так с этим простым определением типа? (Ожидается еще один аргумент)
базовый.hs: areaCircle :: Floating -> Floating areaCircle r = pi * r * r Команда: *Main> :l basic.hs [1 of 1] Compiling Main ( Sheet1.hs, interpreted ) Sheet1.hs:2:15: Expecting one more argument to `Floating'...
11070 просмотров
schedule 03.05.2024

Оператор точки в haskell с многопараметрическими функциями
Я хочу написать функцию без точек в haskell, чтобы все было просто, скажем, я хочу сделать эту функцию: maxmin :: Ord a => a -> a -> a -> a maxmin a b c = max a (min b c) Я могу улучшить это до maxmin a b = (max a) . (min b)...
1842 просмотров
schedule 21.04.2024

Чтение из файла, содержащего точки
У меня есть файл txt, который содержит два числа, например: 2. 3. Как видите, каждый конец строки заканчивается точкой. Как я могу прочитать его и распечатать, например, сумму этих чисел? Если мой файл не содержит точек, например, у...
162 просмотров
schedule 05.04.2024

Незапланированное жадное поведение в uu-parsinglib
Проблема Сегодня столкнулся с проблемой и не знаю как решить. Это очень странно для меня, потому что код, который я написал, должен (согласно моим текущим знаниям) быть правильным. Итак, ниже вы можете найти примеры комбинаторов парсера....
160 просмотров

zip требует также второго списка, как она может работать только с одним списком аргументов
Я начал изучать Haskell и нашел хорошее упражнение. Это следующее: grouping: Int -> [Student]->[(Team, Student)] grouping teamNumber = zip ys where ... Итак, упражнение хочет, чтобы я попытался заполнить все...
330 просмотров

Поднимите функцию и ее аргумент в другой монадический контекст
Я не знаю, как с научной точки зрения сформулировать этот вопрос, поэтому я просто покажу вам пример. Я использую состояние в преобразователе StateT . Базовым является IO . Внутри операции StateT IO мне нужно использовать alloca . Однако я...
208 просмотров
schedule 23.03.2024

Вызов CUDA Hello World из Haskell с использованием FFI дает неверные результаты
Это стандартный файл Hello World CUDA: #include <stdio.h> #include "hello.h" const int N = 7; const int blocksize = 7; __global__ void hello_kernel(char *a, int *b) { a[threadIdx.x] += b[threadIdx.x]; } #define cudaCheckError() { \...
304 просмотров
schedule 13.03.2024

Декартово произведение, приводящее к списку списков фиксированной длины (способ haskell)
Я хочу создать последовательность элементов ([0, 1]) фиксированной длины (например, 4), чтобы она приводила к списку списков элементов, содержащих все комбинации [0,1]. Я решил это, используя императивный подход к программированию: Prelude >...
88 просмотров
schedule 17.05.2024

Использование GHCJS-DOM без webkitgtk
Я установил GHCJS и скомпилировал несколько программ «Hello, World». Теперь я хотел бы работать с DOM. Кто-нибудь знает, можно ли установить пакет ghcjs-dom без webkitgtk? У меня большие трудности с загрузкой пакета webkitgtk, и на данный момент я...
187 просмотров
schedule 18.05.2024

Объединение двух скобок вместе с помощью оператора $
У меня есть эта функция: min (max 10 20) (max 30 40) Я могу переписать это как: min (max 10 20) $ max 30 40 Но есть ли способ разрешить эти последние скобки? Не то чтобы это было недостаточно хорошо, но я просто не могу отделаться...
91 просмотров

Пример глубокого понимания каррирования
Чтение https://wiki.haskell.org/Currying Говорится : Большую часть времени новый программист может игнорировать каррирование. Основное преимущество рассмотрения всех функций как каррированных носит теоретический характер: формальные...
208 просмотров
schedule 01.04.2024

Необязательные параметры вместе с оператором case
Я узнал о hslogger здесь . initLogging :: Priority -> IO () initLogging level = do stdOutHandler <- streamHandler stdout level >>= \lh -> return $ setFormatter lh (simpleLogFormatter "[$prio:$loggername:$time]...
105 просмотров
schedule 29.03.2024

Введите параметр в контексте, который вызывает некоторую двусмысленность
У меня есть следующая ошибка для cadr1 ниже, что имеет смысл Не удалось вывести (BoolEq n ('Succ ('Succ n'0)) ~ 'True) из контекста (BoolEq n ('Succ ('Succ n')) ~ 'True) Переменная типа «n'0» неоднозначна {-# LANGUAGE DataKinds...
89 просмотров
schedule 25.03.2024

Что означает программирование на уровне типов во время выполнения?
Я очень новичок в Haskell, поэтому извините, если это основной вопрос или вопрос, основанный на шатком понимании Программирование на уровне типов — захватывающая идея для меня. Я думаю, что понял основную предпосылку, но чувствую, что есть и...
407 просмотров
schedule 04.04.2024

Хаскелл. Самый быстрый способ найти похожие элементы в двух Data.Map
Я пытаюсь сравнить элементы двух карт с помощью функции сравнения. Результирующее решение должно вернуть список пар ключ-значение из первой карты, которые похожи на некоторые значения из второй (сравниваются только значения). Ввод выглядит следующим...
83 просмотров
schedule 21.05.2024

Чистый синтаксис для условного сворачивания списка в Haskell
Я относительно новичок в haskell, но в своих поисках я не смог найти простой способ условно свернуть список. т. е. когда элемент удовлетворяет условию (например, filter ), чтобы свернуть этот элемент с помощью функции (например, foldr и foldl )....
161 просмотров