あなたが知っていなければならない60のPicolisp機能


ようこそ“あなたは知っている必要があります60 picolispの機能”の第2部に戻る.
今回は、変数の定義方法を定義し、どのように動作するか、どのように内部表現を理解するかを説明します.
すべての例はPicolispで実行できますREPL . あなたが沿って続くならば、タイプしてくださいpil + コンソールでREPLを開く.チェックhere さらに基本的なコマンド.

変数の定義
変数はコマンドで設定できますsetq .
: (setq A 3)
-> 3
シンボルの値は次のようにREPLで確認できます.
: A
-> 3
私たちはA 3に評価します.定義されていないシンボルの値はNIL .
: B
-> NIL
さて、もっと複雑なシンボルを使ってみましょう.シンボルを設定しましょうCountry to Japan . それを試してみましょう.
: (setq Country Japan)
-> NIL
: Country
-> NIL
Country is NIL - 何が起こったのですか.我々が学んだようにprevious section , 基本的にすべてのリストと数字を除いて、シンボルです.インタプリタJapan はシンボルであり、評価できる.しかしJapan 値がないので、評価を返しますNIL , and Country にも設定されます.
さあ、セットしましょうCountry シンボルにJapan 自身.このため、単一引用符を使用して評価をエスケープする必要があります.' ). それから、それはシンボルJapan 「そのように」
: (setq Country 'Japan)
-> Japan
: Country
-> Japan
: Japan
-> NIL
これは重要な違いです.
シンボルの値はval :
: (val 'Country)
-> Japan
: (val 'Japan)
-> NIL
我々は戻って来るquote ( ' ) 機能をカバーするとき、再び機能しますlambda calculus ) その他の関数プログラミング
任意の変数には、put . さあ、シンボルを埋めましょうJapan いくつかの重要な値のペアで、それは値“JP”を与えます.
: (put 'Japan 'language "Japanese")
-> Japanese
: (put 'Japan 'continent "Asia")
-> Asia
: (put 'Japan 'island T)
-> T
: (setq Japan "JP")
-> "JP"
プロパティの値をチェックするにはget .
: (get 'Japan 'language)
-> "Japanese"
すべてのプロパティで変数を出力するには、コマンドを使用しますshow .
: (show 'Japan)                    
Japan "JP"
   language "Japanese"
   island
   continent "Asia"

内部表現
何が起こっているかを完全に理解するために、我々がConcept and Data types ポスト.シンボルの内部表現ですJapan :

キー“島”は値セルを必要としないことに注意してくださいT , なぜなら、その存在は既にそれがT .
今、我々は間の違いを見ることができますJapan and 'Japan :
  • Japan の内容に評価しますVAL 「JP」セルです.
  • 'Japan シンボルへのポインタを返すJapan , すなわち、我々がトップで見る「シンボル」矢.
  • この違いを理解するのは、例えばリストのような複雑な操作を議論するときにとても役立つでしょう.
    おめでとう、今は基本的な算術演算を行うことができますPicolispの変数を定義することができます知っている.次のポストの入力/出力とループを続けましょう!

    ソース
  • カバー写真:Gerd Altmann on Pixabay

  • https://software-lab.de/doc/index.html

  • https://software-lab.de/doc/tut.html#fun
  • https://picolisp.com/wiki/?RosettaCodeAnalysis