One of my slogans in this video
+00:06:43.000 --> 00:06:44.540 is going to be this one:
+00:06:44.541 --> 00:06:46.674 "Anyone can learn Lisp in one day".
+00:06:46.675 --> 00:06:50.420 this is a part of a bigger quote
+00:06:50.421 --> 00:06:53.040 that I took from a keynote presentation
+00:06:53.041 --> 00:06:54.720 by Abelson and Sussman, who
+00:06:54.721 --> 00:06:58.000 are two dinosaurs of Computer Science...
@@ -496,19 +496,19 @@ and in Emacs, until some time ago
if we did that and and if we ran
+00:08:27.000 --> 00:08:30.774 this expression here the result
+00:08:30.775 --> 00:08:32.574 would be 42,
+00:08:32.575 --> 00:08:35.000 because of this line here, and if we
+00:08:35.000 --> 00:08:37.840 ran this line here the result would be
+00:08:37.841 --> 00:08:40.000 the anonymous function corresponding to
@@ -520,40 +520,40 @@ but now this has changed...
the result of this thing here is this
+00:08:48.000 --> 00:08:50.999 vector-like lambda here - but that doesn't
+00:08:51.000 --> 00:08:53.279 matter much now...
+00:08:53.280 --> 00:08:57.599 So, until some time ago
+00:08:57.600 --> 00:09:00.839 if we did that and if we ran
+00:09:00.840 --> 00:09:02.839 this expression here, (foo foo)...
+00:09:02.840 --> 00:09:04.599 Emacs would do this: it would
+00:09:04.600 --> 00:09:06.000 replace the first `foo` by this
+00:09:06.001 --> 00:09:09.000 anonymous function here, it would replace
+00:09:09.000 --> 00:09:12.040 the second `foo` by the value of `foo` as a
+00:09:12.041 --> 00:09:14.459 variable, that is 42,
+00:09:14.460 --> 00:09:16.774 and it would evaluate this, and the
+00:09:16.775 --> 00:09:20.000 result would be 420.
@@ -585,34 +585,34 @@ if we run this, as I've shown
in the previous slide...
+00:09:43.000 --> 00:09:46.474 in the old style, in old Emacses,
+00:09:46.475 --> 00:09:49.279 the result of (symbol-function 'foo)
+00:09:49.280 --> 00:09:52.279 would be this anonymous function here...
+00:09:52.280 --> 00:09:56.319 and now we get this strange thing here.
+00:09:56.320 --> 00:10:00.159 So, this is an "old-style lambda",
+00:10:00.160 --> 00:10:03.999 this is a "vector-like lambda",
+00:10:04.000 --> 00:10:07.599 and until the middle of 2024
+00:10:07.600 --> 00:10:09.399 beginners could learn a lot of Lisp
+00:10:09.400 --> 00:10:11.359 by thinking only in terms of
+00:10:11.360 --> 00:10:12.960 objects like these...
@@ -630,10 +630,10 @@ diagrams like this thing here and this
thing here...
+00:10:25.000 --> 00:10:26.339 they would think on lists as
+00:10:26.340 --> 00:10:29.000 being these trees here, and they
@@ -645,13 +645,13 @@ Lisp just by thinking in these terms...
and then vector-like lambdas started
+00:10:39.000 --> 00:10:43.239 to appear in many places... and if we use
+00:10:43.240 --> 00:10:46.474 "vector-like lambdas" in a wide sense,
+00:10:46.475 --> 00:10:50.000 to mean all the new objects,
@@ -693,46 +693,46 @@ mind-blowing... and they would start to love
Lisp immediately.
+00:11:31.000 --> 00:11:33.674 Now what they get - what they see -
+00:11:33.675 --> 00:11:37.040 is a tiny part of a very complex structure
+00:11:37.041 --> 00:11:39.640 that is very powerful but that is
+00:11:39.641 --> 00:11:41.000 very difficult to understand...
+00:11:41.000 --> 00:11:44.919 and now our beginners are overwhelmed
+00:11:44.920 --> 00:11:51.339 instead of mind-blown. Note that I said "black box" here.
+00:11:51.340 --> 00:11:53.400 Let me explain the term.
+00:11:53.401 --> 00:11:57.539 We can open what's inside of `foo`...
+00:11:57.540 --> 00:12:00.140 we can open `foo` to see the contents of
+00:12:00.141 --> 00:12:03.007 the symbol `foo`, and we can try to see
+00:12:03.008 --> 00:12:06.620 what's in the function cell of the
+00:12:06.621 --> 00:12:08.000 symbol `foo`...
+00:12:08.000 --> 00:12:10.940 so we can open the box, but what we get
+00:12:10.941 --> 00:12:13.000 is something very difficult to understand,
@@ -741,34 +741,34 @@ and so I'm going to say that
when this happens that box is black.
+00:12:21.000 --> 00:12:24.579 It is not totally black - we can open open it -
+00:12:24.580 --> 00:12:27.374 but we don't understand what is going on there,
+00:12:27.375 --> 00:12:30.000 so we declare that that is black.
+00:12:30.000 --> 00:12:36.574 And... when these things started to happen
+00:12:36.575 --> 00:12:38.974 _I_ was overwhelmed -
+00:12:38.975 --> 00:12:41.974 and in this video I'm going to pretend
+00:12:41.975 --> 00:12:44.000 that I was not the only person
+00:12:44.000 --> 00:12:47.007 that was overwhelmed
+00:12:47.008 --> 00:12:51.240 by these new structures
+00:12:51.241 --> 00:12:52.000 that are not so elegant
@@ -1159,10 +1159,10 @@ the code that's behind these things,
we can run this sexp here.
+00:20:04.840 --> 00:20:07.219 It is going to show the code here at the right.
+00:20:07.220 --> 00:20:10.759 But anyway, these first lines here...
@@ -1186,10 +1186,10 @@ and the result of some other thing
is shown in the third window. Let's try...
+00:20:39.980 --> 00:20:46.107 So now that we have... well... I said
+00:20:46.108 --> 00:20:48.407 that we needed to choose a certain button
-- cgit v1.2.3