2011-09-01から1ヶ月間の記事一覧

逆ポーランド記法的配列を出力する計算機

class Calcp prechigh nonassoc UMINUS left '*' '/' left '+' '-' preclow options no_result_var rule target: exp | { result = [] } exp: exp '+' exp { val[0] + val[2] + ['+'] } | exp '-' exp { val[0] + val[2] + ['-'] } | exp '*' exp { val[0] +…

逆ポーランド記法配列出力計算機: 演算子を関数に変えてパース後に計算する

class Calcp prechigh nonassoc UMINUS left '*' '/' left '+' '-' preclow options no_result_var rule target: exp | { result = [] } exp: exp '+' exp { val[0] + val[2] + [lambda {|a, b| a + b }] } | exp '-' exp { val[0] + val[2] + [lambda {|a, …

Amazon SimpleDBのクライアント

#!/usr/bin/env ruby require 'cgi' require 'base64' require 'net/https' require 'openssl' class SDBClient API_VERSION = '2009-04-15' SIGNATURE_VERSION = 2 def initialize(accessKeyId, secretAccessKey, endpoint = 'sdb.amazonaws.com', algorith…

順列をすべて舐める

以下のように複数の集合があった場合に sets = [ [1,2,3,4], [5,6,7], [8,9], ] すべての順列を舐める関数を定義してみる。 def permutation(stack, ary = [], &block) list = stack.shift list.each do |i| if stack.empty? block.call(ary + [i]) else per…

bracecomp 0.1.0

https://rubygems.org/gems/bracecomp https://bitbucket.org/winebarrel/bracecomp まいどまいどのこまいライブラリのリリースです。 これは何? bashとかのブレース展開をするライブラリです。 サンプルをみればやりたいことは分かると思います。 require …