見えて来たXcode swift playgroundの実体 [Xcode]

 次のコードは Xcode6-beta3 help から入って Documentation > Xcode 6 library > Languages & Utilities > swift > Guides >The Swift Programing Language の中にある Write a name inside angle brackets to make a generic function or type.のコードで原文はこうなっていて:

  • func repeat<ItemType>(item: ItemType, times: Int) -> ItemType[] {
  •     var result = Array<ItemType>()
  •     for i in 0..times {
  •         result += item
  •     }
  •     return result
  • }
  • repeat("knock", 4)

これを、日本語に置き替えられる分を置き替えてみました。

func 繰り返す<アイテム型>(アイテム: アイテム型, 回数: Int) -> [アイテム型] {

    var 結果 = [アイテム型]()

    for i in 0..<回数 {

        結果 += アイテム

    }

    return 結果

}

繰り返す("トントン", 4)


これで同様に右サイドに値を表示します。英語のコードに慣れた人なら、見た感じ英語の方が見易いかもしれません。日本語に置き替えられると言うことは、関数でも型でもオーバーロードできる変数型(自分が付けた名前ですので、そんな呼び方は認知されていません。)である事を意味しているのですが、キーワードを除けば日本語ですべて置き替えられます。キーワード以外の置き替えられないものはoption keyを押しながらクリックすればどこで定義しているか分かるようになっているし、プログラムを有る程度熟知している人であれば、勘で分かると思います。で、swift ではメイン関数も無ければセミコロンも無いし、pythonに近いとはいえタブとか一行開けるとかのルールも有りません。html もありませんが、タグで仕切られており、<html></html>は何らかの形でも必要です。でも、これは有りません。また、スクリプトでも最低限ターミナル端末や、ウェブであればブラウザが無ければなりませんが、有りません。と言うことは、このエディタでもあるplaygroundそのものが、ブラウザでもあり、端末でもありmain関数機能を備えていると言えないでしょうか。だとしたら、ちょっとどころか、大部欠除した思考で今試している事になります。環境が今迄とは違うのです。例えば海で暮らして来た生き物が急に山岳で暮らすようになったとか、そのくらいの違いが有ると思って掛からないと、ダイヤモンドを見つけたのに、単なる石だと思って捨ててしまうようなものだと思います。まあ、ダイヤモンドは使い方を知らなければ、単なる石ですけど。それではそうならないためにも、ちょっと別の角度から攻めてみましょう。簡単になったとはいえ、初めてプログラムを覚えたい人に取っては内部で何が行われているかが逆に見えにくいなっていると思うので、このサンプルを持ち出したのですが、そもそもplaygroundはどの時点で右サイドに表示しているかと言うと、関数を定義した時点ではまだ表示しません。またその間に構文エラーが有れば教えてはくれます。と言うことは、絶えず入力をレシーブしている事になります。この辺は、xcode5でもありました。違いは、この関数を func 抜きで入力した時です。今迄はこれ、main関数内でなければ実行時エラーです。ランタイムエラーと言った方が良いでしょうか。で、間違いが無ければ通常コンソールに表示されるので、右サイドがコンソールであり、ファイルブラウザ機能も備えているので、その更に右または下にクイックルック表示も出来るというわけで、それが今迄のクイックルックより機能が上で、スライダー付きで該当する値迄 php ウェブアプリのように表示する事も出来る、でも待ってくださいよ、phpMyAdminなんかは、mysqlのようなデータベースサーバが動いていないと、表示出来ないとなればその代わりをしているのが、sqlite3サーバ辺りでしょうか。まあ、macの場合バックグラウンドでいつでも使っているようですけど。で、コードに戻りますが、通常C, C++, Objective-Cでは関数のパラメータの並びは、main( int, char )ですが、ここでは java にあるような String, int の形です。どう言う事でしょうか。さあ、今迄とは違ってどこか不自然だと感じて来た原因がここで明らかとなりそうです。つまり、デバッガーまたはコンパイラーは今迄とは逆に鏡写しのように読んでいる事になりそうです。なので、クイックルック表示ではコメントも同じ一行の文として表示しているし、読み方はcom.apple.finder に見るような感じです。これは、ウェブブラウザーではhttp://finder.apple.com な訳です。人間はそんな逆には読む事はしませんが、相手は機械です。命令通りこなしているに過ぎません。しかし、人間ってみんな自分と同じ思考で物事を考えていると思ったら大間違いだと思います。地上には色んな人種が共存しているのであり、言語は逆さまな場合があります。例えば英語と日本語。英語を日本語に直す場合、片言の言葉を抜きにすれば逆から訳していくと旨く行く場合が有り、つまり逆に思考回路が働いていることになります。思考回路とはフロー制御の事であり、血液の流れでもあります。なので、機械とは違って肌が合わない嫌悪感が働くのが当然なのでしょうが、そこは理性で制御する事は可能です。


なんか話がだいぶ反れた感が有るので、ここで区切ります。



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。