Article View: fj.lang.functional
Article #17Re: q
From: kuroda KURODA Hisao
Date: Thu, 06 Feb 1997 00:00
Date: Thu, 06 Feb 1997 00:00
63 lines
2652 bytes
2652 bytes
In article <NAKANO.97Feb5104254@orca20.math.ryukoku.ac.jp> nakano@math.ryukoku.ac.jp (Hiroshi NAKANO) writes:
| 中野が「scope」と言ったときには、 Scheme の
|
| (call/cc (lambda (f) (... (f x) ...)))
|
| を SML の
|
| (... (raise (f x)) ...) handle (f x) => x
|
| と対比して、この f の scope (raise の f と handle の f との対応)を考え
| ていました。 Scheme では(普通の変数ですから) lexical scope を持ってい
| ますが、一方 SML では indefinite (dynamic) scope になります。 たとえば、
^^^^^^^^^^^^^^^^^^^^^^^^^^
indefiniteがSchemeでdynamicがSMLなのではありませんか?
| (call/cc (lambda (f)
| (+ 1 ((lambda (g) (call/cc (lambda (f) (g 1))))
| (lambda (y) (f y))))))
|
| を Scheme で評価すると 1 になりますが、これに対応する
|
| let exception f of int in
| (1 + (fn g => g(1) handle (f x) => x)(fn y => raise(f y)))
| handle (f x) => x end
|
| を SML で評価すると 2 になってしまいます。 もちろんこの時、 extent の
| 方の違いは関係していません。
|
| # ちゃんと説明できたかどうかちょっと不安です ... ;-<
Schemeの継続がindefinite extentを持つことを示したいのであれば、
> (define ccc #f)
> (+ 1 (call/cc (lambda (cc)
(set! ccc cc)
(+ 2 (cc 3)))))
4
> (ccc 100)
101
で十分でないでしょうか?一方、Common Lispですと(SMLで書けないものですみ
ません)、
>(+ 1 (catch 'tag (progn (+ 2 (throw 'tag 3)))))
4
>(throw 'tag 100)
Error: TAG is an undefined tag.
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by EVAL.
Broken at THROW. Type :H for Help.
>>
のようなかんじでdynamicである、というのが言えると思います。
;;; $Id: .signature,v 1.3 1996/09/20 07:06:26 kuroda Exp $
(define (くろだ ひさお)
(email kuroda@msi.co.jp))
Technical Details
Message-ID:
<KURODA.97Feb6182051@undine.msi.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<AKAMA.97Jan9005151@siena.is.s.u-tokyo.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: f5c49,590ed48083e6216 X-Google-Attributes: gidf5c49,public From: kuroda@undine.msi.co.jp (KURODA Hisao Subject: Re: q Date: 1997/02/06 Message-ID: <KURODA.97Feb6182051@undine.msi.co.jp> X-Deja-AN: 214818941 references: <AKAMA.97Jan9005151@siena.is.s.u-tokyo.ac.jp> content-type: text/plain; charset=ISO-2022-JP organization: Mathematical Systems Inc.,Tokyo,Japan / mime-version: 1.0 newsgroups: fj.lang.functional