2018-07-01から1ヶ月間の記事一覧

μSchemeR の Ruby による実装を読む(その3 - クロージャ)

:lambda にクロージャを実装する前に、let文を実装します。 [:let, [[:x, 3], [:y, 2]], [:+, :x, :y]] は [[:lambda, [:x, :y], [:+, :x, :y]], 3, 2] と同等です。実装。単純です。:lambda に変換しているだけです。 def eval_let(exp, env) parameters, a…

μSchemeR の Ruby による実装を読む(その2 - 無名関数)

簡単な演算ができるようになったので、次に無名関数を実装してみます。具体的には、 [[:lambda, [:x, :y], [:+, :x, :y]], 3, 2] というような関数を評価することを考えます。これは Ruby でなら lambda do |x, y| x + y end.call(3, 2) みたいなものですね…

μSchemeR の Ruby による実装を読む(その1 - 簡単な演算)

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装【電子書籍】渡辺昌寛達人出版会発行日: 2013-04-15対応フォーマット: PDF, EPUB詳細を見る言語処理系のお勉強をしようと思って調べてみたところ、上の文書を見つけました。Ruby で Scheme の一…

数字のループ(Ruby)

何となくやってみました。 $ pry [1] pry(main)> 5.times {|i| puts i} 0 1 2 3 4 => 5 [2] pry(main)> (1..5).each {|i| puts i} 1 2 3 4 5 => 1..5 [3] pry(main)> 1.upto(5) {|i| puts i} 1 2 3 4 5 => 1 [4] pry(main)> for i in 1..5 [4] pry(main)* pu…

OpenGL で 3D迷路(Ruby)

以前、平面の迷路の中を歩いてみるようなプログラムを作りましたが(参照)、今回は迷路も立体にしてみました。検索するとよくある、平面の迷路を立体視した「3D迷路」ではなく、迷路そのものが立体なのです。3D迷路を歩くとでも申しましょうか。デフォルト…

『Ruby でつくる Ruby』を読む

このところ Rails 本以外の Ruby 本があまり出ないので、Rubyist としてはつまらないところもあるのですが、出る本は『プロを目指す人のための Ruby 入門』(このブログでの感想)などのように、いい本があります。本書は Ruby コミッターでもある通称「まめ…

GTK+ で落書き 17(Ruby)

アニメーションです。ランダムに次々と長方形で塗りつぶしていきます。単純だけれど、なかなかポップだと思うのですが。 自作の RubyGem 'oekaki' を使っています。Ruby コードは以下。 oekaki_sample21.rb require 'oekaki' Width, Height = 500, 500 Oekak…

無題

言語そのものはそうなのだけど、gem名がチャラい。いやチャラいことそのものはいいんだけど「これしたい」の「これ」でぐぐっても引っかからない。nokogiri って文字列を見てそれが何するか初見でわかる? https://t.co/57RYrCz7Qi— Dan Kogai (@dankogai) 20…