3

次のようなプログラムがあるとします。

(define (foo x) 
  (local 
    ((define y (- x 1)))
    (* x y)))
(foo 3)

任意のステートメントを実行して x と y の値を調べたり (場合によっては変更したり) できるように、3 行目と 4 行目の間で REPL を開くことができるようにしたいと考えています。

Ruby でこれを行うには、同等のプログラムを使用します。

def foo(x)   
  lambda {   
    y = x - 1
    x * y    
  }.call     
end       
puts (foo 3)

pry の呼び出しを追加して変更し、適切なスコープの repl を必要な場所に提供します。

require 'pry'
def foo(x)   
  lambda {   
    y = x - 1
    binding.pry
    x * y    
  }.call     
end       
puts (foo 3)

js でこれを行うには、このプログラムを Firebug の下で実行し、4 行目にブレークポイントを配置します。

foo = function(x) {  
  return (function(){
    var y = x - 1;   
    return x * y;    
  })();              
};                                    
console.log(foo(3)); 

そして、評価ウィンドウで何かを調べることができました。

Racket でこれを取得するためにできることはありますか? 私が見つけた最も近いのは DrScheme のデバッガーですが、それは現在のスコープのすべての値を表示するだけで、私が見る限り、REPL でそれらを探索することはできません。

4

2 に答える 2