Skip to content

Instantly share code, notes, and snippets.

View st98's full-sized avatar

st98 st98

View GitHub Profile
@st98
st98 / tr.js
Created March 23, 2014 10:05
'ABC'.tr('ABC', 'DEF'); // => 'DEF'
String.prototype.tr = function (search, replace) {
var pattern = new RegExp('[' + search + ']', 'g');
return this.replace(pattern, function (m) {
return replace[search.indexOf(m)] || '';
});
};
@st98
st98 / suicide.py
Last active August 29, 2015 13:57
import os; os.kill(os.getpid(), 9)
@st98
st98 / bogosort.js
Last active August 29, 2015 13:57
JavaScriptでボゴソート。
var randint = function (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
var swap = function (obj, i, j) {
var tmp;
tmp = obj[i];
obj[i] = obj[j];
obj[j] = tmp;
@st98
st98 / unsafe.cs
Created April 18, 2014 15:51
unsafe を試してみたかったので。
class Unsafe
{
static unsafe void Main()
{
int a = 100;
int *p = &a;
*p = 200;
System.Console.WriteLine("{0}", a);
@st98
st98 / Array#toString.js
Last active August 29, 2015 14:00
Array#toString を少し見やすく。ただしコードは醜い。
Object.defineProperty(Array.prototype, 'toString', {
value: (function () {
var start = '[';
var end = ']';
var delimiter = ', '
function toString() {
var index = 0;
var len = this.length;
var result = '';
@st98
st98 / divmod.js
Created April 27, 2014 09:28
冪剰余。
var divmod = function (base, exp, mod) {
var result = 1;
while (exp > 0) {
if ((exp & 1) === 1) {
result = result * base % mod;
}
exp >>= 1;
var obj = Object.create(Object.prototype, {
prop: { set: undefined }
});
console.log(obj.prop); // => undefined
obj.prop = 5;
console.log(obj.prop); // => undefined
@st98
st98 / example.js
Last active August 29, 2015 14:00
部分適用?
var add = function (x, y) {
return x + y;
};
var add5 = partial(add, 5);
add5(10); // => 15
// 素直に Function#bind を使いましょう
var add5 = add.bind(null, 5);
add5(10); // => 15
@st98
st98 / va.c
Created April 28, 2014 18:31
可変長引数で遊んでみるテスト。
#include <stdio.h>
#include <stdarg.h>
int sum(int n, ...) {
int i;
int result = 0;
va_list args;
va_start(args, n);
@st98
st98 / gist:befafe90ce39a27cf0f9
Last active August 29, 2015 14:00
'ABCD' から [(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')] を作りたい。
s = 'ABCD'
# 1
i = 0
result = []
while True:
if i >= len(s):
break
result.append((i, s[i]))