IRC channel logs

2013-12-22.log

back to list of logs

<mark_weaver>zacts: I now know how to define the (reset) that you wanted before in guile: (define (reset) (abort-to-prompt (default-prompt-tag) (lambda (k) (values))))
<mark_weaver>that simply returns back to the prompt without printing anything else.
<mark_weaver>(if you want the REPL to think that some values were returned, pass them as arguments in the call to 'values' there)
<mark_weaver>so here's a more general version of 'reset' that can also accept arguments that will be returned to the REPL: (define (reset . xs) (abort-to-prompt (default-prompt-tag) (lambda (k) (apply values xs))))
<mark_weaver>and by the way, the 'k' in that lambda is a continuation that would resume the computation after the call to (reset)
<zacts>oh cool!
<zacts>thanks, let me try it out
<amirouche>héllo
<amirouche>is there something to install guile programs without using makefiles ?
<amirouche>something like pip and setup.py in Python
<amirouche>s/pip/easyinstall & pip/
<tupi>amirouche: if pure scheme/guile modules [no external depencies], you can use guildhall
<tupi> https://github.com/ijp/guildhall/wiki/Getting-Started
<amirouche>thx
<dsmith_>amirouche, Guile itself uses make. Do you mean scheme code you write/package yourself?
***dsmith_ is now known as dsmith
<linas>the ice-9 rw read-string!/partial from a tcpip port seems to mangle any utf8 arriving on that port.
<linas>Didn't used to, I don't think
<linas>is there a C api to the repl commands?
<linas>so that I could export them in my own prl loop?
<linas>s/prl/repl/
<linas>is there a way of listing all procedures in a module?
<linas>I've got a pile of code, I'd like for users to be able to just ask for help at the repl loop, but not sure how to do this.
<taylanub>linas: Your procedures can have docstrings, which users can view via ",d foobar" at the REPL.
<taylanub>(define (foobar arg1 arg2) "Documentation goes in this string." <procedure-body>)
<taylanub>(define foobar (case-lambda "Documentation goes here." <case> ...)) should work too AFAIK.
<dsmith>linas, there is a module-for-each
<taylanub>You can get the "interface" (exported bindings) of a module via `module-interface', as the documentation says. Getting a list of all bindings could be done with any of the undocumented procedures `module-obarray', `module-map', `module-for-each'.
<taylanub>Er, `resolve-interface' not `module-interface'.
<taylanub>E.g.: (module-for-each (lambda (symbol value) (display symbol) (newline)) (resolve-interface '(guile))) ;that's a lot of stuff!