freenode/#clim - IRC Chatlog
Search
9:48:35
Kaz
I am making a small app similar to the address-book demo to try out some things and learn.
9:49:49
Kaz
I have an accept method for the type person that read a token (the first name) and looks for the corresponding object in a list of persons.
9:51:31
Kaz
In the case where there are several persons with same first name I wanted to make a second call to accept with a member type.
9:53:07
beach
Kaz: I would love to help you, but my favorite coauthor is on her way to come here for lunch, so I am going to be busy for the next few hours. I hope someone else has the time to help you.
9:55:50
jackdaniel
[I don't have time now, but given I'll find it later today minimal example with actual code would help]
9:57:33
jackdaniel
what I'm suggesting is that you should paste link here with a minimal self-contained example of code I can run to reproduce the issue
10:32:59
Kaz
screen shot: https://github.com/thibaultlanglois/Clim-Howtos/blob/master/Screenshotat2018-06-13-11-22-05.png
10:34:35
Kaz
when I use the Change Last Name command and enter "Albert"<enter> with the keyboard I get the error.
10:48:47
jackdaniel
OK, so your problem is that you want to accept something of type `person' from the stream `stream'
10:49:06
jackdaniel
but you don't have person presented on the interactor pane, and that's where the command is invoked
10:49:42
jackdaniel
if you modify your snippet to be: (setq person (accept `(member ,@persons))) , then it will be able to find your person
10:52:42
jackdaniel
I'm not sure if you do it the right way (that you recursively call accept), but I don't know
11:07:03
Kaz`
https://github.com/thibaultlanglois/Clim-Howtos/blob/master/Screenshotat2018-06-1312-00-03.png
11:10:51
Kaz`
I have uploaded e more minimalistic version with 3 persons. 2 of them have the same first name. The idea was to accept the first name and if several person match, make recursive (member) accept restricted to the matches.
11:39:48
jackdaniel
Kaz`: your "reduced" example has dangling undefined functions, is not properly indented etc
11:39:56
jackdaniel
either way, a sketch of the solution is here: http://hellsgate.pl/files/cfdbde6a
11:41:11
jackdaniel
more elegant solution would avoid using dynamic variable, so keep in mind this is just a sketch
11:44:25
Kaz`
ok thank you. I was thinking that maybe it would be better to have an accept method for a list-of-person type and the function that receive the result would do different things denpending on the nember of elements.
15:50:14
loke
I have started to understand more of the DREI stuff. At least how it works with input eidting.
16:21:48
loke
TO get something working for Climaxima, I had to rework that code a bit, and ended upw ith this:
16:31:32
loke
Specifically, look at the hack I had to come up with in order to detect when Shift-Return was pressed so that I can support multiline input
16:33:53
loke
It would be really nice if some of the stuff I do there could be done through official API's
16:34:30
loke
I had to dig quite deep into private API's, and I have no idea if my LOGAND with 256 is even going to work on all platforms :-)
16:35:45
beach
You would not be on your own. You could do what I do. I write things down, submit the suggestion for review, revise, iterate.
16:39:28
beach
What I am trying to say is that I am not accusing the authors of that code of bad design.
16:40:28
loke
But what has become very clear to me (as I mentioned earlier) the code suffers from two things:
16:41:17
loke
2) It's apparently written on very slow machines, because there is a lot of optimisations that might not be needed.
16:43:12
beach
People also have a tendency to optimize without having done the work, i.e. either tested it or having a back-of-envelope calculation.
16:44:53
beach
Athas modified it of course. It used to be part of (first) Climacs. The Athas extracted the Drei part.