Skip to content

Instantly share code, notes, and snippets.

View elrikdante's full-sized avatar

Dante Haskell Elrik elrikdante

View GitHub Profile
@elrikdante
elrikdante / drup.hs
Last active October 24, 2021 04:57
hmmm
{-# LANGUAGE GADTs,LambdaCase,RankNTypes #-}
-- Copyright SaladQL.com/licence
module Lib where
import Prelude hiding (succ, fromIntegral)
type Digit n = (Num n, Eq n, Show n) => n
data Nat where
S :: (Eq n, Eq z, Show n, Show z, Num n, Num z, n ~ z) => Digit z -> Digit n -> Nat
Z :: () -> Nat
NZ :: Nat -> Nat
- https://storage.googleapis.com/pub-tools-public-publication-data/pdf/41f08f03da59f5518802898f68730e247e23c331.pdf
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@elrikdante
elrikdante / Mnemonic.hs
Last active January 8, 2020 15:17
this ensures we sample a distributed set of words, and makes it harder to brute force the word list based on the index of the first word.
#!/usr/bin/env stack
{- stack
--resolver nightly-2019-12-25
script
--package base
--package text
--package turtle
--package ordered-containers
--package containers
--package random
#!/usr/bin/env stack
{- stack
--resolver nightly-2019-12-25
script
--package base
--package text
--package turtle
--package ordered-containers
--package containers
--package random
./src/Mnemonic.hs
Magical Seed Phrase:
Line "consido"
Line "illis"
Line "invalesco"
Line "labor"
Line "laetabilis"
Line "Marceniense"
Line "metuo"
Line "pectus"
-----BEGIN PGP MESSAGE-----
hQIMAxv7Cq3y2/a1AQ/9GBJC2B4TpxHQXYk2OXkZ4n4vimirMenAPwdq7lBhFxuh
XfEgh5xE05+/ZNu6VGJtjbPWy1q15NjZq6UAQfAsXm0W3WHskffdlFF5rh5sPaMv
maXAoxksuAHBkCzLEq8z52WaAm6sksP7pBYKDNHaNdhJkEEFCVzSBJmoXz3Vm1F9
2bOZpBQXBSBcRTVFIhjQEfVSG2V42cPZCaFd6+swz7/6lK+rpWzKA+drnmnG+2Uz
VM9pg8fSgtT/9XtlocMOYP1COvL2+B1G6wI61ORTqjfw/PGn4yx8ZCLU1Nhl0FHz
ZDfdVFSRO3BWVnzyE7KAW/900TyQjI5ydrE2Y0hFi2XsZ4mmNPLwhWChYJWIrxjh
DCEA6nhcqO+x4aXBM7p8yiK2PMd/CywzV11beqB5IzbmNHm/mzq75iWaS4Jm6qe8
L9e6BUQ1d5obkmOH+spFBw41S8ZJqRh4LWAHTyFcphWVX+fZmjUGx7ZsCl5oSWqU
-----BEGIN PGP MESSAGE-----
hQGMA5zZONUr97aNAQwAy+5BSdjOVn442l3ipA+SSOOj40xV0Bftbg0hBsVg/mzb
a4zsoTCskB8oqHYXH5F2lj6TOPxh0q+ZDBTXMGGrWdG3OHy1PfqkTX7Iv/8ga6ZR
mze/j4HMIzEluxdt3vx0nkYxU7DiCSx4VvtozssoaUSk6CLcddhpzcefBWybyUuE
ncI7m2H8ESO4SOVcZQRFAMb+Qbh2N+OOskUH9FpIrIHcUHiWAnorq+JLR+FdsEqz
GIfZdUtGuEPRbx793mU8o8iAqhYalPf96q8XniLZGaGS6JI69leye2KjxFP1Psrz
ph6G+QiaaB6KbaKovzH4sbINid47orGuVXCr14USasW/nH6t6rphNQwuJGrda78M
9ukov/ATP8+cX40zouELOjpwnIJAQ4kYCa8NHldhspTWhmnxYA1WdChNgthegg3R
SjuElM2MV8Wsa6si5zbuIdac5iSe1woopdGkLuMMgQnh0CwK/DFfQMFyre+6ccg0
const attributes = (settings) => {
let attributeString = ""
for (const key in settings) {
if (settings.hasOwnProperty(key)) {
const element = settings[key]
if (element != null) {
attributeString += ` ${key}="${element}"`
}
}
}
@elrikdante
elrikdante / prelude.cljc
Last active January 12, 2018 02:35
practising clojure
;;lumo -i prelude.cljc -e "(require 'prelude) (prelude/mmap (comp list identity) (list 1 2 4)) (prelude/foldl + 0 [1 2 3 4]) (prelude/foldr + 0 [1 2 3 4]) (prelude/list->Sum (range 50)) (prelude/++ (prelude/Sum 5) (prelude/Sum 6)) (prelude/->Sum (range 5)) (prelude/++M (prelude/->Max 10) (prelude/->Max 20)) (reduce prelude/++M (map prelude/->Max (range 50)))"
;https://gist.github.com/anonymous/0d34f91b5947e732a78b0e595de5a89c
;https://gist.github.com/anonymous/3b7cc262a57f0d6451d65751b4f3334d#file-prelude-cljc
(ns prelude)
;(defmacro comment ([form &args] ()))
;drop form
;(defmacro comment ([form &args] ()))