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

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

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です どうにも苦手な Perl の勉強をかねて。Perl のオブジェクトは「blessed reference」で、かつ、bless しなおせば新しいクラス(パッケージ)に属させること…

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

インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です 動的なプロトタイプベース言語の特徴として、Io は他の言語の class スロットにあたる protos スロット(移譲先を収めた特殊なスロット)の内容を自由に変…

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

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 も…

「年子平方数の最初の21個を列挙する」を Squeak Smalltalk で

2004年8月号 Cマガ電脳クラブ 第161回 年子平方数 ┌─────────────────────────────┐ │ 偶数桁の平方数(ある数を2乗してできる数)で、それぞれ同じ│ │桁数になるように左右半分に割ったとき、その2つの数が連続し│ │た2数になっているものを、「年子(とし…

 ある人が会社員になったり、学生になったりすることを Smalltalk で

つまり会社員、学生をクラスとして定義した場合には、ある人が会社員になったり、学生になったりすることをオブジェクト指向プログラミング言語では直接表現できないのです。 オブジェクト指向は本当に「オブジェクト」指向か? OOとはなにか - みねこあ で…

 「パソコンの父」に京大名誉博士号を贈呈…の記事を勝手に補完

GUI

アランさんは1960年代からパソコンの研究を始め、70年代にプログラミング言語を用いた世界初のパソコンソフトを開発。コンピューターの発展に大きな功績を残した。 http://www.iza.ne.jp/news/newsarticle/it/internet/214298 アランさんは1960年代か…