169 похожих чатов

The story: I had a thought, that perhaps Math becomes simpler

to understand when you invent it, rather than trying to learn it. And that people who invented Math must've been more proficient in Math than people who learn what they invented.

I decided to learn Lisp, but I wasn't feeling like learning. So, instead, I decided to implement my own Lisp, using JSON arrays and strings for source code, for simplicity.

Learning can be boring, problem solving is always interesting!

And, perhaps I'll understand it better when I'll try to invent it myself. I'll know why some things have to be the way they are.


So, I had like 40 minutes of free time before my English lesson? lecture? excercises? I don't know the proper terms for college in English. I pulled out a piece of paper, a pen, and started designing.

I must have looked a little bit like a mad man, but so does look anyone who pursues an unusual idea. Especially, cause I didn't finish it before English started, and I couldn't stop.

It felt great when I later was reading some stuff about Lisp, Scheme, Clojure, and I discovered functions and macros which solved the exact problems I solved on paper, having the exact same signature, and sometimes even the same name.

I ended up not writing any code. I didn't need it for my learning.

And that's how I taught myself some Lisp.

3 ответов

17 просмотров

Try learning Lambda Calculus

How is your JSON Lisp doing though?

Wojciech-Pawlik Автор вопроса

Oh, one more factor: I tried to implement a deepMap, and I came up with something that was very suitable for evaluating Lisp and Lisp macros...

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
4
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта