Публикации по теме 'haskell'
Байт кодирования, выпуск № 157
Застежка-молния — это указатель или дескриптор определенного узла в структуре дерева или списка. В этой статье Сэнди Магуайр исследует статью Конора Макбрайда, в которой подробно рассказывается о том, «что происходит с застежкой-молнией, когда мы не требуем, чтобы элементы с обеих сторон были одного типа».
Ознакомьтесь со статьей и другими материалами на https://abyteofcoding.com/issues/a-byte-of-coding-issue-157/
Работа с монадами
У меня был большой камень преткновения в изучении монад. Возможно, неудивительно, что это произошло потому, что я пытался зайти с определенной монадической аналогией слишком далеко в классе колледжа, где я впервые узнал о них. У меня в голове возникла идея, что «монады подобны сундуку с сокровищами», и моя мысленная модель выглядела примерно так:
Монады подобны сундуку с сокровищами. Вы не можете напрямую получить доступ к тому, что внутри ( a в IO a ). То есть, если вы уже не..
Haskell I: история, использование и настройка
Как и почему существует Haskell? Узнайте, как настроить VS Code для большего удобства!
Недавно слушал подкаст Алгоритмы + Структуры данных = Программы , и в одном из выпусков, не помню в каком, много говорилось об улучшении кода. И Конор Хекстра (думаю, это мог быть и Брайс Адельштейн ) говорил о том, как изучение Haskell улучшило его мышление и способ написания кода, поэтому я решил изучать язык как улучшение моего кода . решение в этом году.
Большую часть времени я..
Использование Nix для получения библиотек C!
В последние пару недель мы начали знакомиться с менеджером пакетов Nix . В прошлый раз мы использовали cabal2nix , чтобы преобразовать чисто проект Кабала в проект Nix. Это продемонстрировало, как мы могли бы получить наши зависимости Haskell из хранилища Nix, если бы захотели.
Но одно из достоинств Nix в том, что он имеет гораздо больше возможностей, чем пакеты Haskell! Иногда мы можем использовать пакет с более сложной зависимостью, например библиотеку C. Мы не можем так..
Отлов перед производством: операторы Assert в Haskell
В этом месяце мы потратили много времени на изучение исключений, которые являются способами сигнализировать в нашей программе о том, что произошло что-то неожиданное. Это часто приводит к досрочному завершению нашей программы, даже если мы их поймаем. Но, перехватив их, мы обычно можем предоставить более полезные сообщения об ошибках и журналы. Исключения предназначены для использования в производственном коде. Вы не хотите, хотите , чтобы они когда-нибудь сработали, но они есть ...
guessing_game: продолжение
Я получил несколько комментариев к моим предыдущим сообщениям о Rust (на Medium и в моем русскоязычном ЖЖ). Я ценю ответы, они кое-что прояснили для меня в Rust.
Нет классов
Все связанные функции не принадлежат ни к какому классу. На самом деле в Rust нет классов. Связанные функции могут возвращать объекты (переменные) заданного типа, но они не являются экземплярами какого-либо класса, они просто имеют типы. Это небольшая проблема, которую нужно понять, поскольку я привык к идее..
Использование Либо как монады
Теперь, когда февраль закончился и наступил март, пришло время «Месяца монад»! В течение следующего месяца я буду давать несколько полезных советов о различных способах использования монад.
Сегодня я начну с простого наблюдения: тип Either — это монада! Долгое время я использовал Either как обычный тип без особых правил. Но его монадическое поведение позволяет с легкостью связать с ним несколько вычислений!
Начнем с самого начала. Как выглядит Either ? Ну, это очень простой тип,..