Common Lispにおける例とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > Common Lispにおける例の意味・解説 

Common Lispにおける例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/26 23:40 UTC 版)

静的スコープ」の記事における「Common Lispにおける例」の解説

Common Lispは、静的スコープ一般的なルールとし、動的スコープ名前について明示が必要である。 (defvar *a*);; *a*動的スコープで値なしで宣言する。;; アスタリスクは名前の一部である。;; defvarは、以降のそれに対す束縛静的なものでなく、;; 動的なのである事を保証する。(setf *a* 5);; 変数 *a*整数 5 に設定する。(let ((*a* 3)) *a*); --> 3 ;; 明示的にletの中で上書きされた場合、*a*は3*a*; --> 5;; letの外に出るともとに戻る(defvar func-lex)(setf func-lex (let ((a 3))(lambda () a)));; 現在、静的スコープ内の3がlambda中に残っている;; したがって、(let ((a 5)) (funcall func-lex)); --> 3;; 外からaを書き換え呼び出しても、;; 保存され静的束縛 a = 3 がまだ残っており、;; それが有効になって答えは3となる;; 一方、*a*について考えると、(defvar func-dyn)(setf func-dyn (let ((*a* 3))(lambda () *a*)))(funcall func-dyn); --> 5;; *a*動的スコープ変数として宣言されているため、;; lambdaの中の *a* は常に;; その時点での最も外側変数を指すことになる。;; 静的スコープ束縛された *a* = 3 はlambda中に保存されない

※この「Common Lispにおける例」の解説は、「静的スコープ」の解説の一部です。
「Common Lispにおける例」を含む「静的スコープ」の記事については、「静的スコープ」の概要を参照ください。

ウィキペディア小見出し辞書の「Common Lispにおける例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Common Lispにおける例」の関連用語

Common Lispにおける例のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Common Lispにおける例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの静的スコープ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS