牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Ruby

Ruby でやってみる『機械学習 はじめよう第3回 ベイジアンフィルタを実装してみよう』メモ

若干リファクタ naivebayes.rb: 2014-06-30(ruby2.1)元ネタは Python 実装 第3回 ベイジアンフィルタを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社 理論 第2回 確率の初歩:機械学習 はじめよう|gihyo.jp … 技術評論社 やること ナイーブ…

Python で『書籍 "RとRubyによるデータ解析入門』 のサンプルコードを書いてみるメモ

元 『O'Reilly Japan - RとRubyによるデータ解析入門』 https://github.com/setoyama60jp/everyday/blob/master/Chapter4/restroom.rb https://github.com/setoyama60jp/everyday/blob/master/Chapter4/example4-4.rb Ruby のサンプルを Python で書き換えた…

Ruby で全角を2、半角を1として文字数を数えてみるメモ

(ruby2.1.1)間違えてたので修正 def char_bytesize_for(char) char.bytesize == 1 ? 1 : 2 end def sum_bytesize_for(text) text.each_char.map { |c| char_bytesize_for(c) }.inject(:+) end puts char_bytesize_for("日") #=> 2 puts sum_bytesize_for("日…

ruby-mode でマジックコメントの自動挿入を停止するためのメモ

Ruby2.0からマジックコメントが不要らしいけど、Emacs の ruby-mode で自動挿入されてしまう。 # -*- coding: utf-8 -*- なので停止する。 色々やってみたが下記でようやく停止できた。 (require 'ruby-mode) (defun ruby-mode-set-encoding () nil) もっと…

Emacs の ruby-mode で補完するのに『robe』を使ってみるメモ

