[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00700] Re: 問題 4.71 の手前



------------------------- infoseek ML Sponsor --------------------------
┏━┳━┳━┳≪資格の大原 合格Web 税理士講座 ≫━┳━┳━┳━┳━┓
┃大┃原┃税┃理┃士┃講┃座┃!┃合┃格┃者┃の┃84┃%┃が┃受┃講┃
┗━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━┛
★パソコンさえあれば自宅で学べるのが合格Web!24時間いつでも何度でも受講
┗ http://www1.ibc.ne.jp/ad/ibc0088.html 
------------------------------------------------------------------------



鈴木です。
のなかさん始めまして。

やってみました。

;;MzScheme

> (force (delay 100))
100
> (force (delay (delay 100)))
#<promise>

;;Gambit (for win)

> (force (delay 100))
100
> (force (delay (delay 100)))
100

ほんとうだ、こりゃおかしい。

というわけで、自分で作りましょう

> (define-macro (my-delay exp) `(lambda () ,exp))
> (define-macro (my-force exp) `(,exp))
> (my-force (lambda () 100))
100
> (my-force (my-delay 100))
100
> (my-force (my-delay (my-delay 100)))
#<procedure #x1451D1>
> (my-force (my-force (my-delay (my-delay 100))))
100

こんな感じです。
いかがでしょう?

Gambitのソースコードもちらっと見てみましたが、
よくわかりません。

そういえばLISPMEのソースも読んでいたけど、
途中で止まっているなあ。

鈴木秀直

------------------------------------------------------------------------
       ★今なら登録するだけで現金50万円が当たる!?
  http://research.infoseek.co.jp/research/index.phtml/mail?svx=971122