Lisp-program-structure
LISP-プログラム構造
LISP式は、シンボリック式またはs式と呼ばれます。 s-expressionsは、3つの有効なオブジェクト、アトム、リスト、および文字列で構成されています。
すべてのs式は有効なプログラムです。
LISPプログラムは、*インタープリター*または*コンパイル済みコード*で実行されます。
インタープリターは、反復評価ループでソースコードをチェックします。これは、読み取り-評価-印刷ループ(REPL)とも呼ばれます。 プログラムコードを読み取り、評価し、プログラムから返された値を出力します。
簡単なプログラム
s-expressionを記述して、3つの数値7、9、および11の合計を見つけましょう。 これを行うには、インタープリタープロンプトで入力します。
(+ 7 9 11)
LISPは結果を返します-
27
コンパイルされたコードと同じプログラムを実行する場合は、myprog.lispという名前のLISPソースコードファイルを作成し、その中に次のコードを入力します。
(write (+ 7 9 11))
実行ボタンをクリックするか、Ctrl + Eを入力すると、LISPはすぐに実行し、返される結果は-
27
LISPはプレフィックス表記を使用します
LISPは* prefix notation。*を使用していることに気づいたかもしれません。
上記のプログラムでは、+記号は数字の合計プロセスの関数名として機能します。
プレフィックス表記では、演算子はオペランドの前に記述されます。 たとえば、式
a * ( b + c )/d
として書かれます-
(/( *a (+ b c) ) d)
別の例を見てみましょう、60 ^ o ^ Fの華氏温度を摂氏スケールに変換するコードを書きましょう-
この変換の数式は次のようになります-
(60* 9/5) + 32
main.lispという名前のソースコードファイルを作成し、次のコードを入力します。
(write(+ (* (/9 5) 60) 32))
[実行]ボタンをクリックするか、Ctrl + Eを入力すると、LISPはすぐに実行し、返される結果は-
140
LISPプログラムの評価
LISPプログラムの評価には2つの部分があります-
- リーダープログラムによるプログラムテキストのLispオブジェクトへの翻訳
- 評価プログラムによるこれらのオブジェクトに関する言語のセマンティクスの実装
評価プロセスは、次の手順を実行します-
- リーダーは、文字列をLISPオブジェクトまたは s-expressions に変換します。 評価者は、s式から構築されるLisp フォーム*の構文を定義します。 この第2レベルの評価では、どの s-expressions がLISP形式であるかを決定する構文を定義します。
- 評価者は、有効なLISP形式を引数として受け取り、値を返す関数として機能します。 これが、式/フォーム全体を引数として評価者に送信しているため、LISP式をかっこで囲む理由です。
「Hello World」プログラム
新しいプログラミング言語を学ぶことは、その言語で全世界に挨拶する方法を学ぶまで、実際にはうまくいきません!
したがって、main.lispという名前の新しいソースコードファイルを作成し、次のコードを入力してください。
(write-line "Hello World")
(write-line "I am at 'Tutorials Point'! Learning LISP")
実行ボタンをクリックするか、Ctrl + Eを入力すると、LISPはすぐに実行し、返される結果は-
Hello World
I am at 'Tutorials Point'! Learning LISP