Skip to content

Instantly share code, notes, and snippets.

@naoyat
naoyat / example1.scm
Created February 9, 2010 10:05
プログラミングErlang §12.2の外部プログラムをCではなくSchemeで書いてみるテスト
(define (twice x) (* 2 x))
(define (sum x y) (+ x y))
(use gauche.uvector)
(define-macro (ferr fmt . args)
; `(format (current-error-port) ,fmt ,@args))
#t)
(define (read-exact u8buf len)
@naoyat
naoyat / unzipとかtarとかで、解凍するアーカイブファイルとしてURLを直接指定したい.pl
Created April 1, 2010 08:06
unzip とか tar とかで、解凍するアーカイブファイルとしてURLを直接指定したい
#!/usr/bin/env perl
#
# unzip とか tar とかで、解凍するアーカイブファイルとしてURLを直接指定したい
#
# $HOME/bin とかに unzip ないし tar という名前で保存し chmod +x しておく。
# $HOME/bin を環境変数PATHの冒頭に指定すること
#
use strict;
use File::Basename;
@naoyat
naoyat / without_recursion.c
Created May 18, 2010 07:57
C言語で、再帰呼び出しを使用せずに、文字列"(12 + 3) * ( 3 * (4 + 5 ))"を、優先順位が低い順に二分木に入れる関数を作成したいのですが・・・。
#include <stdio.h>
#include <string.h> // memset, fls
#define MAX_TREE_HEIGHT 10
#define TREE_BUFSIZE (1<<MAX_TREE_HEIGHT)
#define MAX_PAREN_DEPTH 16
int bits(int x){
return 1+fls(x);
// return 8*sizeof(int) - __builtin_clz(x);
@naoyat
naoyat / n-gram.scm
Created September 25, 2010 08:16
[n-gram] FSNLP p.200の図6.3の数字が出るのかどうか
;; Gauche
(use srfi-1)
(use srfi-13)
(define (string-list< sl1 sl2)
(cond ((null? sl1) #t)
((null? sl2) #f)
((string< (car sl1) (car sl2)) #t)
((string> (car sl1) (car sl2)) #f)
(else (string-list< (cdr sl1) (cdr sl2)))))
@naoyat
naoyat / fourier.py
Created March 3, 2012 13:00
scipy.integrate.quad() を使ってフーリエ級数展開してみるテスト
# -*- coding: utf-8 -*-
from pylab import *
from scipy.integrate import quad
x_min = -4.0
x_max = 8.0
xs = linspace(x_min, x_max, 256)
space = (x_max - x_min) / 80
def fourier(fun, n_max):
@naoyat
naoyat / k-means.awk
Created April 21, 2012 02:19
AWKでK-means法
#
# k-means.awk
#
BEGIN {
if (K < 2) {
printf("usage: awk -f %s -v K=nnn datafile¥n", ARGV[0])
exit
}
move_threshold = 0
@naoyat
naoyat / kaijou.scm
Created May 2, 2012 04:45
40-32÷2=?小学生「4!」理系「よくわかってんじゃん」文系「やっぱわかんないか~w」
;; a - b ÷ c = d! を満たす自然数の組 (a,b,c,d) ≦1億 を探す
(define MX 1e8)
(let ld ((d 3) (d- 2)) ; d- = (d-1)!
(when (<= (* d d-) MX)
(let lc ((c 2)) ;; c>1
(when (< c d-) ;; b>0
(receive (b r) (quotient&remainder
(* c d (- d- c))
(- c 1))
@naoyat
naoyat / re.scm
Created May 16, 2012 10:33
正規表現とオートマトン
(use srfi-1) ;; cons* -> Gauche の組み込み list* でも可
(define *ullman* #f) ;; Ullman先生方式なら#t
(define *verbose* #f)
;;; Finite Automata
(define (FA start finals states transitions)
(list 'FA start finals states transitions))
(define (FA? f) (eq? 'FA (car f)))
(define (fa-start-state f) (second f))
@naoyat
naoyat / surrogate.html
Created October 9, 2012 01:32
surrogate pair test
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>surrogate pair test</title>
</head>
<body>
<p>"<span id="sample">&#131083;</span>"</p><!-- U+2000B -->
<script type="text/javascript">
var s = document.getElementById("sample").innerHTML;
document.write("<hr>");
@naoyat
naoyat / randpick.py
Created October 15, 2012 12:06
randpick: ファイルからn行をランダム抽出
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
randpick: ファイルからn行をランダム抽出
(c)2012 naoya_t
usage: randpick <input-file> <count>
'''
import sys