From ed0753ad224f0c65133bd7a63180257eecd9f5e3 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Wed, 8 Jan 2025 10:48:09 +0100 Subject: vault backup: 2025-01-08 10:48:09 --- .trash/books/sicp-paused/chapter-1.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .trash/books/sicp-paused/chapter-1.md (limited to '.trash/books/sicp-paused/chapter-1.md') diff --git a/.trash/books/sicp-paused/chapter-1.md b/.trash/books/sicp-paused/chapter-1.md new file mode 100644 index 0000000..0bf25d9 --- /dev/null +++ b/.trash/books/sicp-paused/chapter-1.md @@ -0,0 +1,22 @@ +Every powerful programming language should have the following three things: +* Primitive data types and procedures +* Means to create compound elements from primitive ones +* Means to create abstractions; compound elements are named and can be manipulated + +Primitives are elementary particles of programming languages. +Primitive data are booleans, integer numbers, floating point numbers and characters (which are encoded as integers). +Primitive procedures operate on primitive data: + * / etc. + +Expression: anything that has a result. +Combination: list of expressions wrapped (delimited) by parenthesis + (+ 1 2) + ^ --> operands -> evaluate -> arguments + operator | + ^ | + procedure <-----------------------< + +prefix notation: + - unambigously specify any nr of operands + - arbritary nesting (+ 1 (+ 1 (+ 1 2))) is easy + +bookmark: https://sarabander.github.io/sicp/html/1_002e1.xhtml#g_t1_002e1 1.1.2 -- cgit v1.2.3