Skip to content

Instantly share code, notes, and snippets.

View windymelt's full-sized avatar
😄
Working from Home

Windymelt windymelt

😄
Working from Home
View GitHub Profile
did:3:kjzl6cwe1jw146hn0jnkn20715xvrobe3wnl9sesq0hf8yntzd4j05g66gl3yz7
@windymelt
windymelt / naive-darr.rs
Created December 10, 2020 14:56
ナイーブなdouble array trieの実装
use std::collections::HashMap;
fn validate(
base: &Vec<Option<usize>>,
check: &Vec<Option<usize>>,
wdict: &HashMap<char, usize>,
s: &String,
) -> bool {
let ci = s.chars();
// initial offset is 0
@windymelt
windymelt / gist:80c71722d2c0aff3108c4aa17a7277bd
Last active August 19, 2020 03:42
はてブエントリページでユーザミュートをサポートする君
// ==UserScript==
// @name Mute user はてブ
// @namespace http://tampermonkey.net/
// @version 0.1
// @description mute user
// @author Windymelt
// @match https://b.hatena.ne.jp/*
// @grant none
// ==/UserScript==
#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
(progn ;;init forms
(ros:ensure-asdf)
#+quicklisp(ql:quickload '(:iterate) :silent t)
)
@windymelt
windymelt / for-comprehension.lisp
Last active May 10, 2020 03:45
For comprehensionをCommon Lispで書く
(defmacro left (x)
`(multiple-value-bind (left) ,x left))
(defmacro right (x)
`(multiple-value-bind (_ right) ,x _ right))
(defmacro return-left (x)
`(values ,x nil))
(defmacro return-right (x)
@windymelt
windymelt / asd.lisp
Created January 14, 2020 09:39
provides package which links to all files under the named directory
;;; inside your ASD file
(in-package :cl-user)
(defpackage foo-asd
(:use :cl :asdf)
(:export :define-dependency-aggregator-package))
(in-package :foo-asd)
(ql:quickload :alexandria)
(defparameter *dependency-source-dir* (merge-pathnames #P"src/" (uiop:getcwd)))
(defun define-dependency-aggregator-package (name)
{
"comment": "ips stands for items per second. spi stands for seconds per item (reciprocal for ips).",
"belt": {
"ultra_high_speed": { "ips": 45 },
"high_speed": { "ips": 30},
"normal": { "ips": 15 }
},
"item": {
"intermediate_product": {
"copper_cable": { "psi": 0.5, "recipe": [{ "name": "copper_plate", "amount": 1}], "yield": 2 },
sealed trait Nat
final object One extends Nat
final case class Succ(val nat: Nat) extends Nat
final case class Odd(val nat: Nat)
final case class Even(val nat: Nat)
object Main extends App{
// 自然数の足し算を考えることができる
/*
女騎士「体が熱い…貴様何を!」
オークA「ククク……」
オークB「ククク……」
オークA「俺が女騎士に媚薬を飲ませた」
オークB「オークA、Cは二人とも嘘つきだ」
オークC「女騎士に媚薬を飲ませたのは嘘つきだ」
オークD「オークB、Eの内片方は嘘つきだ」
オークE「俺は媚薬を飲ませてない」
女騎士「オークの内正直なのは二人だけだと分かっている時、私に媚薬を持ったオークとして適当なのは誰だ!?」
@windymelt
windymelt / specification.ros.lisp
Created July 2, 2019 11:19
DDD 宣言的な設計をCommon Lispで実装してみる
#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
(progn ;;init forms
(ros:ensure-asdf)
#+quicklisp(ql:quickload '(:prove) :silent t)
)