Next: , Up: Arguments   [Contents][Index]


1.8.1 Arguments’ Data Types

ある関数に引き渡すデータがもつべきデータ型は、その関数が使用する情報の種別に応じて異なります。数値を加算する+のような関数にたいする引数は、数値であるような値をもたなければなりません。別の種類のデータを引数として使用する関数もあります。

たとえばconcatは2つ以上のテキスト文字列の連結や結合を行い文字列を生成する関数であり、引数は文字列です。abcおよびdefという2つの文字列を連結(def)すれば、単一の文字列としてabcdefが生成されます。

(concat "abc" "def")

この式を評価すると、値として"abcdef"が生成されます。

substringのような関数は、引数として文字列と数値の両方を使用します。この関数は文字列の一部、つまり1つ目の引数の部分文字列(substring)をリターンします。受け取る引数は3つで1つ目の引数は文字列、2つ目と3つ目の引数は部分文字列の先頭(含む)と最後(含まない)を示す数値です。これらの数値は文字列先頭からの文字数(スペースや区切り文字を含む)を指定します。文字列内の文字は1ではなく0から数えることに注意してください。

たとえば以下の式を評価してみてください:

(substring "The quick brown fox jumped." 16 19)

エコーエリアに"fox"が表示されるはずです。式の引数は文字列と数値です。

substringに渡した文字列はスペースで区切られた複数の単語から構成されているとしても、それは単一のアトムであることに注意してください。Lispは2つのクォーテーションマークの間にあるものは、スペースも含めてすべて文字列の一部だとみなします。substring関数は他の方法では分割できないアトムを受け取ってその一部を抽出するので、これを一種のアトムシュレッダーと考えることができるでしょう。ただしsubstringに可能なのは引数の文字列からの部分文字列の抽出であり、数値やシンボルなど他のタイプのアトムからの抽出はできません。

This page has generated for branch:work/add_lispintr, commit:65845cf60c073f2f3182d1d07483530e9bbe1d96 to check Japanese translation.