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

Curlプログラミングの落とし穴

curlでいざアプリケーションを開発するとなった際に戸惑う人は少なくありません。新しく覚える言語で馴染みがなかったり、書籍やネット上の情報が少ないといった原因が考えられますが、もうひとつ大きな別の原因があります。 それは、UIがHTMLであるシンクラ…

Curlプログラミングの始め方

今回はcurlプログラミングの始め方です。 バージョン5.0から提供されている無償版の開発環境Curl/Personal IDEのWindows版のインストールと、インストール後の設定について紹介します。 (1)IDEのインストール以下のサイトからCurl/Personal IDEをダウンロ…

type-switch

実行時の値のデータ型によって処理を分岐する場合にはisaプリミティブが使用できます。 {if x isa Foo then ||xがFoo型だった場合の処理 elseif x isa Bar then ||xがBar型だった場合の処理 }データ型によって分岐した後の処理はキャストを伴うことが多いで…

オーバーロードはできません?(5)〜残余引数〜

残余引数を使うと、プロシージャやメソッドにおいて任意の数の引数を受け取ることができるようになります。 例えば、以下のように引数に任意の数のdouble値を受け取ってその合計を返すプロシージャを定義できます。 {define-proc {sum ...:double}:double le…

if-non-null

以下はnullチェックを行うコードの例です。 let str:#String = {get-possibly-null-string} {if str != null then {use-non-null-string {non-null str}} } このコードはif-non-nullマクロを使えば以下のように書けます。 non-nullマクロを使った非null型へ…

オーバーロードはできません?(4)〜any型+type-switch〜

今回はany型とtype-switchマクロを使用して、引数の型に応じて異なる処理を行わせる方法を紹介します。 any型とは、任意のデータ型を保持する変数に指定するデータ型です。any型として指定された変数*1には、クラス型だけでなくプリミティブ型、プロシージャ…