Lisp-basic-syntax

提供:Dev Guides
移動先:案内検索

LISP-基本的な構文

LISPの基本的な構成要素

LISPプログラムは3つの基本的なビルディングブロックで構成されています-

  • atom

  • list

  • ひも

    *atom* は、連続する文字の数または文字列です。 数字と特殊文字が含まれています。

以下は、いくつかの有効な原子の例です-

hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
  • リスト*は、括弧で囲まれた一連のアトムおよび/または他のリストです。

以下はいくつかの有効なリストの例です-

( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
*string* は、二重引用符で囲まれた文字のグループです。

以下は、いくつかの有効な文字列の例です-

" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "

コメントを追加する

セミコロン記号(;)は、コメント行を示すために使用されます。

例えば、

(write-line "Hello World") ; greet the world

; tell them your whereabouts

(write-line "I am at 'Tutorials Point'! Learning LISP")

実行ボタンをクリックするか、Ctrl + Eを入力すると、LISPはすぐに実行し、返される結果は-

Hello World

I am at 'Tutorials Point'! Learning LISP

次へ進む前の注目すべきポイント

以下は、注意すべき重要な点の一部です-

  • LISPの基本的な数値演算は、+、-、*、および/です。
  • LISPは、関数呼び出しf(x)を(f x)として表します。たとえば、cos(45)はcos 45として記述されます。
  • LISP式は大文字と小文字を区別せず、cos 45またはCOS 45は同じです。
  • LISPは、関数の引数を含むすべてを評価しようとします。 3種類の要素のみが定数であり、常に独自の値を返します
  • 番号
  • 論理的な真を表す文字* t、*。
  • 空のリストと同様に、論理falseを表す値* nil、*。

LISPフォームについてもう少し

前の章で、LISPコードの評価プロセスは次のステップを踏むことを述べました。

  • リーダーは、文字列をLISPオブジェクトまたは s-expressions に変換します。 評価者は、s式から構築されるLisp フォーム*の構文を定義します。 この第2レベルの評価は、どのS式がLISP形式であるかを決定する構文を定義します。

これで、LISPフォームが可能になります。

  • アトム
  • 空または非リスト
  • 最初の要素として記号を含むリスト

評価者は、有効なLISP形式を引数として受け取り、値を返す関数として機能します。 これが、式/フォーム全体を引数として評価者に送信しているため、* LISP式をかっこで囲む理由です。

LISPの命名規則

名前または記号は、空白、開き括弧と閉じ括弧、二重引用符と単一引用符、バックスラッシュ、コンマ、コロン、セミコロン、垂直バー以外の任意の数の英数字で構成できます。 名前にこれらの文字を使用するには、エスケープ文字(\)を使用する必要があります。

名前には数字を含めることができますが、数字だけで読み取られるため、完全に数字で構成されるわけではありません。 同様に、名前にピリオドを含めることができますが、ピリオドだけで名前を作成することはできません。

単一引用符の使用

LISPは、関数の引数やリストメンバーを含むすべてを評価します。

時には、文字どおりアトムまたはリストを取得する必要があり、それらを評価したり、関数呼び出しとして処理したりしないようにします。

これを行うには、アトムまたはリストの前に単一引用符を付ける必要があります。

次の例はこれを示しています。

main.lispという名前のファイルを作成し、次のコードを入力します。

(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))

実行ボタンをクリックするか、Ctrl + Eを入力すると、LISPはすぐに実行し、返される結果は-

single quote used, it inhibits evaluation
(* 2 3)
single quote not used, so expression evaluated
6