freenode/lisp - IRC Chatlog
Search
8:05:02
phoe
rann: bindings are bindings, you can always hack around it if you can read the TERM variable and issue the proper escape command yourself.
8:05:38
phoe
this is hackery, but is only worse than a pull request to cl-readline that implements the missing functionality
8:06:53
phoe
today exclusively on #lisp: unexpected tips and how they can affect your life (more on page 7)
8:30:46
phoe
ebrasca: On hiatus for now - I'm doing other things that my real life requires to be done first.
8:37:51
phoe
ebrasca: I'm not familiar with ansi-test but it should give you some sort of list of what tests failed.
8:41:58
phoe
it looks like the function is copied or something, where it should be the same object at the same memory address.
8:43:54
phoe
ebrasca: ask around for help on #mezzano - this looks complicated and might need changes in either what SETF does or in compiler or some other place.
10:47:38
rk[ghost]
i am attempting to add the proper readline binding to cl-readline. seems worth the current effort for understanding of foriegn function interfacing with a standard library. i used quicklisp to pull the library. if i edit the cl-readline.lisp in ~/my/path/to/quicklisp/dist/quicklisp/software/cl-readline/ and use (ql:quickload) will it use my local copy or try to sync with the net and overwrite?
10:49:19
rk[ghost]
i suppose that is the downside of the beauty of CL and why it isn't commonly adopted is there doesn't seem to be standard practice for many things.
10:50:26
rk[ghost]
then do i just (load "~/quicklisp/local-projects/cl-readline/cl-readline.lisp") or does quicklisp have a method like quickload for loading from local vs. git?
10:50:56
pjb
rk[ghost]: once you've put your system in quicklisp/local-projects, you will just use (ql:quickload :cl-readline).
10:52:29
pjb
like when a variable in an inner scope is shadowed by another of the same name in an outer scope.
10:54:20
pjb
like when a variable in an OUTER scope is shadowed by another of the same name in an INNER scope.
11:32:57
rk[ghost]
wahoo! my intuition was correct and i was able to break out a function of gnu readline as expecterd
12:26:47
phoe
rk[ghost]: quicklisp distros are changed once a month AFAIK. you're better off cloning the newest version from github and PRing to it in most cases.
12:28:10
phoe
(defun rl:clear-screen () (uiop:run-command #+windows "cls" #-windows "/usr/bin/clear"))
12:28:47
phoe
rk[ghost]: a quicklisp dist is basically a list of all offered systems along with their version.
12:29:26
phoe
(but I might be very wrong here, this description is based on 50% intuition 50% accidental overhearing)
12:33:02
Xach
quicklisp provides a set of libraries that build together, and they are updated on a server once per month. if you call the update function, it will fetch those updates to your computer. otherwise it never locally updates.
12:33:30
Xach
if you have a system in an asdf directory somewhere, it will always be loaded before a quicklisp-provided system is loaded
12:35:35
rk[ghost]
phoe: ha. however, i like the abstraction layer of having gnu readline, such that it only requires that gnu's readline is on a system and not various other x, y, or z userspace tools
12:50:16
phoe
quote is pretty unique to Lisp because it's only really useful in places where you can directly manipulate code as data.
12:51:18
beach
Murii: It is similar to the rule in natural languages such as English. So air is something you can breathe, but "air" is a one-syllable word. In the first case, air gets "evaluated" to mean the substance. In the second case, because it is quoted, it refers to the word itself.
13:48:26
Xach
i don't really understand it though. http://report.quicklisp.org/2017-06-16/failure-report/mcclim.html
13:54:57
Xach
slyrus: it's a slightly idiosyncratic indexing system, but it has never failed on mcclim before
13:56:43
slyrus
I added a new ASDF .asd file down in Backends/PostScript. I'm wondering if that's what messed things up. So... zapping your fasls and running (ql:register-local-projects) are the two things that come to mind.
14:35:47
pjb
Murii: the important point wrt. quote, is that lisp programs are written using the format defined for lisp DATA.
14:36:34
pjb
Murii: actually, there's a (preliminary) syntax defined for lisp programs. Stuff like: label[subst;λ[[x;y;s];[null[s]->nil;atom[s]⟶[y=s->x;1->s];1->combine[subst[x;y;first[s]];subst[x;y;rest[s]]]]]]
14:37:23
pjb
Murii: in this syntax, there's no need for quote, since data is simply written with parentheses and uppercase, instead of brackets and lowercase: subst[(WATER;WINE;(MIX WATER AND WINE INTO (MIXED WATER AND WINE))];
14:39:28
pjb
Murii: but the thing is that: 1- there's a direct mapping of the lisp syntax to lisp data; 2- we can easily define an eval function that will take lisp data representing a lisp program, and interpret it; 3- a young student was impulsive and implemented this eval function in assembler before the syntax for lisp program was entirely finalized. The rest is history.
14:39:53
pjb
Murii: in this context, quote is used to indicate that its argument must not be interpreted as lisp code.
14:40:21
pjb
subst[(WATER;WINE;(MIX WATER AND WINE INTO (MIXED WATER AND WINE))]; translates to (subst (quote (water wine (mix water and wine into (mixed water and wine)))))
14:42:24
pjb
Murii: notice that this let an important invention (which existed entirely since the origin, but was embryonic) of macros: ie. functions transforming some lisp data into lisp code, embedded in the code, and called at compilation time.
14:44:24
pjb
Timeframe: AIM-8 specifies lisp and eval in Mars 1959; Russel implemented it in assembler 7090 from 1959-1960 (next version 1.5 in 1962); macros were invented in 1964. Until then, people still used the M-expressions (lisp code syntax) in papers; they only use S-expressions (lisp data syntax) on puched cards and listings. But once macros were introduced everybody flew with them and they forgot about M-expressions.
14:46:01
pjb
Murii: http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/aim-8.html http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html
18:08:22
random_numbers
phoe: Read up the logs. 2017-06-16T08:05:02Z Touché. Though that's a fair bit lower-level than desirable.
19:52:29
faraco
question, as a beginner to functional programming paradigm, which language do you recommend to learn. Haskell or Lisp (cl, scheme, etc)?
19:53:29
faraco
I have some programmig background in Perl and C, and would love to expand my knowledge area to untouched territory in my career.
19:55:17
knusbaum
Both are good. Haskell is basically purely functional, while in CL you can program however you like. Both have good reading resources for beginners.