libera/#commonlisp - IRC Chatlog
Search
3:04:08
beach
I admire everyone's patience with Guest92. That's a very strange way of trying to learn a language.
3:05:24
Guest92
Trying to reconcile the differences between two seemingly similar primitive forms in a language by trying to rearticulate it in my own words?
3:07:28
waleee
but you'd have to join their zulip since they jumped the irc-ship even pre freenode-calypse
3:08:36
waleee
one of the main maintainers is a huge fan of the socratic method when helping beginners
3:09:41
Guest92
The point isn't to be pedantic. What is the main activity one engages in when attending college? Likely writing, which serves the purpose of forcing the student to formulate their understanding in their own terms.
3:10:17
Guest92
What I learned earlier is that my understanding of flet and labels is correct, but my formulation wasn't
3:11:00
Guest92
It allows me to confront my assumptions directly, rather than concealing my assumptions until a later time when it becomes costly
3:11:13
hayley
I might be unable to navigate the documentation, but a thought I've found more evidence for is that it seems that the Common Lisp standard is unique in describing how you evaluate things, and not just describing the standard library.
3:16:01
hayley
The exceptions that I can think of are Standard ML, Scheme, TLA+ with operational(?) semantics, and Smalltalk-80 with a metacircular interpreter. Otherwise, it's like you're supposed to get the syntax, evaluation order, and everything else.
3:18:05
hayley
Nah, you usually find a description for types and syntax. But evaluation order is often not mentioned, for example.
3:18:25
Bike
easier to do when you can write your language at least somewhat as reduction rules, i guess
3:19:32
hayley
Right. But in languages without fancy standards, it seems that there is absolutely no discussion of evaluation order, not even that it is undefined.
3:20:34
hayley
It's not implementation documentation; you couldn't write some classes of programs in that language if you don't know the evaluation order.
3:20:38
Guest92
Most language docs treat the user as someone who just wants to know "how do I do x in y language" not "in this context x is evaluated to an intermediate value..." Yeah yeah, but what's the behavior?
3:20:41
moon-child
hayley: so you are saying: cl is somewhat unique in that it is standardised at all?
3:21:37
Bike
understanding the evaluation semantics in detail is actually useful for writing programs correctly, not just for implementing the language
3:22:49
Bike
do it vaguely and it's like C compilers for microcontrollers that can't apply optimizations because people keep writing empty for loops to pause execution
3:25:11
hayley
With the Pony language website, for example, I only see a tutorial and standard library documentation, and tutorials don't tend to be normative.
3:26:31
beach
hayley: With most languages no documentation is normative, because there is no standard. So, to me, there is then no "language" either. Just a programming system the behavior of which can change arbitrarily.
3:26:37
waleee
they have https://patterns.ponylang.io/ and some lectures but there's sparse docs available
3:26:37
hayley
One of the first parts of the tutorial states you use a program called "ponyc" to compile the program. Is an implementation which calls the compiler "pony-compiler" not a correct implementation of Pony?
3:27:38
hayley
beach: Yes, I suppose I am indirectly stating that most programming languages are just the description of one programming system.
3:28:35
beach
I mean, one of the first sentences I read was that Pony is "open source". I don't quite know how a programming language can be "open source".
3:29:38
hayley
But, even if the documentation is not normative, properties like eager or lazy evaluation are never explicitly mentioned. You're presumably expected to guess that is eagerly evaluated.
3:30:51
hayley
If I managed to teach someone programming only with Haskell and Prolog, for example, I am sure they would struggle to figure out any code in the tutorial, despite having "some experience programming already".
3:34:12
jcowan
moon-child: By bno means unique, There are ISO standards for Ada, Algol 60, APL, Basic, C, C++, C#, Chill, Cobol, ECMAscript (JavaScript), Eiffel, Forth, Fortran, ISLisp, Modula-2, Mumps, Pascal, PL/I, Prolog, Ruby, and SQL.
3:35:42
hayley
But still, Smalltalk-80, Standard ML and TLA+ have useful specifications without having any official standards.
3:35:53
moon-child
jcowan: hence 'somewhat'. I'm sure there are many more entries on this list https://en.wikipedia.org/wiki/List_of_programming_languages than languages that have been standardised
3:36:54
jcowan
There are also ANSI standards for APT, Common Lisp, Dibol, PL/B, Rexx, and Smalltalk (so there is an official standard for that). Scheme has an IEEE standard.
3:40:44
jcowan
SML never went through an official standards org, but its standard is very high quality, including its formal semantics.
6:55:20
montxero
With cl-sqlite, is it possible to execute sql statements/queries that are already filled? I want to be able to do something akin to (sqlite:execute-non-query *db* "insert into USERS (user_name,age) values (joe,18)")
6:59:10
flip214
montxero: or, even better, pass it in as an argument instead of inline, in the string
7:10:28
akater[m]
semz: compiler-macrolet could optimize (funcall f ..) or (apply f ..) for local f's
7:12:18
saturn2
it doesn't seem very useful, since the compiler would be compiling the local functions anyway
7:22:05
flip214
hayley: http://www.lispworks.com/documentation/lw50/CLHS/Issues/iss066_w.htm Issue COMPILER-LET-CONFUSION Writeup
7:22:38
flip214
OTOH I've wanted to pass data to macros a few times, to modify the expansion behaviour