Skip to content

Instantly share code, notes, and snippets.

View pkutaj's full-sized avatar

pavol kutaj pkutaj

View GitHub Profile
@pkutaj
pkutaj / tmpni_bm8jx.scheme
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
+; <procedure +>
square; <procedure square>
@pkutaj
pkutaj / tmp_zu365t0.py
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
def square(x): return x*x
square # <function __main__.square(x)>
# `+` is syntax in Python — it cannot be referenced as a value (SyntaxError)
@pkutaj
pkutaj / tmpw75xgiwe.scheme
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
(define abs
(lambda (x) (cond [(< x 0) (- x)] [(= x 0) 0] [(> x 0) x])))
@pkutaj
pkutaj / tmpvuhnzzp7.scheme
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
(assert (= (abs -20) 20))
(assert (= (abs 0) 0))
(assert (= (abs 20) 20))
@pkutaj
pkutaj / tmp_h0j4s7e.scheme
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
(define abs2
(lambda (x)
(if (< x 0) (- x) x)))
(assert (= (abs2 -5) 5))
@pkutaj
pkutaj / tmpflp22yr3.scheme
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
(define (sqrt x)
(define avg
(lambda (x y)
(/ (+ x y) 2)))
(define (square x)
(* x x))
(define abs
(lambda (x)
(cond
[(< x 0) (- x)]
@pkutaj
pkutaj / tmpkzjbnr0n.scheme
Created July 14, 2026 07:09
SICP 1.6 — Primitives, Combinations, Abstractions in Scheme snippet
; avg/square/abs/improve are scoped inside sqrt — verified values:
; (avg 0 100)=>50 (square 3)=>9 (abs -1)=>1 (improve 50 100)=>26
(assert (< (abs (- (sqrt 9) 3)) 0.001)) ; ✅ approx check — sqrt returns 65537/21845, not exactly 3
(sqrt 9) ; => 65537/21845 ≈ 3.0
@pkutaj
pkutaj / tmppu9jlgd5.txt
Created June 30, 2026 07:01
SICP_01_03 snippet
TO FIND AN APPROXIMATION TO SQUARE ROOT OF X (9):
• MAKE A GUESS G (1)
• IMPROVE THE GUESS BY AVERAGING G AND X/G (1+(9/1))/2 = 5; 👇
• KEEP IMPROVING THE GUESS UNTIL IT IS GOOD ENOUGH (5+(9/5))/2 = 3,4; (3,4+(9/3/4))/2 = 3.02 ✅
@pkutaj
pkutaj / tmpo7zfaz3i.txt
Created June 30, 2026 07:01
SICP_01_03 snippet
# GENERAL
METHOD FOR FINDING A FIXED POINT OF A FUNCTION F
(THAT IS, A VALUE Y SUCH THAT F(Y) = Y):
• START WITH A GUESS FOR Y
• KEEP APPLYING F OVER AND OVER UNTIL THE RESULT DOESN'T CHANGE VERY MUCH.
# APPLIED
TO COMPUTE A SQUARE ROOT OF X, FIND A >>FIXED POINT<<
OF THE FUNCTION F, WHICH TAKES Y OVER THE AVERAGE OF Y AND X/Y
@pkutaj
pkutaj / tmps61_89u2.txt
Created June 29, 2026 06:50
Explaining black box abstraction and higher order functions in SICP snippet
TO FIND AN APPROXIMATION TO SQUARE ROOT OF X (e.g. 9):
• MAKE A GUESS G (start: 1)
• IMPROVE: average G and X/G → (1 + 9/1) / 2 = 5
• KEEP IMPROVING UNTIL GOOD ENOUGH:
(5 + 9/5) / 2 = 3.4
(3.4 + 9/3.4) / 2 ≈ 3.02 ✅