継続 概要

継続

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/11 06:13 UTC 版)

概要

計算一般における継続

Schemeによる次の式を考える:

(+ 4 (+ 1 2))

この式を評価する際、まず (+ 1 2) が計算され、すなわち 1+2 が計算され、次にその結果に4を足して全体の計算結果が求められる。(+ 1 2) の評価が行われた段階での「残りの計算」を表現すると、

(lambda (v) (+ 4 v))

のようになる[3]。この式はすなわち、値 v を引数に取り、それに4を足した値を返す関数である。実際、この後 (+ 1 2) の計算結果が v に代入されて、4を足した値が最終的に計算結果が求められるため、この関数は確かに (+ 1 2) を評価する段階での「残りの計算」の表現である。

call/cc

Schemeの call-with-current-continuation (call/cc と省略される) は、その時点での継続を引数として関数を呼び出す手続きである。Schemeの言語仕様書(R7RS[4])には「もっとも単純な例」として次のコードが載っている:

(define list-length
  (lambda (obj)
    (call-with-current-continuation
      (lambda (return)
        (letrec ((r
              (lambda (obj)
                (cond ((null? obj) 0)
                  ((pair? obj)
                    (+ (r (cdr obj)) 1))
                  (else (return #f))))))
          (r obj))))))

このコードは、真正な(終端が空リストである)リストが渡された際にはそのリストの要素数を数えて返し、そうでない場合はfalse値を返す。

goto文を持つ言語の意味論

継続の概念はgoto文を持つ言語に意味論を与える。goto文を持たない場合、意味論は例えば命令文 γ、変数に対する値の割り当て ρ、抽象機械の状態遷移 θ ∊ [SS] (S は機械の状態空間を表す) を用いて

のように与えられる[5][6]。この意味論において、2つの命令の逐次実行は2つの状態遷移の合成として表すことができるが、goto文が存在する言語の場合、goto文の直後の命令は、goto文を実行した直後に実行されるわけではないため、少なくともそのように意味論を与えることはできない。


goto文を持つような言語において、意味論を与える写像 は例えば、命令文の集合 Cmd、環境の集合 Env、継続の集合 C、機械の状態の集合 S を用いて次のような型を持つ:

ここで継続は C = [SS] すなわち状態の遷移として、また環境 Env を満たすようなラベルの集合 D と識別子の集合 Id を用いて Env = [IdD] と表される。命令文 γ と環境 ρ に対して、 は継続を受け取って継続を返す関数の形となる。


この設定の下でgoto文はラベルの識別子 に対して

のように実装される。ここで とは C への射影であり、動的な型検査としての働きを持つものである[5]


  1. ^ a b Reynolds, John C. (1993-11). “The discoveries of continuations” (英語). LISP and Symbolic Computation 6 (3-4): 233–247. doi:10.1007/BF01019459. ISSN 0892-4635. http://link.springer.com/10.1007/BF01019459. 
  2. ^ Naur, Peter (1963-06). “The design of the GIER ALGOL compiler Part I” (英語). BIT 3 (2): 124–140. doi:10.1007/BF01935579. ISSN 0006-3835. http://link.springer.com/10.1007/BF01935579. 
  3. ^ Scheme: Continuations and exceptions”. CSE 341 : Programming Languages Winter 2004 (Lecture Notes). University of Washington, Department of Computer Science and Engineering. 2022年5月30日閲覧。
  4. ^ Revised7 Report on the Algorithmic Language Scheme”. Scheme Working Group 1. 2022年5月31日閲覧。
  5. ^ a b Strachey, Christopher; Wadsworth, Christopher P. (2000). “Continuations: A Mathematical Semantics for Handling Full Jumps”. Higher-Order and Symbolic Computation 13 (1/2): 135–152. doi:10.1023/A:1010026413531. http://link.springer.com/10.1023/A:1010026413531. 
  6. ^ Scott, Dana; Strachey, Christopher (1971). Toward a Mathematical Semantics for Computer Languages (Report). Technical Monograph (英語). Oxford: Oxford University Computing Laboratory, Programming Research Group.
  7. ^ Island Life - 継続の起源
  8. ^ Scheme:call/ccと副作用


「継続」の続きの解説一覧




固有名詞の分類


品詞の分類


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

「継続」に関係したコラム

  • FXやCFDで相場のトレンドが継続するかどうかを調べるには

    FXやCFDで相場のトレンドが継続するかどうかを調べるにはいくつかの方法があります。ここでは、テクニカル指標のボリンジャーバンドとボラティリティを使って相場のトレンドが継続するかどうかを調べてみます。

  • FXでダウ理論を用いるには

    ダウ理論(Dow Theory)とは、ダウ・ジョーンズの創設者のチャールズ・ダウ(Charles Henry Dow)が提唱した相場理論のことです。ダウ理論には以下の6つの基本法則があります。ファンダ...

  • FXやCFDのPAINとは

    FXやCFDのPAINとは、当日の始値、高値、安値、終値の4本値を用いて売り圧力、あるいは、買い圧力を計測するためのテクニカル指標のことです。PAINは、Price Action Indicator(...

  • FXのチャート分析ソフトMT4のフラクタルの見方

    FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のフラクタルの見方について解説します。フラクタル(Fractals)は、為替レートの高値と安値からトレンドの転換点を探...

  • CFD銘柄のヒストリカルボラティリティの比較

    ヒストリカルボラティリティ(HV)とは、ある銘柄の価格変動率のことです。ヒストリカルボラティリティの大きい銘柄は価格の変動が大きいハイリスクハイリターンの銘柄になります。一方、ヒストリカルボラティリテ...

  • 株式やFX、CFDのギャップとは

    株式やFX、CFDのギャップとは、ローソク足などのチャートにおいて、前日の高値と当日の安値が乖離した状態のことです。罫線では窓を空けた状態のことを指します。ギャップは、その出現パターンによって今後の相...

辞書ショートカット

すべての辞書の索引

「継続」の関連用語

継続のお隣キーワード
検索ランキング

   

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



継続のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの継続 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS