The goal of this project is to build our own parser library from scratch.
You will understand how monads work by building your own Parser monad! and its actually useful + beautiful!
The first step is to understand what a ‘Parser a’ means
a value of type ‘Parser a’ is a ‘runnable computation’ that can consume a String or a part of String, and produce a value of type ‘a’ along with the remaining unconsumed String.
newtype Parser a = Parser { runParser :: String -> Maybe (a, String) }i.e. if it succeeds, it consumes part of the input String and produces a value of type ‘a’ along with the remaining unconsumed String. If it fails, it returns Nothing.
for example, we can d…
$$
% For comments
\definecolor{amethyst}{rgb}{0.6, 0.4, 0.8}
\definecolor{atomictangerine}{rgb}{1.0, 0.6, 0.4}
\definecolor{burgundy}{rgb}{0.5, 0.0, 0.13}
\definecolor{byzantine}{rgb}{0.74, 0.2, 0.64}
\definecolor{caribbeangreen}{rgb}{0.0, 0.8, 0.6}
\definecolor{carrotorange}{rgb}{0.93, 0.57, 0.13}
\definecolor{cinnabar}{rgb}{0.89, 0.26, 0.2}
\definecolor{darkcoral}{rgb}{0.8, 0.36, 0.27}
\definecolor{darkpastelpurple}{rgb}{0.59, 0.44, 0.84}
\definecolor{dodgerblue}{rgb}{0.12, 0.56, 1.0}
…
This is the script I used for postgres boilerplate: setup a new database for your app in a second owo
APP_USER="user"
APP_DB="user_db"
APP_DB_PASSWORD="password"
cat <<EOF
…PhD Candidate in Pure Mathematics
Research: Number Theory · p-adic Chabauty–Coleman methods
I am a PhD candidate in pure mathematics working in number theory, with a focus on p-adic Chabauty–Coleman methods. Alongside research, I build high-performance software (primarily in Haskell) and write educational material in abstract algebra and probability. I have written 100k+LOC of Haskell.
My current research direction centers on p-adic methods for studying rational points, especially Chabauty–Coleman style techniques.
I am particularly interested in extending Chabauty–Coleman methods using \(p\)-adic differential equations, aiming to broaden the scope of problems where t…
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE PatternSynonyms #-}
{- |
This executable is a small interactive tour of /h-raylib/:
* How to open a window and drive the renderer ('beginDrawing'/'endDrawing').
* How to draw 2D primitives (fills + “strokes” via *Lines* APIs).
…The following setup guide is produced by chatgpt, I will try it and verify it, modifying the parts that are not correct.
This is a from-zero → working demo → shipping build checklist for getting raylib + Haskell (h-raylib) running on Windows, and packaging your game so users can run it by double-clicking.
Core idea:
h-raylibtypically vendors the raylib C sources via the package build, so you usually do not need a separate raylib installation. What you do need is a working Haskell toolchain + a working Windows C toolchain.
Your shipped game will look like:
MyGame/
…## Categorical Van Kampen Theorem
### Fundamental Groupoid
The **fundamental groupoid** $\Pi_1(X)$ of a space $X$ is a groupoid whose objects are the points of $X$ and whose morphisms are endpoint homotopy equivalence classes of paths $x\to y$.
* $\Ob(\Pi_1(X)) = X$
* $\Hom_{\Pi_1(X)}(x,y) = \{ x \to y \}/\sim$
There are some obvious properties:
…
Lead a session: the presenter may not fully understand the topic but leads us to learn together, for example by reading together, watching together, and solving exercises together.
In a session, participants are expected to work hands-on, think with the leader, discuss the questions, and solve exercises / small projects together.
Give a talk: The presenter has some understanding of the topic and give a 15~60 minute talk on it
focusing on the core ideas and understanding
make sure the non-experts can follow most of the talk
give exercises / projects / challenge if possible
You can easily resize a btrfs partition without going to live ISO.
Check how much space is left unused:
sudo btrfs file usa /
sudo btrfs file resize / -32g # any size you wantsudo parted /dev/nvme..../unit GiB
print
…References:
A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics
Markov category gives a way to write probability theory that is ‘decoupled’ from a particular implementation (i.e. discrete distributions, continuous ones, or general measure theoretic ones). It is an interesting abstraction where you use morphisms to talk about random variables.
A markov category is a semi-cartesian symmetric monoidal category \((\mcC, \otimes, 1)\) that supplies cocommutative comonoids.
The means:
Want to say something? You can do it here! owo