freenode/#lisp - IRC Chatlog
Search
2:06:18
alexanderbarbosa
"off-topic": as they said, python *is* a good start for those that come from lisp languages. im feeling at home...
2:13:25
no-defun-allowed
alexanderbarbosa: https://www.reddit.com/r/LispMemes/comments/b9phzx/best_lisp_joke_in_existence/
2:14:58
alexanderbarbosa
no-defun-allowed: I was after any pl that was not that weird, by weird i mean, not lispy
5:39:22
LdBeth
However if you want to change the default option there’s :save-runtime-options for save-lisp-and-die
11:00:56
trafaret1
how can I build lips project? I just download project from github want ot build it
11:03:15
no-defun-allowed
probably: put it in ~/quicklisp/local-projects, evaluate (ql:register-local-projects), then (ql:quickload :project-name)
11:03:38
no-defun-allowed
check the README for any possible alterations to this procedure too (and also check if it's not in Quicklisp to start with)
12:07:53
beach
What the author is referring to is what I call "copy semantics" and "reference semantics", so as not to confuse things.
12:11:10
beach
Call by value just means that an expression is evaluated before it is passed as an argument to a function.
12:16:20
LdBeth
Integers are cheap and can be fit into registers, so we just copy them, objects are however large thus expensive to copy, so we use a reference that can be easily passed around
12:17:07
beach
I didn't say anything about implementation. Here, "semantics" means "the language works as if".
12:19:23
LdBeth
It’s kind like monad, people talks that because they generally don’t know what that is and always needs explanation
12:20:12
beach
Call-by-value is a well established term, and it just means that, before a function is applied to its arguments, those arguments are evaluated.
12:21:09
beach
This terminology was certainly well defined in 1960, because Algol 60 talks about it.
12:22:57
beach
People should avoid redefining well defined terminology. If for nothing else to facilitate communication.
12:43:05
ggole
There's a very common confusion between call-by-value and pass-by-value, which mean quite different things
13:05:11
beach
Define well defined protocols, and write a test suite for the implementation of each one.
13:06:53
beach
Here, a "protocol" is a collection of (usually generic) functions and types (usually standard classes).
13:07:25
LdBeth
Nah, I just recalled call-by-reference in FORTRAN is now more commonly referred as out parameter
13:08:23
beach
ebrasca: I used "protocol" to mean what it means in the CLOS literature. Not as a wire protocol.
13:12:02
minion
ebrasca: please look at AMOP: AMOP: The Art of the Metaobject Protocol, an essential book for understanding the implementation of CLOS and advanced OO. See <http://metamodular.com/CLOS-MOP>
13:14:37
beach
If you look at the appendix of metamodular.com/SICL/environments.pdf you have a small example of a protocol.
13:17:46
beach
ebrasca: If you don't understand the concept of an interface or a protocol, you may end up writing some very messy software. I suggest you try to read up.
13:20:39
Josh_2
perhaps I should use this weekend to get started, you have made me worried now beach ʕ·͡ᴥ·ʔ
13:25:01
beach
risto: There is no obvious correlation between something being good and it being popular.
13:26:07
risto
I wanted to convert the :use to instead explicitly import everything using :import-from
13:26:41
beach
risto: I strongly recommend you not import from other packages (other than the COMMON-LISP package), and instead use explicit package prefixes. Your code will be much clearer, and it becomes much easier to refactor later.
13:27:44
LdBeth
And beach usually go against :use any package other than COMMON-LISP for the same reason
13:33:12
LdBeth
ebrasca: it’s more interesting that you can plug your custom type system/object system into CLOS
13:35:20
beach
ebrasca: Here is a very simple protocol for you: STACK [class]. PUSH object stack [generic function], POP stack [generic function], EMPTY-P stack [generic-function], TOP stack [generic function].
13:35:43
beach
ebrasca: Together with documentation about the return values and side effects of the generic functions, and the initargs of the class.
13:37:30
beach
ebrasca: Once you have that, and an implementation of it, you can then write a test suite making sure that your implementation does what your documentation says it should do.
13:38:22
beach
ebrasca: Like, the documentation should say that EMPTY-P returning false is a precondition for using POP and TOP.