(Emacs24.3, Ruby2.0) robe dgutov/robe · GitHub 使い方 インストール M-x package-install RET robe RET. (auto-complete.el と inf-ruby はインストール前提で) init.el (add-hook 'ruby-mode-hook '(lambda () (robe-mode) (robe-ac-setup) (inf-ruby-…

Pythonで『RとRubyによるデータ解析入門』のコードを移植してみるメモ

(python==2.7.6, ruby==2.0.0) 4章 オフィスとトイレの関係 待ち行列の人数をscvファイルで書き出す。 (example4_4 のみ。他はそのうちやるかも?) そのまま移植しようとしたら上手く動かなかったので、クラスふたつにしたり書き直した。 似たような結果に…

Ruby と Javascript の変数のデフォルト値のメモ

修正・追加 Ruby irb(main):002:0> hoge ||= 'fuga' => "fuga" irb(main):003:0> hoge => "fuga" Javascript 1 > var hoge; undefined > hoge = hoge || 'fuga'; "fuga" > hoge "fuga" 2 > var hoge; undefined > hoge || (hoge = 'fuga'); "fuga" > hoge "f…

様々なプログラミング言語で再帰の階乗を書いてみるメモ

変更 階乗 - Wikipedia Haskell fact :: Int -> Int fact 0 = 1 fact n = n * fact (n - 1) main :: IO () main = do print (fact 10) -- > 3628800 Python def fact(n): if n == 0: return 1 return n * fact(n - 1) print(fact(10)) #-> 3628800 Ruby def …

Ruby で積集合・差集合・和集合などのメモ

(ruby2.0) irb(main):001:0> a = [1,2,3,4] => [1, 2, 3, 4] irb(main):002:0> b = [3,4,5,6] => [3, 4, 5, 6] irb(main):003:0> a & b => [3, 4] irb(main):004:0> a - b => [1, 2] irb(main):005:0> a | b => [1, 2, 3, 4, 5, 6] irb(main):019:0> c = [2,…

MacPortsでインストールした rbenv のバージョンが古いので GitHub の最新版を使う場合のメモ

(MacOSX10.8) 前置き 現時点で MacPorts でインストールできる rbenv は ver.0.3(最新 ver.0.4) それから ruby-build @20121022 も古いままで、リストに 2.0.0-p0 が無い(2.0.0-devだけ) 想定以上にMacPortsとか使わないでのインストールが簡単だった。 …

『RとRubyによるデータ解析入門』で GUI ツールの shoes を使うためのメモ

(MacOSX10.8, Ruby1.9.3, Emacs24.3)gem install shoes でインストールしたが動かせず、 Shoes.app を使うことにした Download Shoes! The easiest little GUI toolkit, for Ruby. Shoes.app hoge.rb などをShoes.appで開くかD&Dすればウインドウ表示される…

Ruby で「a~z」と「あ〜ん」の表示メモ

(Ruby1.93) irb(main):001:0> [*'a'..'z'].join => "abcdefghijklmnopqrstuvwxyz" irb(main):002:0> [*'あ'..'ん'].join => "あぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽま…

Rubyのブロックのメモ

(Ruby1.9.3) def foo(a) yield a end puts foo(10) {|x| x * 2} # >> 20 def bar(option) yield option end puts bar(a: 2, b: 3) { |o| o[:a] + o[:b] + 10 } # >> 15

Pythonでリスト内包表記を使った処理をRubyで書くとしたらメモ

(Python2.7, Ruby1.9) Python print [name.upper() for name in ["foo", "bar"]] # >> ['FOO', 'BAR'] これをmapで print map(lambda x: x.upper(), ["foo", "bar"]) # >> ['FOO', 'BAR'] python久々すぎて、にメソッド名の後に括弧いれるの忘れて戸惑ってし…

Rubyのmapとinjectのメモ

(Ruby1.9.3) seq = ["foo", "bar"] p seq.inject(0) { |sum, str| sum + str.length } # >> 6 p seq.map(&:length) # >> [3, 3] p seq.inject(:+) # >> "foobar" p seq.map(&:length).inject(:+) # >> 6 Rubyによる関数型プログラミング

Ruby で 1/0 のメモ

(Ruby1.9.3) p 1/0 # >> ZeroDivisionError p 1.0/0 # >> Infinity Infinity!?

Ruby で Python の sum 的なやつ忘れるのでメモ

(MacOSX10.8, Ruby1.9.3, Python2.7.3) Python print sum([1,2,3,4,5]) #=>15 Ruby puts [1,2,3,4,5].inject(:+) #=>15

Ruby で 実行速度を計測するメモ

(Ruby1.9.3) benchmark require 'benchmark' puts Benchmark::CAPTION puts Benchmark.measure { puts [1,2,3,4,5].inject(:+) } #=> user system total real #=> 15 #=> 0.000000 0.000000 0.000000 ( 0.000015)

『プログラミングClojure』2.3関数の無記名関数を Python と Ruby でもやってみたメモ

Clojure 1.4 (defn make-greeter [greeting-prefix] (fn [username] (str greeting-prefix ", " username))) (def hello-greeting (make-greeter "Hello")) (hello-greeting "world") ;;-> "Hello, world" ((make-greeter "Howdy") "pardner") ;;-> "Howdy, …

Ruby, Clojure, Python の空リストのブール値の違いメモ

(MacOSX10.8, Ruby1.9.3, Clojure1.4, Python2.7) Ruby true irb(main):010:0> [] ? "t" : "n" "t" Clojure true user> (if () "t" "n" ) "t" Python False >>> "t" if [] else "n" 'n'

Ruby のクラスメソッドと特異クラスのメモ

(Ruby1.9.3) #クラスメソッド class Foo def self.bar p "foobar" end end Foo.bar #=> "foobar" #特異クラス class Hoge class << self def fuga p "hogefuga" end end end Hoge.fuga #=> "hogefuga"

ruby-mode で rcodetools を使った補完のメモ

(MacOSX10.8, Emacs24.2, ruby1.9.3[rbenv])自分の環境で Rsense がうまく補完してくれなくなってしまった *1 ので rcodetools を使ってやってみた。 auto-complete-ruby.el もうまくいかなかったのでシンプルな感じでやってみた。 やり方 インストール $ su…

簡単なカウンタをRubyとPythonで書いてみたメモ

Ruby (Ruby1.9.3) その1 class Counter def up @count ||= 0 @count += 1 end end count = Counter.new 5.times do p count.up end #=> 1 #=> 2 #=> 3 #=> 4 #=> 5 もっと簡単に書けそうな気がする その2(追記) Google先生に聞いたら、自分のブログに書…

CotEditer で行頭にナンバリングするスクリプトを Ruby で書いてみたメモ

(MacOSX10.3, Ruby1.9.3, CotEditer1.3.1) 行頭が『-』『+』『1.』の場合、ナンバリングするスクリプト CotEditor プロジェクト日本語トップページ - SourceForge.JP For example 行頭が『-』の場合の実行結果 - hoge - fuga - foo - bar #=> 1. hoge #=> 2.…

Rails console での [Time, DateTime, Date] の localtime などの挙動メモ

(Rails.3.2.8, Ruby1.9.3) irb(main):034:0> Time.now #=> 2012-12-23 13:55:02 +0900 irb(main):035:0> Time.current #=> Sun, 23 Dec 2012 04:55:06 UTC +00:00 irb(main):036:0> Time.current.localtime #=> 2012-12-23 13:55:11 +0900 irb(main):037:0> …

CotEditor に日付を挿入する (Ruby | Python)スクリプトを追加してみた

(MacOSX10.8, CotEditor1.3.1, Ruby1.9.3, Python2.7) CotEditor プロジェクト日本語トップページ - SourceForge.JP やり方 CotEditor のメニューバーのスクリプトアイコンから「スクリプトフォルダを開く」 そのフォルダにスクリプトファイルを作成 スクリ…

Emacs の ruby-mode でマジックコメントを変更するメモ

(MacOSX10.7, Emacs24.2, Ruby1.9.3) 問題 MacOSX の Emacs で濁点が分割する問題があって、それを回避するためにエンコーディングを以下な感じで utf-8-hfs にしてたら問題が。 (require 'ucs-normalize) (prefer-coding-system 'utf-8-hfs) (setq file-nam…

Emacs で run-ruby して irbを立ち上げて日本語入力するとエラーになる場合の対処メモ

(Emacs24.2, Ruby1.9.3, MacOSX10.7) 問題 Terminalでは正常動作 $ irb irb(main):001:0> RUBY_VERSION => "1.9.3" irb(main):002:0> Encoding.default_external => #<Encoding:UTF-8> irb(main):003:0> a = "あ" => "あ" irb(main):004:0> Emacs の run-ruby で irb 立ち上</encoding:utf-8>…

Rubyのハッシュのメモ

irb(main):011:0> d = {"zero"=>0, "one"=>1, "two"=>2} => {"zero"=>0, "one"=>1, "two"=>2} irb(main):012:0> d["zero"] => 0 irb(main):013:0> d.keys => ["zero", "one", "two"] irb(main):014:0> d.values => [0, 1, 2] irb(main):015:0> d.store("thre…

Ruby の スタイルチェックを tailor 使って Emacs の Flymake でやってみた

(Emacs24.1, Ruby1.9.3) gem Install tailor turboladen/tailor · GitHub "A RubyGem that allows for checking standard styling of Ruby files. " gem install tailor init.el ;; FlymakeTailorRuby (defun flymake-tailor-ruby-init () (let* ((temp-file…