Skip to content

Instantly share code, notes, and snippets.

View darichey's full-sized avatar

David Richey darichey

View GitHub Profile
use crate::lexer::Token;
use crate::tree::{Ledger, Transaction, Posting};
use lalrpop_util::ErrorRecovery;
grammar<'input, 'err>(input: &'input str, errors: &'err mut Vec<ErrorRecovery<usize, Token<'input>, &'static str>>);
extern {
type Location = usize;
type Error = &'static str;
@darichey
darichey / Main.hs
Last active April 17, 2023 05:26
Code re-use with recursion schemes
{-# LANGUAGE DeriveTraversable, TemplateHaskell, TypeFamilies, LambdaCase, FlexibleInstances #-}
module Main where
import Data.Functor.Foldable.TH (makeBaseFunctor)
import Control.Lens
import Control.Monad.Reader
import Data.Functor.Foldable
import Data.List
import Control.Monad.Writer (Writer)

Keybase proof

I hereby claim:

  • I am darichey on github.
  • I am darichey (https://keybase.io/darichey) on keybase.
  • I have a public key whose fingerprint is 5171 9EF4 FECF BC17 BC4D 577E E0C1 888A D9F1 B11F

To claim this, I am signing this object:

@darichey
darichey / checksum.cpp
Last active November 11, 2020 04:32
Internet Checksum
#include <cstdint>
#include <ios>
#include <iostream>
#include <vector>
uint16_t checksum(const std::vector<uint16_t> &data) {
uint32_t checksum = 0;
for (auto word : data) {
checksum += word;
@darichey
darichey / Y.scala
Created June 25, 2020 17:12
Y stuff
object Y {
sealed trait List[+T]
case class Cons[T](head: T, tail: List[T]) extends List[T]
case object Nil extends List[Nothing]
def almostLength[T](rec: List[T] => Int): List[T] => Int =
(list: List[T]) => {
list match {
case Nil => 0
@darichey
darichey / Test.kt
Last active May 11, 2020 00:10
kotlin bad
fun main() {
val list = listOf(-1, 1)
val newList: List<Any> = list.map {
return@map foo(it) ?: return@map
}
println(newList[0].toString())
}
fun foo(i: Int): String? =
@darichey
darichey / Guild.java
Created May 2, 2020 08:14
Future of Spec Strawman
public RoleCreateSpec createRole() {
return new RoleCreateSpec(gateway, getId().asLong());
}
@darichey
darichey / deps.txt
Created May 1, 2020 23:36
Discord4J modules
discord.json automatic
[file:///mnt/c/users/david/Desktop/mods/discord-json-1.2.2-SNAPSHOT.jar]
requires mandated java.base
discord.json -> discord.json.api
discord.json -> java.base
discord.json -> not found
discord.json -> reactor.core
discord4j.discordjson.json -> com.fasterxml.jackson.annotation not found
discord4j.discordjson.json -> com.fasterxml.jackson.databind.annotation not found
discord4j.discordjson.json -> discord4j.discordjson.json discord.json
@darichey
darichey / Test.java
Last active June 10, 2019 01:49
Justify reference issue
import org.leadpony.justify.api.*;
import javax.json.JsonReader;
import javax.json.JsonValue;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test {
public static void main(String[] args) {
@darichey
darichey / Chart.md
Last active March 15, 2019 19:48
Compare methods for getting the maximum element of a Flux and Stream

Chart