As for ubuntu, maybe you could make a Personal Package Archive (PPA). Its
lets you make your own packages that can be downloaded by users using
apt-get. Its as easy as downloading the normal packages, but the user must
manually add the repository.
Here's a useful link:
Suscribe
Thanks Alex.
So, a better description of diff might be "Returns all the elements in the
first argument that are not in the second argument"?
On Sun, Nov 27, 2016 at 2:45 AM, Alexander Burger <a...@software-lab.de>
wrote:
> On Sat, Nov 26, 2016 at 09:05:44PM -0500, Bruno
I was trying out the diff function and I noticed something:
: (diff '(1 2 3 4) '(3 4))
-> (1 2)
but
: (diff '(3 4) '(1 2 3 4))
-> NIL
I think this means that there is an order to the arguments of diff, where
the second argument must be the shortest.
I wanted to ask if this was correct, and
Hey Dean,
I think that, in general, you want to quote a sym argument to a function
when
you want to change the value of that symbol. For example:
: (setq A 1) # Set the value of A to 1
-> 1
: (inc A) # Evaluate A, *then* pass the result to inc
-> 2
: A
-> 1
: (inc 'A) #
as
> Parameter in a function.
>
> 2016-12-09 5:51 GMT+01:00 Bruno Franco <brunofrancosala...@gmail.com>:
>
>> My my, I see it! Thanks Alex.
>>
>> On Thu, Dec 8, 2016 at 1:50 AM, Alexander Burger <a...@software-lab.de>
>> wrote:
>>
>>
@Alex
I'm surprised that (pick '((A B) (and (= A Value) B)) ListA ListB) is
faster than (get ListB (index Value ListA)).
It's true that get traverses ListB right after a traversal of ListA, but
pick seems to do the same traversal of
the same number of elements. The only difference is that pick
Hi list, I have a problem.
Whenever I sort a list stored in a symbol, some elements are erased
from the original list. Look:
: (setq A (3 2 5 4 1 1 1 1 0 1 2 4 5 ))
-> (3 2 5 4 1 1 1 1 0 1 2 4 5)
: (sort A)
-> (0 1 1 1 1 1 2 2 3 4 4 5 5)
: A
-> (3 4 4 5 5)
The pattern that I've noticed is that
My my, I see it! Thanks Alex.
On Thu, Dec 8, 2016 at 1:50 AM, Alexander Burger
wrote:
> Hi Bruno,
>
> > I've written something that redefines T to NIL, which surprises me
> > because I thought that T was protected from redefinition like that, and
> > I have not found a
rom my personal experience the documentation is
> rather
> > terse and changes happen not that often.
> >
> > Also (doc 'need) does state what it does do. Read the last two lines
> `second
> > form`. It is very unclear and i hope Regenaxer takes a look and clarifies
> >
I just wanted to point out that (doc 'need) for version 15.11.0 seems to
miss something.
It defines the possible arguments of need as:
(need 'cnt ['lst ['any]])
But it doesn't say what the function does with 'any, or how it affects the
result.
I also wanted to ask if this kind of topic was
Wao, the next release?! Thank you! I'm really glad my question could help
that much. I'm looking forward to it!
On Tue, Nov 29, 2016 at 1:18 AM, Alexander Burger <a...@software-lab.de>
wrote:
> On Mon, Nov 28, 2016 at 01:35:30PM -0500, Bruno Franco wrote:
> > So, a better desc
I'm trying to copy a list A in a way that changing the lists inside A don't
affect B.
I've tried using 'copy, like this:
: (setq A '((1 2 3) (4 5 6)))
-> ((1 2 3) (4 5 6))
: (setq B (copy A))
-> ((1 2 3) (4 5 6))
And it works at the top level:
#changing B doesn't change A
: (set B 1)
-> 1
: B
->
Downloaded and Installed! Thanks Alex!
On Mon, Jan 2, 2017 at 2:29 AM, Alexander Burger
wrote:
> Hi all,
>
> here is an article about Vip, the Vi-Style Editor in PicoLisp:
>
>http://picolisp.com/wiki/?vip
>
> It consists of only 990 lines of code.
>
> Not that the
I think you're right on what's the problem. Chopping the varstring creates
a list of characters,
("C" "I" "T" "Y"), and the final list would look like '(@A ("C" "I" "T"
"Y") @B), which does
not match '(@A "C" "I" "T" "Y" @B) above.
If you want
(match '(@A (chop varstring) @B) description)
to
Thanks Alex.
I didn't know about picolisp's tolerance for nested symbols. Is there a
reason you chose this?
Like, it lets you write some cool code, or it makes the language more
robust?
On Tue, Dec 27, 2016 at 10:15 AM, Alexander Burger
wrote:
> Hi all,
>
> while talking
This is a tangent on your conversation, but...
Alex, that graph looks so cool. Did you do it by hand or did you use some
juicy picolisp program that I can get my hands on?
On Wed, Dec 28, 2016 at 5:45 AM, Alexander Burger
wrote:
> On Wed, Dec 28, 2016 at 10:26:22AM +0100,
eneral function.
On Wed, Dec 28, 2016 at 4:35 PM, Bruno Franco <brunofrancosala...@gmail.com>
wrote:
> >The same meaning of "eq" (or "quick") have functions like 'delete' /
> 'delq',
> >'assoc' / 'asoq', 'case' / 'casq' or 'push1' / 'push1q'.
>
> Thank yo
Hi Alex.
A picolisp clone of VI? That sounds awesome! Please do write the article
for the wiki.
Also, where do I find the source code?
On Thu, Dec 29, 2016 at 2:31 AM, Alexander Burger <a...@software-lab.de>
wrote:
> On Wed, Dec 28, 2016 at 07:47:13PM -0500, Bruno Fra
binary(assembly code) becomes invalid.
>
> You misunderstood the question.
>
> > > On Sat, Dec 31, 2016 at 12:28:06AM -0500, Bruno Franco wrote:
> > > > I don't really know any asm, but since the asm code for the picolisp
> > > > functions is just a (vi '
ok, so " ' " is a read macro which expands to a list with the symbol quote
as car. I still don't understand how it gets translated into a different
printed result, but that is probably because, as you said, I just have not
drawn enough memory cell diagrams. I'll keep practising until I get it.
>The same meaning of "eq" (or "quick") have functions like 'delete' /
'delq',
>'assoc' / 'asoq', 'case' / 'casq' or 'push1' / 'push1q'.
Thank you Alex, that was exactly my next question.
On Tue, Dec 27, 2016 at 9:20 AM, Erik Gustafson
wrote:
> It is the *function*
Thank you so much Erik! I especially like that you said WHY setq is named
like that. Its been bugging me for weeks!
On Mon, Dec 26, 2016 at 10:25 PM, Erik Gustafson wrote:
> Hahaha I read your post quickly and then wrote a possibly overkill answer.
>
> I deduce that
I know that they're used to bind a variable to a value, and that they do
behave differently, but I don't understand the principle behind their
difference, and I can't predict how they will behave differently from each
other.
>From this little piece:
: (set B 1)
!? (set B 1)
NIL -- Protected
This might be a nice thing to add to the documentation too, since the
function definitions don't mention it. Maybe something like: "Its only
difference with set is that setq does not evaluate its first argument"
On Mon, Dec 26, 2016 at 11:26 PM, Bruno Franco <brunofrancosala...@gmai
I've written something that redefines T to NIL, which surprises me
because I thought that T was protected from redefinition like that, and
I have not found a command in the code that looks like it is redefining T.
Could you check it out and see if its something in the code, or a bug in
the
to understand
> Am 17.12.2016 03:53 schrieb "John Duncan" <duncan.j...@gmail.com>:
>
>> If they become unreachable, they will be collected.
>>
>> On Fri, Dec 16, 2016 at 1:28 PM, Bruno Franco <
>> brunofrancosala...@gmail.com> wrote:
>>
>>>
I want to write a simple script that would accept names from the command
line and print then, like this:
$ ./script alice bob
Hello alice and bob
I know that once picolisp has the names I would just use 'print', but how
do I pass the names?
Got it. Thanks!
On Tue, Mar 21, 2017 at 1:56 PM, Alexander Burger
wrote:
> On Tue, Mar 21, 2017 at 10:35:34AM -0700, Lindsay John Lawrence wrote:
> > http://software-lab.de/doc/refA.html#argv
>
> Or use 'opt'
>
> (while (opt)
>(println @) )
> (bye)
> --
> UNSUBSCRIBE:
I see, 'later' itself sets up *Run.
Thanks Alex
On Wed, Mar 15, 2017 at 1:21 AM, Alexander Burger
wrote:
> Hi Bruno,
>
> > Joh-Tob's question got me curious about parallel code in picolisp. I've
> > studied the example of 'later' in the documentation and I have an idea of
I can find the documentation for the default functions, and for the form
functions, but how about libraries like pilog.l or http.l?
Ah, I see! So, its for convenience that the atoms are printed. And the
reason `(+ 1 1) was printed was that it was first evaluated to 2, *then*
passed to , who only ever saw the atom 2.
Thanks Alex.
On Wed, Apr 5, 2017 at 1:36 AM, Alexander Burger
wrote:
> Hi Bruno,
>
> >
entation as in an explanation of every code
> block in that file but this is probably helpful:
> https://software-lab.de/doc/select.html
>
>
>
> On Sun, Apr 2, 2017 at 7:16 AM, Joh-Tob Schäg <johtob...@gmail.com> wrote:
>
>> Yes you can not find any documentation
I think that what Christopher means is that adding a licence makes the
developer's wishes clear. When you put a permissible licence its obvious
you don't care what people do with the code, but if there's no licence at
all it *could* mean you don't care, or it *could* mean you do care but just
Hi list,
I'm going through the picolisp application development tutorial (
http://software-lab.de/doc/app.html#tags) and I'm trying this piece of code
at the tags section:
: ( 'main
( NIL "Head")
( NIL
( "Line 1")
"Line"
()
(+ 1 1) ) )
Head
Line 1
Line 2
the
Yes! Its working. Thanks Alex. I hadn't realized my version was so old
because the version listed in the download page is 16.12.8. I'll check the
current verison list from now on.
On Thu, May 18, 2017 at 3:32 AM, Alexander Burger
wrote:
> Hi Bruno,
>
> > Looking at the
Hi list,
I just downloaded the latest version of vip (06may17), but when I try to
run it, it returns an error and enters the picolisp cli:
~> vip
[/home/bruno/bin/vip:5] !? (*CmdWin *Flat *Chr *Complete *Repeat *Change
*Count *Cnt *Search *Clip)
*CmdWin -- Undefined
? ⏎
Looking at the source,
Hi Alex, Geo.
Ok, so the lower-case upper-case testing and mapping is actually encoded
into these lists, and the function charType takes the character number in
unicode, modifies it, and uses that as an index in the lists to get that
information. No lookup in a special file. Thanks for correcting
Alex's explanation of his workflow got me exited, so I've downloaded the
Penti keyboard. I installed it and set it up as the default keyboard, and
it runs! Penti is written in big letters on the screen, but when I tap my 5
fingers to start it the shadows only appear under two of the fingers, and
On the subject of low? and upp?, how does picolisp know if a character is
upper or lower case?
Is there a list of all upper and lower case characters built in to the
interpreter, and the character is checked against that list?
Or is casing information is built into unicode?
On Sat, Jun 17, 2017
Hi Geo! Thanks a lot for the info!
I did a google search and it turns out Unicode does come with several text
files that create mappings between letters of different cases. The most
important one is UnicodeData.txt. It has the one to one mappings between
lower and upper case.
Though my quick
Hi Alex.
> does "multitouch" just mean more than one finger?
Apparently yes. I just downloaded an app to test the maximum multitouch
input and it is, indeed, two. I'll go to my vendor and see if I can get my
phone exchanged for one that can at least get up to 5.
Thanks for the quick response!
Hi list,
I'm writing a script that shows a person a math expression (like "2 + 3")
waits for an answer, then returns if its right or wrong.
What I want though, is for it to wait something like 3 seconds and, if
there is no input, assume the user doesn't know and return "WRONG".
I thought of
That is just what I needed! thanks alex
On Sat, Aug 26, 2017 at 12:32 AM, Alexander Burger
wrote:
> Hi Bruno,
>
> > I'm writing a script that shows a person a math expression (like "2 + 3")
> > waits for an answer, then returns if its right or wrong.
> > What I want
and need.
> *Von:* brunofrancosala...@gmail.com
> *Gesendet:* 2. Juli 2018 5:46 vorm.
> *An:* picolisp@software-lab.de
> *Antworten:* picolisp@software-lab.de
> *Betreff:* Re: A query in Pilog
>
> OH, I just realized how!
>
> (? (loves Mark @X) (woman @X))
>
> It se
Yeah! that is exactly right!
All this time I had tried to use the "?" function like this:
(? ((loves Mark @X) (woman @X)))
But it returned NIL.
So, when you search for a variable that can satisfy more than one predicate,
you make a list of predicates (call it PList) and pass it as argument to
OH, I just realized how!
(? (loves Mark @X) (woman @X))
It seems obvious in hindsight XD
On Sun, Jul 1, 2018 at 10:37 PM Bruno Franco
wrote:
> Yeah! that is exactly right!
>
> All this time I had tried to use the "?" function like this:
> (? ((loves Mark @X) (woman @X)))
done, voted
On Sat, Jun 30, 2018 at 9:44 AM Joe Golden wrote:
> Hey! Vote! It's simple and painless ;-)
>
> On Sat, Jun 30, 2018 at 04:01:50PM +0200, Manuel Cano wrote:
> >Hi,
> >
> >Hey! Vote! I've did it some days ago.
> >
> >
> >Kind regards,
> >Manu
> >
> >2018-06-30 14:10 GMT+02:00 Arie
@X @Z)) part,
and since that's what is used to unify the query,
the query must have that same "(vertical line ..." structure.
But that's just a guess. If there is some deeper meaning I would be happy
to know :D
On Mon, Jul 2, 2018 at 11:23 PM Bruno Franco
wrote:
> The prolog saga contin
; the name of the sym (vertical) gets consed into the (line (point @X @Y)
> (point @X @Z)) part,
> and since that's what is used to unify the query,
> the query must have that same "(vertical line ..." structure.
>
> But that's just a guess. If there is some deeper meaning
I'm going through the "Learn Prolog Now!" ebook and I ran into this query:
?- loves(marsellus,X), woman(X).
And I can't figure out how to do it in pilog.
Is there a function that can test multiple queries at once, like or/2 does?
thanks
Oh, I see! Thanks!
On Tue, Jul 3, 2018 at 1:45 PM Alexander Burger wrote:
> Hi Bruno,
>
> > (be vertical (line (point @X @Y) (point @X @Z)))
> > (be horizontal (line (point @X @Y) (point @Z @Y)))
> >
> > and the query:
> > (? (vertical line (point 1 2) (point 1 3)))
>
> Yes, OK, but then I
three questions:
1) what parts of picolisp have you had trouble understanding? Which clashed
with your previous experience as a programmer?
2) What features of picolisp are you using right now? Did you learn
something interesting while using them that you would like others to know?
3) is there a
there is this rule in prolog:
p :- p.
That is infinitely recursive. If you query the database for
?- p.
It gets thrown into an infinite loop.
I've tried to recreate that in pilog, with no success.
: (be p (() p))
How can you write p :- p. in pilog, so that it does the infinite loop that
I
Thanks Alex, it worked exactly
On Tue, Jul 10, 2018, 00:46 Alexander Burger wrote:
> Hi Bruno,
>
> > there is this rule in prolog:
> > p :- p.
> > That is infinitely recursive. If you query the database for
> > ...
> > How can you write p :- p. in pilog, so that it does the infinite loop
> that
Well, for the conditional exit in the iterators (for, do, and loop),
I would do something like this:
(use Y
(for X (1 2 3 4 5)
(setq Y (mumble-mumble X))
(NIL Y (println "this does not work")) ) )
Though I'm not sure that is the most elegant way to go XD.
As for the local
actually, you could just put the function (mumble-mumble X) in the place
of Y:
(for X (1 2 3 4 5)
(NIL (mumble-mumble X)
(println "this does not work")) )
On Thu, Jul 12, 2018 at 9:27 PM Bruno Franco
wrote:
> Well, for the conditional exit in the iterators (for, do, a
12:21:13AM -0500, Bruno Franco wrote:
> > I had too many parentheses in the query.
> >
> > The correct form is:
> > (? (vertical line (point 1 2) (point 1 3)))
>
> No, this does not look right. We can't tell much unless we know all your
> definitions.
>
> —
What are they?
all right, thanks!
On Thu, Jun 27, 2019 at 12:27 PM wrote:
> So, reading Alex’s comments and also the definition of the “joke” `setf`
> here:
>
> On Thu, 27 Jun 2019 10:29 -04:00, Mike wrote:
>
> https://github.com/picolisp/picolisp/blob/dev/misc/setf.l
>
>
> informs me that the answer to
Soo, yeah. I'm studying common lisp, and coming from picolisp setf confused
me at first. The concept does not seem to appear on picolisp, and I
wondered why its not there.
The only reference I could find was this:
https://www.mail-archive.com/picolisp@software-lab.de/msg03604.html
it mentions
I'm studying lib/sumul.l, specifically the 'grid function. I understand how
it works now, but I have two doubts:
1) why are symbols in the grid interned?
2) what does the F in FX and FY stand for?
here's the code for reference:
(de grid (DX DY FX FY)
(let Grid
(make
(for X DX
thank you!
On Sun, Apr 12, 2020 at 2:01 AM Mike wrote:
> > I'm studying lib/sumul.l, specifically the 'grid function.
>
> In my repo you would find a lot of usage examples for grid:
> https://git.envs.net/mpech/tankf33der/
>
> (mike)
>
> --
> UNSUBSCRIBE:
I am interested too in an online conference. Its the only way I could
attend anyways. And saving it up for playback on youtube interests me.
On Thu, Apr 23, 2020 at 1:58 AM O.Hamann wrote:
> Timely, short, clear communication, thank you for that, Alex.
>
>
> I do not really have any real
In vip, if I have a file like:
_
# file with a single line of code
(prin "print me on the command window")
___
is there a way to select the line with the code and send it to the command
window for execution, like slime for emacs?
thanks alex! It works perfectly
On Mon, Aug 31, 2020, 01:12 Alexander Burger wrote:
> Hi Bruno,
>
> > In vip, if I have a file like:
> > _
> > # file with a single line of code
> > (prin "print me on the command window")
> > ___
> >
> > is there a way to
Unfortunately, 8 UTC is too early for me XD, I'll have to wait for the 16
UTC meeting
On Thu, Jul 2, 2020 at 12:06 PM C K Kashyap wrote:
> I can't wait :)
>
> On Thu, Jul 2, 2020 at 9:46 AM Alexander Burger
> wrote:
>
>> On Thu, Jul 02, 2020 at 09:28:09AM -0700, C K Kashyap wrote:
>> > Just to
since it does not come as a termux package anymore, can I compile it on my
phone?
68 matches
Mail list logo