On 22.06.2010 10:40, Valeriya Pudova wrote:
The continuation marks included in the exception are effectively a
stack trace, and you can convert them into locations. See the docs.
:) Reading about continuation marks.
Great feature those continuation marks. But does not looks helpful
this case.
To be able to get mark i should set it before. Is it not?
Wow!
(define (foo a b)
(for-each (lambda (e) (display e)(newline))
(continuation-mark-set->context (current-continuation-marks))))
(define (bar a b)
(foo a b))
(bar 1 2)
=>
(foo . #(struct:srcloc c:\documents and settings\v\desktop\test.ss 2 0 2
127))
(call-with-exception-handler . #(struct:srcloc
C:\Racket\collects\racket\private\more-scheme.rkt 274 2 9287 256))
(loop . #(struct:srcloc C:\Racket\collects\drracket\private\rep.rkt 1134
19 47088 797))
(call-with-break-parameterization . #(struct:srcloc
C:\Racket\collects\racket\private\more-scheme.rkt 158 2 5099 519))
(#f . #(struct:srcloc C:\Racket\collects\drracket\private\rep.rkt 1115 9
46083 2670))
(loop . #(struct:srcloc C:\Racket\collects\drracket\private\rep.rkt 1375
17 58510 808))
Interesting. There are no the function bar in the backtrace. Why?
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users