先日do~whileについて書きましたが,すみません.BlockContext Classです.
言い訳を言ってしまうと,method finderで検索したときにBlockClosureが見つかったので・・・.
BlockはBlockContext Classです.
さてここで,不思議におもったのはBlockContext と BlockClosureとありますが,これはなんのためにあるのでしょうか.
Closureでないみたいです.
関数型言語をほとんど知らないので,ラムダとClosureをしっかり理解していませんが,Squeakのブロックがそういうものだと思っていましたが,これはどうやら間違い?なのかもしれませんね.
う〜ん,VisualWorksもそうなのかな?
さて心配する前に目の前の卒研を取り組まないと.
参考 : ど素人のためのど素人によるSqueak入門
2007年11月30日金曜日
2007年11月29日木曜日
Seaside2.8
VisualWorksでSeaside2.8を動かすと速いと思っていました,どうやら2.8そのものが早いようです.
Squeakにも2.8をようやく入れてみました.ブラウザでのHaloがかわいいデザインになっていました.
とりあえず,サイトで変更点をさらっと読んでみる.(英語だから大変w)
The new backtracking system
Backtracking is no longer done by sending #registerObjectForBacktracking: or #registerForBacktracking but by implementing the #states selector. This allowed us to simplify and improve a lot of code. It's also very similar to the existing #children. You can have a look the implementors to see examples.
#registerForBacktracking がなくなり,
WAPresenter>>states でCollectionでbacktrackしたいオブジェクトを返せばいいようです.
children風でいいですね.
2.8はとくに何も入れなくて,日本語も扱えています?
ちょっと強い記事を読んだのですが,
Squeakers' Night in 未来パーティ 2.0 - yojik no life
その中に
P.S. そんなに活用している「継続」ですが、将来廃止される予定です!!
えええ!本当ですか?
かなり困ります.
今のうちに他の継続も探さないといけないのかな・・・.
Squeakにも2.8をようやく入れてみました.ブラウザでのHaloがかわいいデザインになっていました.
とりあえず,サイトで変更点をさらっと読んでみる.(英語だから大変w)
The new backtracking system
Backtracking is no longer done by sending #registerObjectForBacktracking: or #registerForBacktracking but by implementing the #states selector. This allowed us to simplify and improve a lot of code. It's also very similar to the existing #children. You can have a look the implementors to see examples.
#registerForBacktracking がなくなり,
WAPresenter>>states でCollectionでbacktrackしたいオブジェクトを返せばいいようです.
children風でいいですね.
2.8はとくに何も入れなくて,日本語も扱えています?
ちょっと強い記事を読んだのですが,
Squeakers' Night in 未来パーティ 2.0 - yojik no life
その中に
P.S. そんなに活用している「継続」ですが、将来廃止される予定です!!
えええ!本当ですか?
かなり困ります.
今のうちに他の継続も探さないといけないのかな・・・.
2007年11月28日水曜日
Squeakでdo~while文
Javaを勉強しています.
do~while文がありました.
Squeakでdo~whileってあるのかなって思ったので(まぁあると思いますがw),探してみました.
(BlockContext Classでした.すみません)
counter := 0.
[counter := counter + 1.
Transcript cr;show:counter]doWhileTrue:[counter < 10].
1
2
3
4
5
6
7
8
9
10
OKですね.
ついでにBlockClosure>>whileFalse:というのも発見.
面白いですね.
do~while文がありました.
Squeakでdo~whileってあるのかなって思ったので(まぁあると思いますがw),探してみました.
BlockClosureクラスだと予測.
ありましたw
ありましたw
(BlockContext Classでした.すみません)
counter := 0.
[counter := counter + 1.
Transcript cr;show:counter]doWhileTrue:[counter < 10].
1
2
3
4
5
6
7
8
9
10
OKですね.
ついでにBlockClosure>>whileFalse:というのも発見.
面白いですね.
2007年11月25日日曜日
2007年11月24日土曜日
Squeakで入力,出力
あるプログラミング言語の本を読んでいたら,気がついたこと.
入門書の始めに出力と入力があるが,出力はいいとして,入力というのはプログラム初心者にとって本当はかなり高度な話ではないかと思った.
そうではあるものの,Squeakで入力した文字を出力することをやってみた.
|io|
"入力"
io := FillInTheBlank request:''.
"出力"
Transcript cr;show:io.
どっかの言語と比べると非常に簡単だ.
入門書の始めに出力と入力があるが,出力はいいとして,入力というのはプログラム初心者にとって本当はかなり高度な話ではないかと思った.
そうではあるものの,Squeakで入力した文字を出力することをやってみた.
|io|
"入力"
io := FillInTheBlank request:''.
"出力"
Transcript cr;show:io.
どっかの言語と比べると非常に簡単だ.
2007年11月23日金曜日
VisualWorksの謎 [その2] の答え
前回まで書いていた謎について,紹介してあるブログを発見.
名前空間 - VisualWorks
やはり名前空間のようです.
詳しくは紹介したサイトに書いています.
ただ途中から僕のレベルでは途中からちょっと分からなくなりました.
VisualWorksをよく分からないうちに新しいことを学ぶからでしょう.
もうちょっとスキルがついたら読もうと思います.
オブジェクト指向も最初は難しいと思いましたが,今ではSqueakのおかげで普通に使えます.(むしろ他の言語はもう忘れて・・・w)
やっぱりSmalltakは楽しい.
名前空間 - VisualWorks
やはり名前空間のようです.
詳しくは紹介したサイトに書いています.
ただ途中から僕のレベルでは途中からちょっと分からなくなりました.
VisualWorksをよく分からないうちに新しいことを学ぶからでしょう.
もうちょっとスキルがついたら読もうと思います.
オブジェクト指向も最初は難しいと思いましたが,今ではSqueakのおかげで普通に使えます.(むしろ他の言語はもう忘れて・・・w)
やっぱりSmalltakは楽しい.
2007年11月17日土曜日
VisualWorksの謎 [その2]
VisualWorksも使ってみたい!ということでダウンロードしたのはいいのですが,Squeak Smalltalkとはやはりちょっと違う様子.
VisualWorksのクラス定義はCore.Timeは
Smalltalk.Core defineClass: #Time
superclass: #{Core.Magnitude}
indexedType: #none
private: false
instanceVariableNames: 'hours minutes seconds '
classInstanceVariableNames: ''
imports: ''
category: 'Magnitude-General'
となっていた.
Squeak Smalltalkのように
Magnitude subclass: #Time
instanceVariableNames: 'seconds nanos'
classVariableNames: ''
poolDictionaries: 'ChronologyConstants'
category: 'Kernel-Chronology'
ではない.
う〜ん名前空間みたいなのがあるようですね・・・.
プール辞書がない?,privateみたいなものが存在しています(これはJavaのあれなのか?).
Squeakの親戚といっていても,似ているようで似ていないのかな.
おとなしくSqueakだけにしようかな.
VisualWorksのクラス定義はCore.Timeは
Smalltalk.Core defineClass: #Time
superclass: #{Core.Magnitude}
indexedType: #none
private: false
instanceVariableNames: 'hours minutes seconds '
classInstanceVariableNames: ''
imports: ''
category: 'Magnitude-General'
となっていた.
Squeak Smalltalkのように
Magnitude subclass: #Time
instanceVariableNames: 'seconds nanos'
classVariableNames: ''
poolDictionaries: 'ChronologyConstants'
category: 'Kernel-Chronology'
ではない.
う〜ん名前空間みたいなのがあるようですね・・・.
プール辞書がない?,privateみたいなものが存在しています(これはJavaのあれなのか?).
Squeakの親戚といっていても,似ているようで似ていないのかな.
おとなしくSqueakだけにしようかな.
2007年11月16日金曜日
VisualWorks謎
VisualWorksにSeaside
sumim'sさんにVisualWorksについて教えていただいてから(今のSmalltalkは? - 参考),すごくVisualWorksが気になっています.
前回入れたVisualWorksにSeasideを入れても見ました.
Public RepositoryからSeasideWebforKitをloadで完了.
SeasideのSample codeとして含まれているalltest内のlinkを実行.
おお!何か早い.
Seaside2.8ということもあるかもしれませんが,すごくいい反応です.
Squeakでやるのはもちろんですが,こちらもいいですね.
春休みにVisualWorksで何か作ってみるとのいいかもしれません.
前回入れたVisualWorksにSeasideを入れても見ました.
Public RepositoryからSeasideWebforKitをloadで完了.
SeasideのSample codeとして含まれているalltest内のlinkを実行.
おお!何か早い.
Seaside2.8ということもあるかもしれませんが,すごくいい反応です.
Squeakでやるのはもちろんですが,こちらもいいですね.
春休みにVisualWorksで何か作ってみるとのいいかもしれません.
2007年11月15日木曜日
パッケージをネットワークから取得する言語
VisualWorksのPublic Repository,Squeak SmalltalkのSqueakMapを見ていると,本当に僕みたいな人にはありがたいと思います.
RubyもGemsがあって便利ですが,僕にはこちらの方がいいですね.
なんだかんだ言って,僕もやはりGUI世代なんでしょうね・・・.
それにしてもRubyは春以来勉強していないので,ほとんど忘れてしまいました.
やっぱりSqueak Smalltalkを見ているとこちらの方が落ち着くので,結局卒研もそちらなのですが,やはり他の言語も書けないと世の中に通じないのかなって思ってしまいます.
もっとSmalltalkを理解するためにLisp,Haskellかな.
それともやはりJavaかC++をやるべきだろうか.
Pythonというのもいいのですが,やはり僕の今の能力だとたくさんの言語を学べる力がないのでどれかに絞りたいと思っています.
それにしてもプログラミング言語というのは本当に面白いですね.可能であれば全部知りたい.
RubyもGemsがあって便利ですが,僕にはこちらの方がいいですね.
なんだかんだ言って,僕もやはりGUI世代なんでしょうね・・・.
それにしてもRubyは春以来勉強していないので,ほとんど忘れてしまいました.
やっぱりSqueak Smalltalkを見ているとこちらの方が落ち着くので,結局卒研もそちらなのですが,やはり他の言語も書けないと世の中に通じないのかなって思ってしまいます.
もっとSmalltalkを理解するためにLisp,Haskellかな.
それともやはりJavaかC++をやるべきだろうか.
Pythonというのもいいのですが,やはり僕の今の能力だとたくさんの言語を学べる力がないのでどれかに絞りたいと思っています.
それにしてもプログラミング言語というのは本当に面白いですね.可能であれば全部知りたい.
2007年11月12日月曜日
Transcript
先日の丸めを再び調べ始めているのですが(う〜ん,よくわからない・・・),ちょっと本当の親戚VisualWorksを使ってみたのですが,そのとき気がついたのがTranscirptがSqueakと少し違うようです.
Squeakは例えば
Transcript cr;show:1.
で引数にobjectを取れるのですが,
VisualWorksはStringのみみたいです.
Transcript cr;show:1. "error!!"
VisualWorksでSqueakみたいにTranscriptを使うには
Transcript cr;printOn:1.
でよさそうです.
他の方法としてはSpTranscript>>(class)show:でもよさそうです.
SqueakはTranscriptはTranscriptStreamでできているようですが,VisualWorksはTextCollectorでできているみたいです.
ちなみにSqueakのTranscriptStream>>show:のコメントには
"TextCollector compatibility"
と書いてあります.
いつもお世話になっているmethodですが,こうやって見てみると面白いですね.
Squeakの直感的な感じもいいですが,VisualWorksの豊富なClassたちも魅力的ですね.
言語を作る人ってやっぱりすごいなと思います.
さて丸めを調査しないと・・・.
Squeakは例えば
Transcript cr;show:1.
で引数にobjectを取れるのですが,
VisualWorksはStringのみみたいです.
Transcript cr;show:1. "error!!"
VisualWorksでSqueakみたいにTranscriptを使うには
Transcript cr;printOn:1.
でよさそうです.
他の方法としてはSpTranscript>>(class)show:でもよさそうです.
SqueakはTranscriptはTranscriptStreamでできているようですが,VisualWorksはTextCollectorでできているみたいです.
ちなみにSqueakのTranscriptStream>>show:のコメントには
"TextCollector compatibility"
と書いてあります.
いつもお世話になっているmethodですが,こうやって見てみると面白いですね.
Squeakの直感的な感じもいいですが,VisualWorksの豊富なClassたちも魅力的ですね.
言語を作る人ってやっぱりすごいなと思います.
さて丸めを調査しないと・・・.
2007年11月10日土曜日
丸め
大学の友人にSqueakで少数以下2桁まで表示させるにはどうすればいいかと聞かれたので,
1.2450 printShowingDecimalPlaces:2 '1.25'
よしと思っていたのですが・・・
1.2347 printShowingDecimalPlaces:2 '1.22'
なんだこれはと思い.大学で学んだ工業規格だと確かこれだと1.23になるはず,他にないか探索
1.2347 asScaledDecimal:2 1.23s2
ScaledDecimalとして返ってくる,何かよくわからないな.返ってきたものはどうやって扱えばいいのか・・・.
他ので実験
1.2450 printShowingDecimalPlaces:2 '1.25'
1.2350 printShowingDecimalPlaces:2 '1.22'
よくわかりません.
偶数丸めでもなさそう・・・.
1.2350 asScaledDecimal:2 1.23s2
1.2450 asScaledDecimal:2 1.24s2
こちらもそうじゃないみたい.
とりあえず,もう寝ないといけないので(学生は学生なりに忙しいのです)明日にします.
1.2450 printShowingDecimalPlaces:2 '1.25'
よしと思っていたのですが・・・
1.2347 printShowingDecimalPlaces:2 '1.22'
なんだこれはと思い.大学で学んだ工業規格だと確かこれだと1.23になるはず,他にないか探索
1.2347 asScaledDecimal:2 1.23s2
ScaledDecimalとして返ってくる,何かよくわからないな.返ってきたものはどうやって扱えばいいのか・・・.
他ので実験
1.2450 printShowingDecimalPlaces:2 '1.25'
1.2350 printShowingDecimalPlaces:2 '1.22'
よくわかりません.
偶数丸めでもなさそう・・・.
1.2350 asScaledDecimal:2 1.23s2
1.2450 asScaledDecimal:2 1.24s2
こちらもそうじゃないみたい.
とりあえず,もう寝ないといけないので(学生は学生なりに忙しいのです)明日にします.
登録:
投稿 (Atom)