Skip to content

Instantly share code, notes, and snippets.

View EugeneN's full-sized avatar
🌎

Eugene EugeneN

🌎
View GitHub Profile
@sdiehl
sdiehl / diehl_2019.md
Created March 17, 2020 10:50
2019 Reading List
  • Absolution Gap - Alastair Reynolds
  • Abundance - Peter H Diamandis
  • Advances in Active Portfolio Management - Richard Grinold
  • Advances in Unconventional Computing - Andrew Adamatzky
  • Creating Modern Capitalism - Thomas Mccraw
  • Exhalation - Ted Chiang
  • From Bacteria to Bach and Back - Daniel C. Dennett
  • Human Compatible - Russell Stuart
  • Look To Windward - Iain M. Banks
  • Lost in Math - Sabine Hossenfelder
@graninas
graninas / haskell_approaches_comparison_table.md
Last active April 25, 2024 20:49
Haskell Approaches Comparison Table

An Opinionated Comparison of Software Design Approaches in Haskell

| | Raw IO | Free Monads; Church Encoded Free Monads | Final Tagless / mtl | Effect Systems | ReaderT

@vmchale
vmchale / install-ghcjs.sh
Last active April 17, 2019 00:12
This is the bash script I use to install GHCJS (8.6) on Linux
#!/usr/bin/env bash
# forked from Moritz Angerman https://github.com/angerman/haskell-to-web/blob/master/ghcjs-build-notes.org
set -e pipefail
cabal new-install happy --overwrite-policy=always
cabal new-install alex --overwrite-policy=always
cabal new-install hscolour --overwrite-policy=always
cabal new-install hsc2hs --overwrite-policy=always

DSl'и и как писать большие программы на PureScript'е

Вступление

Приветы! Меня зовут Максим Зималиев, я работаю в SlamData и уже почти два с половиной года пилю в продакшн код на PureScript'е. Как и большинство пришедших в прекрасный мир ФП, я начинал со всяких там джаваскриптов, пхп и шарпов. Соответственно, у меня есть бывшие коллеги и друзья, которые по-прежнему работают на императивных языках, используют GoF, DDD и тому подобное.

Ну так вот, пойдешь такой пиво пить, и внезапно "Слушай, а как у вас в PureScript'е, например ORM запилить, объектов же нет?" Или: "Это здорово всё, но вот я домены описываю вот так вот, у них там поведение есть, а как это PureScript'е сделать?"

@mmhelloworld
mmhelloworld / ConversionBetweenHaskellAndJavaLists.hs
Last active February 29, 2016 07:28
Haskell on the JVM via GHCJS and Nashorn
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE JavaScriptFFI #-}
{-# LANGUAGE UnliftedFFITypes #-}
{-# LANGUAGE GHCForeignImportPrim #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE TypeFamilies #-}
@arestov
arestov / Тезисы
Last active April 27, 2017 06:32
Декларативность. Лаконичный и оптимизируемый код
Декларативность. Лаконичный и оптимизируемый код
Разделение кода сложных состояний на 3 части позволяет сильно уменьшить сложность
и объем кода (за счёт автоматизации кода, актуализирующего эти состояния,
при изменении других состояний), а также реализовывать оптимизации на системном уровне.
1) Декларативное описание того как используется результат (зачем вы что-то делаете, целеполагание)
2) Декларативное описание от каких состояний зависит результат (что нужно чтобы выполнить задачу)
3) Способ вычисления результата (как распорядится ингридиентами, чтобы получить необходимое)
@roman
roman / RxPlayground.purs
Created November 19, 2014 00:09
Purescript + rxjs playground
module RxPlayground where
import Debug.Trace (trace, print)
import Control.Monad.Eff
import Data.Array ((..))
foreign import data Observable :: * -> *
foreign import data Subject :: * -> *
foreign import data Observer :: * -> *
(require '[clojure.core.async :as a])
(def xform (comp (map inc)
(filter even?)
(dedupe)
(flatmap range)
(partition-all 3)
(partition-by #(< (apply + %) 7))
(flatmap flatten)
(random-sample 1.0)
@markhibberd
markhibberd / characters.md
Last active January 14, 2021 18:32
Haskell Character Data

Overview

There are lots of representations for strings. In most languages they pick one set of tradeoffs and run with it. In haskell the "default" implementation (at least the one in the prelude) is a pretty bad choice, but unlike most other languages (really) good implementations exist for pretty much every way you can twist these things. This can be a good thing, but it also leads to confusion, and frustration to find the right types and how to convert them.

Types