2009-01-22から1日間の記事一覧

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で

id:sumim:20090121:p2 の続き。はたしてどんな言語にこの種の機能が備わっているのか興味を持ったので調べて書いてみることにしました。ただ、会社員と学生の例のままではワンニャン同様、そういうことが出来て何が嬉しいのかイメージしにくいと思うので、Co…

インスタンスが属するクラスをあとから変更する操作を Squeak Smalltalk で

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です Object subclass: #Cartesian instanceVariableNames: 'x y' Cartesian >> x ^x Cartesian >> y ^y Cartesian >> setX: newX y: newY x := newX. y := newY…

インスタンスが属するクラスをあとから変更する操作を CLISP で

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です (defclass <cartesian> () ((x :initform 0 :initarg :x) (y :initform 0 :initarg :y))) (defclass <polar> () ((r :initform 0 :initarg :r) (theta :initform 0 :initarg :</polar></cartesian>…

インスタンスが属するクラスをあとから変更する操作を Python で

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です import math class Cartesian: def __init__(self, x = 0, y = 0): self.x = x self.y = y class Polar: def __init__(self, r = 0, theta = 0): self.r = …

インスタンスが属するクラスをあとから変更する操作を Ruby で

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です Ruby では evil-ruby の #class= が必要になります。また、Ruby には Smalltalk の #become: に相当する機能もないので、Python で使った transmogrify も…