IRC channel logs

2017-04-25.log

back to list of logs

<paroneayea>whee!
<paroneayea>released guile-sjson
<paroneayea>sent to the guix list
<ArneBab_>paroneayea: if that’s what I think it is, that’s great!
<nikita1>paroneayea: what's the difference with guile-json?
<xvilka>hi
<xvilka>is there any way to define two functions, both of them are using each other inside themselves?
<ecraven>yes
<ecraven>just define them
<ecraven>and make sure there's a bottom out case for the mutual recursion
<ecraven>like that: http://w3courses.com/check-if-even-or-odd-using-scheme-source-code
<xvilka>ok, thx
***heroux_ is now known as heroux
***berndj-blackout is now known as berndj
<amz3`>in my editor, I have two variables that are linked by some heuristic
<amz3`>it's the cursor position with the view position
<amz3`>the cursor position is defined as the line and column position in the file
<amz3`>and the view position defines the top left corner of the visible part of the buffer
<amz3`>ark!
<amz3`>the cursor position is not directly related to the buffer
<amz3`>well, I will make a post on the mailling list it will be better!
<brendyn>Is there a way to refer to the name of a function? Like (define foo (lambda () (display function-name))) => "foo"
<wingo>not really, no
<brendyn>k.
<wingo>yeah, sorry. it's tricky :)
<wingo>if you need it you can make it of course, but that's not as nice
<wingo>(define-syntax-parameter current-procedure-name (syntax-rules ()))
<wingo>(define-syntax-rule (define/named (proc . args) . body) (syntax-parameterize ((current-procedure-name (syntax-rules () ((_) 'proc)))) (define (proc . args) . body)))
<wingo>(define/named (foo) (display (current-procedure-name)))
<wingo>not tested :)
<brendyn>I've just got several lines of code duplicated in this Guix definition but the only difference is one needs the string "Sung" where the other needs "Kai" and I can't figure out how to do it
<brendyn>Maybe I can refer to the name of the package
<wingo>or make a function that returns a package
<wingo>and call it once with "Sung" and once with "Kai"
<wingo>dunno
<brendyn>I think I had some issue with that when I tried to put the whole package definition in a let clause, which doesn't work since it's actually code executed by the guix daemon
<brendyn>maybe I can have (package (let ...))
<wingo>if it's in the arguments or something you would need to (let ((x ...)) (package ... (arguments `(... ,x ...))))
<wingo>i.e. make arguments a quasiquoted list and then unquote in the value bound outside
<brendyn>It's amazing how bad the Taiwanese government is at IT
<paroneayea>nikita1: a couple differences:
<paroneayea>nikita1: it uses an s-expression syntax, kind of the way sxml does, which means that you can use quasiquote and friends to construct things
<paroneayea>nikita1: so the structures are also immutable
<paroneayea>nikita1: it also has the option of using fashes (functional hashmaps), which it bundles
<nikita1>paroneayea: do fashes perform better?
<paroneayea>nikita1: depends
<paroneayea>nikita1: the '(@ (key val) (another-key another-val)) representation is linear in its access
<nikita1>from the massive insert point of view?
<paroneayea>nikita1: right so if you have a lot of them
<paroneayea>fashes have faster access
<Denommus>I'm trying elisp in guile, and I don't know if I understood something wrong, but shouldn't (let ((x 1)) (defun foo (y) (+ x y))) (let ((x 2)) (foo 2)) be 4?
<paroneayea>Denommus: I don't think you can do that kind of lexical definition of a procedure via defun like that
<Denommus>paroneayea: you can, I just tested in Emacs
<lloda>emacs says it's 4
<paroneayea>Denommus: you could use lambda though, but you'd have to use the function apply thing
<paroneayea>ah
<paroneayea>ok maybe I'm wrong!
<Denommus>this is even documented behavior, IIRC
<paroneayea>Denommus: so, are you running with one of the latest guile releases?
<paroneayea>there's a branch with unmerged elisp code
<Denommus>2.2.1
<paroneayea>Denommus: you might want to try with the wip-elisp branch or whatever it's called
<paroneayea>I rebased it some time ago but it hasn't been merged yet
<janneke>paroneayea: congrats on guile-sjson!
<paroneayea>thanks janneke
<paroneayea>and thanks davexunit for laying the foundation, and wingo for providing fash.scm :)
<janneke>+1
<Apteryx>What's the difference vs 'filter' and 'filter-map' ?
<spk121>Apteryx: filter stores the input into pred. filter-map stores the output of pred.
<Apteryx>spk121: Oh! I had somehow missed that. Thanks :)
<daviid>hello guilers!
<janneke>hi daviid!
<daviid>hi janneke, hos is mes?
<daviid>*how
<janneke>i've been anticipating 0.5 -- self-hosting for weeeeks
<janneke>seems i could be there tonight
<janneke>i know that there's a bug lurking, possibly okay to release without that hunted down
<daviid>folks, I'm very pleased to preannounce here that Guile-CV is now part of GNU. I'm doing the home work to convert the headers, links, mailing list, web pages ... finalize some of the coding I was working on and release (the first public release), 0.1.4 hopefully next week
<janneke>daviid: wow, congrats!
<daviid>janneke: tx
<amz3`>!
<paroneayea>gosh
<paroneayea>re-encountering the json-ld expander I wrote
<paroneayea>the first functional program I ever wrote in guile
<paroneayea>and it's so complex
<paroneayea>I didn't even know how to use match then
<paroneayea>wait that's not true, match is in here
<paroneayea>ok I didn't know how to use it well
***Rains- is now known as Deuk_Neukem
***ertesx is now known as ertes
<catonano>how do I expand a "define-syntax-rule" ?