Skip to content

Instantly share code, notes, and snippets.

View bikallem's full-sized avatar
🎯
Focusing

Bikal Gurung bikallem

🎯
Focusing
View GitHub Profile
@bikallem
bikallem / avl.ml
Created March 16, 2018 03:11 — forked from jj-issuu/avl.ml
OCaml AVL tree
module AVL = struct
type height = int
type int = height
module Elt = Int32
type t = Leaf | Node of t * Elt.t * t * height
exception Impossible
let height = function
@bikallem
bikallem / Sample_React.js
Last active April 28, 2019 20:51
React.JS without webpack
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script crossorigin src="http://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="http://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script crossorigin src="http://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<body>
@bikallem
bikallem / finalTagless.ml
Created October 25, 2019 09:20 — forked from lambdahands/finalTagless.ml
Final Tagless in OCaml
(*
* An OCaml implementation of final tagless, inspired from this article by Oleksandr Manzyuk:
* https://oleksandrmanzyuk.wordpress.com/2014/06/18/from-object-algebras-to-finally-tagless-interpreters-2/
*)
module FinalTagless = struct
type eval = { eval : int }
type view = { view : string }
module type ExpT = sig
@bikallem
bikallem / pcode.c
Created November 7, 2019 10:33 — forked from lpsantil/pcode.c
pcode interpreter
/*
P-code for PL/0 machine
[ref] https://en.wikipedia.org/wiki/P-code_machine
[ref] http://blackmesatech.com/2011/12/pl0/pl0.xhtml
The PL/0 virtual machine was originally specified by Nicklaus Wirth in his book
Algorithms + Data Structures = Programs; it's used as the target machine for a
PL/0 compiler.
#!/usr/bin/env bash
set -e
# Converts .ml to .re
ls -A *ml* | while read file; do
if [[ "$file" =~ (\.ml|\.mli)$ ]]; then
# Convert from OCaml to ReasonML
newfile=$(echo $file | sed 's/\.ml/\.re/' | python -c "print raw_input().capitalize()")
echo "Converting $file to $newfile"
https://github.com/SVdotCO/pupilfirst/blob/110b1ce95c60e246db2d0214f5d79841eec59ca7/app/javascript/coaches/dashboard/components/EvaluationForm.re#L59
https://github.com/nathanWilson81/reason-image-grid/blob/master/src/Utils.re
@bikallem
bikallem / gadt.ml
Created April 21, 2021 11:31
gadt list to function
module Params = struct
type _ t =
| [] : 'a t
| ( :: ) : 'a * 'b t -> ('a -> 'b) t
let c = [ "s"; 1; 2.3; true ]
let parse l =
let parse_int s =
try Some (int_of_string s) with
@bikallem
bikallem / recover_type.ml
Last active May 2, 2021 17:28
experiments with gadt equality and using it to recover types from opaque gadt type
module Eq = struct
type (_, _) t = Eq : ('a, 'a) t
end
type _ tid = ..
type _ tid += Int : int tid | Float : float tid | Bool : bool tid
type _ key =
| K :
[START][2021-12-16 10:13:34] LSP logging initiated
[START][2021-12-16 10:19:07] LSP logging initiated
[START][2021-12-16 10:22:07] LSP logging initiated
[START][2021-12-16 10:29:22] LSP logging initiated
[START][2021-12-16 14:02:31] LSP logging initiated
[START][2021-12-16 14:02:59] LSP logging initiated
[START][2021-12-16 14:03:42] LSP logging initiated
[START][2021-12-16 14:05:21] LSP logging initiated
[START][2021-12-16 14:09:34] LSP logging initiated
[START][2021-12-16 14:13:31] LSP logging initiated