Процесс отладки программы (Телеграм пожал гифку, так что лучше смотреть ту, что в README репозитория):
https://raw.githubusercontent.com/aaronduino/asciidots/master/dots_debug.gif
https://raw.githubusercontent.com/aaronduino/asciidots/master/dots_debug.gif
Мне этот
Выглядят Wireworld-схемы так: https://upload.wikimedia.org/wikipedia/commons/1/13/Wireworld_XOR-gate.gif
#cellular_automata
AsciiDots, почему-то, напомнил клеточный автомат WireWorld (https://en.wikipedia.org/wiki/Wireworld). Последний тоже поделирует электрические схемы, правда только логические, но зато полон по Тьюрингу!Выглядят Wireworld-схемы так: https://upload.wikimedia.org/wikipedia/commons/1/13/Wireworld_XOR-gate.gif
#cellular_automata
Если вы вдруг пишете на #haskell, то, возможно, накопили своих пунктиков по поводу стендартной
Многие хаскелисты знают, что Haskell позволяет использовать свою прелюдию - свой набор умолчаний, удобный для конкретного проекта, или же просто более близкий по духу. Прелюдий уже понаписано довольно много и выбрать среди них подходящую (или решить, что настало время писать свою - поверьте, это не то-то плохое :)) довольно сложно.
Поэтому так ценны подобные странички: https://guide.aelve.com/haskell/alternative-preludes-zr69k1hc - здесь упомянуты многие популярные прелюдии, и для каждого образчика указано краткое описание "почему?"/"для кого?", плюсы и минусы и проч. Организована информация удобно и охват имеет широкий. Буду пользоваться :)
Prelude (для тех, кто не в курсе, это такой неймспейс, который импортируется неявно в любые исходники и содержит (или экспортирует) предметы первой необходимости типа print, map и +).Многие хаскелисты знают, что Haskell позволяет использовать свою прелюдию - свой набор умолчаний, удобный для конкретного проекта, или же просто более близкий по духу. Прелюдий уже понаписано довольно много и выбрать среди них подходящую (или решить, что настало время писать свою - поверьте, это не то-то плохое :)) довольно сложно.
Поэтому так ценны подобные странички: https://guide.aelve.com/haskell/alternative-preludes-zr69k1hc - здесь упомянуты многие популярные прелюдии, и для каждого образчика указано краткое описание "почему?"/"для кого?", плюсы и минусы и проч. Организована информация удобно и охват имеет широкий. Буду пользоваться :)
Интересная штука - Urn, #lisp (Lisp-1) для #lua:
https://squiddev.github.io/urn
Умеет compile time макросы, выдаёт самодостаточные Lua-файлы, REPL тоже в наличии, разумеется. Есть pattern matching, что приятно. Есть threading macroses, как в #clojure. Вобщем, неплохой вариант в ситуации, когда нужно что-то написать для Lua VM, но именно на Lua писать не хочется или же просто хочется S-выражений :)
https://squiddev.github.io/urn
Умеет compile time макросы, выдаёт самодостаточные Lua-файлы, REPL тоже в наличии, разумеется. Есть pattern matching, что приятно. Есть threading macroses, как в #clojure. Вобщем, неплохой вариант в ситуации, когда нужно что-то написать для Lua VM, но именно на Lua писать не хочется или же просто хочется S-выражений :)
Вот прямо сейчас проходит голосование за участников LOWREZJAM 2017 - это такой конкурс игроделов, где оные соревнуются в написании игр, работающих в разрешении 64x64 пикселей. Ограничение, прямо скажем, довольно суровое! Но тем интереснее участникам раскрывать свой творческий потенциал!
Ссылка: https://itch.io/jam/lowrezjam2017
#gamedev #pixelart
Ссылка: https://itch.io/jam/lowrezjam2017
#gamedev #pixelart
itch.io
#LOWREZJAM 2017
A game jam from 2017-07-31 to 2017-08-23 hosted by JackOatley. Who? The LOWREZJAM was originally devised and hosted by Devi Ever . However I, Jack Oatley , noticed that it had been over a year since the last jam a...
Победитель прошлого года:
http://i.imgur.com/IjwJZkZ.gif
(поиграть можно тут: https://cronus.itch.io/umbri)
http://i.imgur.com/IjwJZkZ.gif
(поиграть можно тут: https://cronus.itch.io/umbri)
Ещё одна утилитка на #rust: https://the.exa.website/
Быстрая (по словам авторов) и более современная замена ls. Умеет выводить различные дополнительные данные, сразу выводит размер в человекочитаемом виде, может отображать git-статус - приятная штука.
Ах да, ещё может заменить собой tree - тоже умеет выводить иерархию файлов и папок, но уже с дополнительной информацией.
Быстрая (по словам авторов) и более современная замена ls. Умеет выводить различные дополнительные данные, сразу выводит размер в человекочитаемом виде, может отображать git-статус - приятная штука.
Ах да, ещё может заменить собой tree - тоже умеет выводить иерархию файлов и папок, но уже с дополнительной информацией.
Внезапно прорекламирую канал: https://t.me/kanaflow
Внимание, внутри теоркат, типота, вот это всё! Но материал подаётся автором по мере изучения оного оным, поэтому сложность, очевидно, будет нарастать плавно, а пока всё достаточно просто и понятно :)
Внимание, внутри теоркат, типота, вот это всё! Но материал подаётся автором по мере изучения оного оным, поэтому сложность, очевидно, будет нарастать плавно, а пока всё достаточно просто и понятно :)
Telegram
это кана
Изучаю и делюсь своими знаниями в функциональном программировании, теории типов, теории категорий, алгебре.
Я: @kana_sama.
Группа vk.com: https://vk.com/home_kana
Я: @kana_sama.
Группа vk.com: https://vk.com/home_kana
Forwarded from это кана
ADT - произведение и копроизведение типов
Тип можно трактовать как множество значений (На самом деле это не всегда так). Мощность типа - количество элементов в этом множестве.
Произведение типов - декартово произведение множеств, то есть множество всех возможных пар, где первый элемент - элемент первого множества, а второй - второго.
Мощность произведения двух множеств равна произведению мощностей множителей.
Пример в хаскеле:
Меченное объединение, сумма или же копроизведение типов - объединение двух множеств так, что каждый элемент нового множества помечается исходным множеством, благодаря чему новый тип будет содержать все копии значений из исходных множеств.
Как видно, каждый элемент нового множества помечен исходным множеством, поэтому число 3 встречается дважды, ведь
Очевидно, мощность такого типа равна сумме мощностей слогаемых.
В хаскеле суммы типов создаются с помощью символа
Тип можно трактовать как множество значений (На самом деле это не всегда так). Мощность типа - количество элементов в этом множестве.
Произведение типов - декартово произведение множеств, то есть множество всех возможных пар, где первый элемент - элемент первого множества, а второй - второго.
A = {a, b, c}
B = {x, y}
A×B = {(a, x), (a, y), (b, x),
(b, y), (c, x), (c, y)} Мощность произведения двух множеств равна произведению мощностей множителей.
|A × B| = |A| × |B|
Пример в хаскеле:
-- тут мы говорим, что `x`
-- имеет тип `(Int, String)`
x :: (Int, String)
-- а тут мы говорим, какое у
-- x значение
x = (1, "hello")
-- делаем тип IntStringPair
-- значение которого является пара
-- из числа и строки.
-- Для создания значения этого типа
-- используется конструктор MkIntStringPair
-- который принимает число и строку
-- и создает элемент типа IntStringPair
data IntStringPair = MkIntStringPair Int String
y :: IntStringPair
y = MkIntStringPair 1 "hello"
-- Конструктор и тип могут иметь
-- одно название, они не будут
-- пересекаться, ведь типы можно
-- использовать только в сигнатуре,
-- а конструкторы только в выражениях
data Triple a b c = Triple a b c
z :: Triple Int String Int
z = Triple 1 "hello" 2
Меченное объединение, сумма или же копроизведение типов - объединение двух множеств так, что каждый элемент нового множества помечается исходным множеством, благодаря чему новый тип будет содержать все копии значений из исходных множеств.
A = {1, 2, 3}
B = {3, 4}
A + B = {A 1, A 2, A 3, B 3, B 4}Как видно, каждый элемент нового множества помечен исходным множеством, поэтому число 3 встречается дважды, ведь
A 3 ≠ B 3. Очевидно, мощность такого типа равна сумме мощностей слогаемых.
|A + B| = |A| + |B|
В хаскеле суммы типов создаются с помощью символа
| в определении типа (или же с помощью определений конструкторов с GADTs).data Either a b = Left a | Right b
x, y :: Either Int String
x = Left 10
y = Right "hello"
data Bool = False | True
-- изоморфно Either () ()
-- где () - единичное множество,
-- то есть множество из одного элемента
-- () = {()}
-- (Важно не путать ()-тип и ()-значение)
z, u :: Bool
z = False -- Left ()
u = True -- Right ()
Просто оставлю это здесь:
https://github.com/LightningJimmyJoeJohnson/Anime-Girls-Holding-Programming-Books
Вдруг вам понадобится картинка с анимешной девицей и книгой по вашему любимому ЯП :)
Что примечательно, по кол-ву присутствий на картинках с большим отрывом лидирует SICP, что с одной стороны радует, с другой - вовсе не удивительно :D
#anime #meme #picture
https://github.com/LightningJimmyJoeJohnson/Anime-Girls-Holding-Programming-Books
Вдруг вам понадобится картинка с анимешной девицей и книгой по вашему любимому ЯП :)
Что примечательно, по кол-ву присутствий на картинках с большим отрывом лидирует SICP, что с одной стороны радует, с другой - вовсе не удивительно :D
#anime #meme #picture
Довольно интересная статейка на #haskell WiKi: https://wiki.haskell.org/Haskell_logos/New_logo_ideas - тут собраны работы, участвовавшие в The great 2009 Haskell logo contest (кстати, именно в рамках этого конкурса был выбран текущий логотип!).
Некоторые образчики очень занятны и даже довольно круты, советую пролистать и приобщиться, даже если вы не интересуетесь #haskell (зря!)
P.S. Тут ещё немного текста и картинок по истории лого: http://www.willamette.edu/~fruehr/logos/intro.html
Некоторые образчики очень занятны и даже довольно круты, советую пролистать и приобщиться, даже если вы не интересуетесь #haskell (зря!)
P.S. Тут ещё немного текста и картинок по истории лого: http://www.willamette.edu/~fruehr/logos/intro.html
Тема криптовалют и #blockshain в целом нынче очень популярна. Вот и в #haskell мире движуха пристутсвует - пишут "на коленке" игрушечные криптовалютки, вот это всё. Пример такого проекта: https://github.com/tdietert/nanocoin
Проект достаотчно интересный с точки зрения знакомства с тем "как там всё работает". Тут вам и P2P сеть и Proof-of-work. А ещё автор ставит себе целью подробно всё документировать - отличная возможность приобщиться к среднему по сложности проекту на Haskell, реализующему хайповую штуку и поучиться на живом примере!
P.S. Буквально вчера выложили доклад автора нанокоина: https://www.youtube.com/watch?v=wjyiOXRuUdo - тут и о проекте говорится и в целом о криптовалютах
Проект достаотчно интересный с точки зрения знакомства с тем "как там всё работает". Тут вам и P2P сеть и Proof-of-work. А ещё автор ставит себе целью подробно всё документировать - отличная возможность приобщиться к среднему по сложности проекту на Haskell, реализующему хайповую штуку и поучиться на живом примере!
P.S. Буквально вчера выложили доклад автора нанокоина: https://www.youtube.com/watch?v=wjyiOXRuUdo - тут и о проекте говорится и в целом о криптовалютах
GitHub
adjoint-io/nanocoin
A toy currency. Contribute to adjoint-io/nanocoin development by creating an account on GitHub.
Меня порой спрашивают, какую книгу стоит читать желающему начать учить #haskell. Обычно я советовал "Learn You a Haskell for Great Good" - я сам на ней вырос, вот и другим рекомендую. И я всё ещё считаю эту книгу хорошей для новичков в ФП. Однако теперь я буду давать ссылку на этот пост: https://medium.com/@_bravit/%D0%BA%D0%BD%D0%B8%D0%B3%D0%B8-%D0%BF%D0%BE-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E-%D0%BD%D0%B0-haskell-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D1%8B-712c1f5b7749
Ссылка ведет на статью с выводами, которые сделал Виталий Брагилевский, взяв на себя труд рассмотреть все более-менее популярные книги для начинающих изучать Haskell. Ссылки на отзывы об отдельных книгах ищите по ссылкам в вышеуказанной статье. ИМХО, стоит обратить внимание на книгу Курта - я и сам на неё натыкался, и с виду она мне понравилась, но одно дело - мое мнёние, совсем другое - мнение человека, который Haskell преподаёт (кстати, Виталий учит не только хаскелю, но и, например, Idris!).
Ссылка ведет на статью с выводами, которые сделал Виталий Брагилевский, взяв на себя труд рассмотреть все более-менее популярные книги для начинающих изучать Haskell. Ссылки на отзывы об отдельных книгах ищите по ссылкам в вышеуказанной статье. ИМХО, стоит обратить внимание на книгу Курта - я и сам на неё натыкался, и с виду она мне понравилась, но одно дело - мое мнёние, совсем другое - мнение человека, который Haskell преподаёт (кстати, Виталий учит не только хаскелю, но и, например, Idris!).
Medium
Книги по программированию на Haskell: выводы
Кажется, я описал все изданные за последние годы книги по Haskell. Большого смысла говорить о более старых книгах нет: Haskell развивается…
Reddit-обсуждение статьи про сравнение GHCJS и PureScript (вместе с различными библиотеками для оных) в плане быстродействия. Причем связки из языка и фреймворка/библиотеки сравниваются и между собой и с популярными конкурентами из мира JavaScript. И даже Elm присутствует "до кучи". Сравниевается производительность в разного вида задачах, связанных с изменением DOM - как точечным, так и массовым. В конце статьи автор приводит своё мнение о каждом из попробованных им решений, в т.ч. и касательно удобства использования, что тоже интересно.
https://www.reddit.com/r/haskell/comments/6z8e3m/benchmarks_ghcjs_reflex_miso_purescript_thermite/
https://www.reddit.com/r/haskell/comments/6z8e3m/benchmarks_ghcjs_reflex_miso_purescript_thermite/
reddit
r/haskell - Benchmarks: GHCJS (Reflex, Miso) & Purescript (Thermite, Pux, Halogen)
103 votes and 62 comments so far on Reddit
В последнее время площадки, начинавшие с продажи indie-игр, предлагают купить по минимальной цене целые подборки неигрового контента.
HumbleBundle, например, частенько продаёт наборы первых томов комиксов от конкретного издательства, или, скажем, пачку книг по вселенной Doctor Who.
Вот прямо сейчас можно купить кучку книг по Data Science от O'Reilly: https://www.humblebundle.com/books/data-science-books Причем пять книг отдают вообще за доллар!
P.S. Часть денег - определяемая вами (!) - идет в различные благотворительные фонды. Кого-то может порадовать только этот факт :)
HumbleBundle, например, частенько продаёт наборы первых томов комиксов от конкретного издательства, или, скажем, пачку книг по вселенной Doctor Who.
Вот прямо сейчас можно купить кучку книг по Data Science от O'Reilly: https://www.humblebundle.com/books/data-science-books Причем пять книг отдают вообще за доллар!
P.S. Часть денег - определяемая вами (!) - идет в различные благотворительные фонды. Кого-то может порадовать только этот факт :)
Humble Bundle
Humble Book Bundle: Data Science presented by O'Reilly
Pay what you want for data science ebooks and support charity!
Ещё одна площадка, за которой я слежу (я там частенько покупаю музыку в жанрах SynthWave и ChipTune - тоже бандлами), это https://groupees.com. Обычно тут
продаются игры и музыка, иногда - книги. Но вот прямо сейчас можно приобщиться к
- курсам по #js: https://groupees.com/frontend-js-bundle Тут вам и ReactJS и Vue с Agnular'ом. Правда, курсы, в основном, новичковые.
- курсам по #python: https://groupees.com/python-perfection-bundle - тут и NumPy со SciPy, и работа с XML (BeautifulSoup) и даже по #gamedev есть курс!
Ещё присутствуют бандлы курсов по "Full Stack Dev" (тут у них сборная солянка из Linux, C#, WordPress и прочих MySQL) и по игростроению (сплошной Unity).
Короче говоря, советую сходить и посмотреть самим - если нравятся видеокурсы, или, скажем, музыка в стиле "Митол + Вокалоид" (да, там и такой бандл продаётся сейчас :))
#mooc
продаются игры и музыка, иногда - книги. Но вот прямо сейчас можно приобщиться к
- курсам по #js: https://groupees.com/frontend-js-bundle Тут вам и ReactJS и Vue с Agnular'ом. Правда, курсы, в основном, новичковые.
- курсам по #python: https://groupees.com/python-perfection-bundle - тут и NumPy со SciPy, и работа с XML (BeautifulSoup) и даже по #gamedev есть курс!
Ещё присутствуют бандлы курсов по "Full Stack Dev" (тут у них сборная солянка из Linux, C#, WordPress и прочих MySQL) и по игростроению (сплошной Unity).
Короче говоря, советую сходить и посмотреть самим - если нравятся видеокурсы, или, скажем, музыка в стиле "Митол + Вокалоид" (да, там и такой бандл продаётся сейчас :))
#mooc
Всё таки NeoCities - интересная площадка. 150 тысяч сайтов и все доступны по IPFS - сие примечательно само по себе. Но самое интересное, это публика, создающая сайты на этой площадке: Каждый сайт, как окно в прошлое - анимированные low-res/low-color .gif'ки, фоновая музыка на страницах (да-да!), вёрстка табличками - ностальгичненько!
Типичные образчики неосайтиков:
- https://gifypet.neocities.org/ (этот отдельно прекрасен!)
- https://2bit.neocities.org
- https://anlucas.neocities.org/
- https://joppiesaus.neocities.org/
Некоторые сайты хоть и менее олдскульны технологически, но тоже очень самобытны:
- https://fauux.neocities.org/
- https://suyu.neocities.org/ (да, анимуфагов на NeoCities много :^])
- https://dragonquest.neocities.org/
И парочка мне лично доставивших:
- https://liooil.space/ (not safe for eyes!!!)
- https://substack.neocities.org/ - тут много всяческих "живых" визуальных штуковин, интерактивных и не очень.
P.S. NeoCites, это отличный бесплатный хостинг статических сайтов с ограничением на форматы заливаемых файлов и нарочитой минималистичностью. Если вдруг вам чего-то такого хочется - стоит попробовать :)
Типичные образчики неосайтиков:
- https://gifypet.neocities.org/ (этот отдельно прекрасен!)
- https://2bit.neocities.org
- https://anlucas.neocities.org/
- https://joppiesaus.neocities.org/
Некоторые сайты хоть и менее олдскульны технологически, но тоже очень самобытны:
- https://fauux.neocities.org/
- https://suyu.neocities.org/ (да, анимуфагов на NeoCities много :^])
- https://dragonquest.neocities.org/
И парочка мне лично доставивших:
- https://liooil.space/ (not safe for eyes!!!)
- https://substack.neocities.org/ - тут много всяческих "живых" визуальных штуковин, интерактивных и не очень.
P.S. NeoCites, это отличный бесплатный хостинг статических сайтов с ограничением на форматы заливаемых файлов и нарочитой минималистичностью. Если вдруг вам чего-то такого хочется - стоит попробовать :)
fauux.neocities.org
⌈Wired Sound for Wired People⌋
Меня тут заподозрили в рекламе о_О
Увы, профита ни от NeoCities ни от бандломагазинов я не получаю да и ссылки то все на виду - ни одна не реферальная. И вообще, можете по ссылкам ходить через анонимайзеры и мне меньше достанется (меньше от ничего :D)
А если вдруг кто сильно против такого контента, то можете меня не читать, а я и дальше буду делиться тем, чем захочу :)
Увы, профита ни от NeoCities ни от бандломагазинов я не получаю да и ссылки то все на виду - ни одна не реферальная. И вообще, можете по ссылкам ходить через анонимайзеры и мне меньше достанется (меньше от ничего :D)
А если вдруг кто сильно против такого контента, то можете меня не читать, а я и дальше буду делиться тем, чем захочу :)