Skip to content

Instantly share code, notes, and snippets.

puts "Hello, World!"
class Book
attr_accessor :title, :page_num
def initialize( title, page_num )
@title = title
@page_num = page_num
end
def title
puts @title
def Object.const_missing(name)
replaced_string = name.to_s.gsub(/([A-Z]+)/, '/\1').downcase
require File.expand_path(File.dirname(__FILE__) + replaced_string + '.rb')
raise "Const missing." unless const_defined? name
const_get(name.to_s)
end
@zakky-dev
zakky-dev / 検証用
Created June 7, 2013 14:13
Haskellの遅延評価がわからない。 これの実行結果 before testBEFORE after AFTER after AFTER なんでこうなるの……。
import Data.Char
main = do
contents <- getContents
putStr "test"
putStr $ map toUpper contents
@zakky-dev
zakky-dev / gist:5836176
Created June 22, 2013 07:14
head/tailをMaybeにしてみた
safeHead :: [a] -> Maybe a
safeHead [] = Nothing
safeHead (x:_) = Just x
safeTail :: [a] -> Maybe [a]
safeTail [] = Nothing
safeTail (_:xs) = Just xs
@zakky-dev
zakky-dev / binary.d
Created July 26, 2013 15:20
コンパイルは通っているようですが何故……。
import std.array;
bool binarySearch(T)(T[] input, T value) {
if(input.empty) {
return false;
}
auto i = input.length / 2;
auto mid = input[i];
if(mid > value) return binarySearch(input[0 .. i], value);
if(mid < value) return binarySearch(input[i .. $], value);
@zakky-dev
zakky-dev / lambda.d
Created July 28, 2013 13:30
D言語のラムダで遊んでみた
import std.stdio;
void main() {
int delegate()[int] dict;
foreach(it; 0 .. 10) {
dict[it] = ((i) => (() => i))(it);
}
foreach(key, func; dict) {
writeln(key, " => ", dict[key]());
@zakky-dev
zakky-dev / with.d
Created August 12, 2013 08:10
privateメンバにアクセスできてる?
import std.stdio;
struct Structure {
public:
int public_integer = 10;
private:
int private_integer = 20;
}
void main() {
@zakky-dev
zakky-dev / wasrun.d
Created August 27, 2013 22:58
__traitsのgetMemberは継承したあとに使っても駄目らしい。
import std.stdio;
import std.conv;
class TestCase(string methodName) {
void run() {
__traits(getMember, this, methodName);
}
}
class WasRun(string methodName) : TestCase!(methodName) {
@zakky-dev
zakky-dev / repro.js
Created September 3, 2013 07:10
node.js + socket.io + redisstoreで何故かソケット情報が蓄積する。
var SERVER_PORT = 80;
var LIFE_TIME = 30000;
var REDIS_HOST = "xxx.xxx.xxx";
var REDIS_PORT = 6379;
var http = require('http');
var io = require('socket.io');
var server = http.createServer();
var manager = null;