Skip to content

Instantly share code, notes, and snippets.

View ainame's full-sized avatar

Satoshi Namai ainame

View GitHub Profile
# !/usr/bin/env perl
use strict;
use warnings;
# クロージャの実装方法
# count_one()とcount_so_far()は$countに束縛されたクロージャ
{
my $count = 0;
sub count_one { ++$count }
# !/usr/bin/env ruby
101.times do |i|
if i%3 == 0 && i%5 == 0
puts "fizzbuzz"
elsif i%3 == 0
puts "fizz"
elsif i%5 == 0
puts "buzz"
else
@ainame
ainame / gist:1297587
Created October 19, 2011 06:13
fizzbuzz
ruby -e '(1..100).to_a.map{|i|i%15<1?"fizzbuzz":i}.map{|i|i%5==0?"fizz":i}.map{|i|i%3==0?"buzz":i}.tap{|i|puts i}'
@ainame
ainame / jyanken.pm
Created October 27, 2011 18:37
以前書いたジャンケンするプログラムをリファクタリングしてモジュール化してみた。あとTest::Moreの勉強がてらに超簡単なテスト。
#! /usr/bin/env perl
package Jyanken;
use warnings;
use strict;
use 5.010;
my @num_to_str = qw(g c p);
my @num_to_handname = ("グー", "チョキ", "パー");
my %str_to_num = (
`mkdir -p result`
Dir.glob("#{ARGV[0]}/*.kif") do |fn|
File.open(fn, "r") do |f|
File.open("result/#{File.basename(fn)}","w") do |o|
o.puts(f.read.gsub("\r\r\n","\r\n"))
end
end
end
`rm ARGV[0]/*`
`cp result/* #{ARGV[0]}`
@ainame
ainame / dl.rb
Created November 25, 2011 12:27
# -*- coding: utf-8 -*-
#######################################
# 将棋の棋譜でーたべーすのidのリスト
# を使って棋譜をぶっこぬくスクリプト
#######################################
require 'open-uri'
require 'nkf'
require 'nokogiri'
File.open("./kid.list","r") do |f|
@ainame
ainame / csa_reacord.rb
Created December 11, 2011 15:36
CSA形式の将棋の棋譜の完全一致チェック.kifu_check.rbの最後の部分でパラメーターを適宜編集.lib/csa_reacord.rbとlib/tree.rbを配置して利用.
# -*- coding: utf-8 -*-
# CSA形式の棋譜を表すクラス
class CsaRecord
Sente = true
Gote = false
attr_accessor :file
def initialize( *args )
option = args.pop
case option
@ainame
ainame / test.js
Created December 13, 2011 05:00
nodeによるhttpアクセス
var http = require('http');
http.get( {host:"google.com"} ,function(res){
console.log(res.headers);
});
var http = require('http');
// こうインデントさせたいのに
var s1 = http.createServer(function(req, res){
res.end("hello world");
});
// こうなってしまう!!
var s2 = http.createServer(function(req, res){
res.end("hello world");
;; インデントの関数の再設定
(add-hook 'js2-mode-hook
#'(lambda ()
(require 'js)
(setq js-indent-level 4
js-expr-indent-offset 4
indent-tabs-mode nil)
(set (make-local-variable 'indent-line-function) 'js-indent-line)))