Skip to content

Instantly share code, notes, and snippets.

#include <stdio.h>
int main(int argc, char *argv[]) {
puts("Hello, world!\n");
return 0;
}
@siritori
siritori / cellular_automata.erl
Created December 16, 2011 00:11
セルオートマトン法・ω・
-module(cellular_automata).
-compile(export_all).
make_rule(N) ->
<<B1:1, B2:1, B3:1, B4:1, B5:1, B6:1, B7:1, B8:1>> = <<N>>,
fun({X1, X2, X3}) ->
<<Idx>> = <<0:5, X1:1, X2:1, X3:1>>,
lists:nth(Idx+1, [B8,B7,B6,B5,B4,B3,B2,B1])
end.
@siritori
siritori / circular_list.c
Created February 6, 2012 06:35
循環リスト
#include <stdio.h>
struct node {
int data;
struct node *next;
};
int main(void) {
struct node a, b, c, d;
a.next = &b;
@siritori
siritori / binaty_tree.als
Created February 19, 2012 16:19
二分探索木をAlloyで定義してみた
open util/ordering[Node]
sig Node {
lhs : lone Node,
rhs : lone Node
}
fact {
// 葉をたどればすべての要素が取得できるrootがただひとつ存在する
one root : Node | Node = root.*(lhs+rhs)
// 任意の節において成り立つ
@siritori
siritori / expr_tree.als
Created May 1, 2012 19:52
式木の定義的なアレ
abstract sig Expr {
lhs : lone Expr,
rhs : lone Expr
}
sig True extends Expr {}
sig False extends Expr {}
sig Not extends Expr {}
sig And extends Expr {}
sig Or extends Expr {}
expr : primitive | <'+', expr, expr> | <'-', expr, expr>
primitive : NUMBER
equal(e1:NUMBER, e2:NUMBER) ->
e1 == e2
equal(<'+', e1l, e1r>, <'+', erl, e2r>) ->
equal(e1l, e2l) && equal(e1r, e2r)
equal(<'-', e1l, e1r>, <'-', erl, e2r>) ->
equal(e1l, e2l) && equal(e1r, e2r)
@siritori
siritori / aatree.c
Created May 21, 2012 03:40
AA tree by C
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>
#include "aatree.h"
static aanode* new_aanode(const int key, void *val, aanode *nullnode) {
aanode *n = (aanode*)malloc(sizeof(aanode));
if(n == NULL) return NULL;
n->key = key;
#include <iostream>
using namespace std;
typedef enum {
ATOMIC,
NOT,
AND,
OR,
IMPLIES,
@siritori
siritori / NK.cpp
Created May 24, 2012 15:24
ほげほげ
#include <iostream>
#include <map>
using namespace std;
typedef enum {
IMPLIES,
AND,
OR,
NOT,
#include <iostream>
#include <boost/regex.hpp>
int main()
{
std::string file_path = "/foo/bar/bunny.obj";
std::string type = "unknown";
boost::regex rx_find_extension("^.*\\.(\\w+)$");
boost::smatch result;
if ( boost::regex_match( file_path, result, rx_find_extension ) )