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.
19:59:37
faraco
I just want to grasp my head with these functional stuff. I realized when writing code in another language, using functions like the popular map and reduce is really great and it really make the code concise. However, despite of my lack of experience in the usage area, doing Lisp might be a good idea since it seems much more expressive than the language I primarily use.
20:01:21
loke___
faraco: Lisp is multi-paradigm, which menas that you can mix imperative, functional, object-oriented etc. techniques in the same functions.