「サマーウォーズ」はこちら

Powered by Ayapon RSS! オススメ アフィリエイト テレビ オークション

2008年02月19日

Schemeに挑戦8 関数その2引数

関数には引数がつきものです。
Schemeでも、引数はしてできます。

書き方は、

(define 関数名 (lambda (引数) (処理))

という形になります。

例えば、

(define tashizan (lambda (x y) (+ x y)))

と記述すると、関数のtashizanが定義されます。その説明が、lambdaの部分に書いてあります。
引数が、xとyの二つが定義されています。
後ろの部分で、xとyが足し算するように設定されているので、xとyが足し算をされて、出力されます。

MIT/GNU Schemeでは、上のプログラムを入力して実行した後に、

(tashizan 3 5)

と入力して、実行します。
tashizanという関数に、引数を指定しています。
3がxに、5がyに入って、実行されます。


引数には、任意の数を指定することもできます。
書き方は、lambdaの部分を、

(lambda (引数 . 任意の引数) (処理))

という形に記述することで可能になります。
「.」以降が任意の引数になります。

例えば、

(define number (lambda (a . b) (list a b)))

と入力すると、関数のnumberを呼び出す際に、引数をいくつも指定することができます。
2番目以降の引数は「.」の後ろにある、bに格納されます。
bに格納される時は、list形式で格納されます。

上の関数を定義した後に、

(number 1 2 3 4 5 6 7)

を実行すると、

(1 (2 3 4 5 6 7))

が帰ってきます。
必須の2つ目以降の任意の引数は、全てlistに格納されます。


文章がとてもわかりにくくて、申し訳ありません。
今後、理解が深まってきたら、書き直します。
posted by kafuca at 23:55 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。