Skip to content

Instantly share code, notes, and snippets.

View xplorld's full-sized avatar

Ruiyang Wang xplorld

View GitHub Profile
@xplorld
xplorld / sorts.py
Last active December 17, 2018 23:30
One-line sort algorithms. Haskellized python code.
'''
Haskellized python code
License: WTFPL
'''
qsort1 = (lambda arr:arr if (len(arr)<2) else qsort1(filter(lambda x:x <= arr[0],arr[1:])) + [arr[0]] + qsort1(filter(lambda x:x > arr[0],arr[1:])))
qsort2 = (lambda arr:arr if (len(arr)<2) else qsort2([x for x in arr[1:] if x <= arr[0]]) + [arr[0]] + qsort2([x for x in arr[1:] if x > arr[0]]))
bsort = (lambda arr:arr if (len(arr)<2) else (lambda mid:bsort(filter(lambda x:x <= mid,arr))+bsort(filter(lambda x:x > mid,arr)))((max(arr)+min(arr))/2))
merge = lambda a,a1,a2: a+a2 if not a1 else a+a1 if not a2 else merge(a+[a1[0]],a1[1:],a2) if a1[0] < a2[0] else merge(a+[a2[0]],a1,a2[1:])
msort = lambda a:a if (len(a)<2) else merge([],msort(a[:len(a)/2]),msort(a[len(a)/2:]))
@xplorld
xplorld / Predicates.swift
Created May 13, 2016 10:16
(Pesudo-)Natural Language Predicates.
extension LazySequenceType {
public func reduceWhile<T>(
initial: T,
@noescape combine: (T, Self.Generator.Element) -> T,
@noescape criteria: (T) -> Bool
)-> T {
var generator = self.generate()
var now = initial
@xplorld
xplorld / neteasemusic_comment.py
Created June 5, 2016 10:44
Get comments on netease music songs.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# forked from http://playbear.github.io/2015/09/30/net-music-comment/
import requests
import json
import os
import base64
from Crypto.Cipher import AES
@xplorld
xplorld / ThoughtsOnRESTAPI.swift
Last active August 30, 2016 08:44
Thoughts On how a good REST API library should look like
//ThoughtsOnRESTAPI.swift
//Thoughts On how a good REST API library should look like
/*
object mapping : entity <-> json
can do it by reflection?
hierarchical configuration:
- auth header (for all requests)
- require status code, method verb etc (one config for each request)
- parameter and payload
@xplorld
xplorld / MyArray.cpp
Created October 9, 2016 10:39
a C++ "enhanced" array from `T[]`
template <class T>
struct MyArray {
private:
T * arr;
size_t size;
public:
using type = T;
MyArray(size_t size) :
size(size),
@xplorld
xplorld / NativeJSON.swift
Last active February 18, 2017 15:02
a JSON parser in Swift without Cocoa or Regular Expressions.
//
// main.swift
// RYJSON
//
// Created by Xplorld on 2017/2/18.
// Copyright © 2017年 xplorld. All rights reserved.
//
import Foundation
//a JSON parser
@xplorld
xplorld / StackVM.cpp
Created February 27, 2017 04:52
a simple-to-stupid stack vm
#include <iostream>
#include <stack>
//a stupid stack machine
typedef enum : int {
ADD, //0
SUB,
MUL,
DIV,
@xplorld
xplorld / virtualTable.c
Created June 1, 2017 12:10
a simple virtual-table implemented polymorphism simulation in C
#include <stdio.h>
#include <stdlib.h>
struct Base;
struct Derived;
int f_Base(struct Base * b);
int f_Derived(struct Derived* d);
typedef struct {
int (*f)(struct Base *);
@xplorld
xplorld / leetcode 套路.md
Last active September 25, 2022 03:38
leetcode 套路

array -> contiguous subarray with max(f(arr))

套路 - 2 max

从左往右扫,维护 2 个 max,

  • 一个是 max(sub(arr[0:n]))
  • 一个是 max(sub(arr[0:n], including arr[n]))
for n in arr:
@xplorld
xplorld / PL_checklist.md
Created February 12, 2018 19:49
A checklist before you want to invent a new programming language

This work is copied from http://colinm.org/language_checklist.html. Thanks to Colin McMillen, Jason Reed, and Elly Jones for this amazing work!

Programming Language Checklist by Colin McMillen, Jason Reed, and Elly Jones.

You appear to be advocating a new: [ ] functional [ ] imperative [ ] object-oriented [ ] procedural [ ] stack-based [ ] "multi-paradigm" [ ] lazy [ ] eager [ ] statically-typed [ ] dynamically-typed [ ] pure [ ] impure [ ] non-hygienic [ ] visual [ ] beginner-friendly [ ] non-programmer-friendly [ ] completely incomprehensible