Posts

Exercise 1.05

Exercise 1.05 // sicp 1.05 package main import "fmt" func p() int { return p() } func test(x, y int) int { if x == 0 { return 0 } else { return y } } func main() { fmt.Println(test(0, p())) }

Exercise 1.04

Exercise 1.04 // sicp 1.04 package main import ( "fmt" "os" "strconv" ) func main() { plus := func(a, b int) int { return a + b } minus := func(a, b int) int { return a - b } a_plus_abs_b := func(a, b int) int { f := plus if b

Exercise 1.03

Exercise 1.03 // sicp 1.03 package main import ( "fmt" "os" "strconv" ) func sum_mx_sq(a, b, c int) int { s2sq := func(x, y int) int { return x*x + y*y } var t int switch { case (a USAGE: sicp1_03 int int int") os.Exit(1) } a, _ := strconv.Atoi(os.Args[1]) b, _ := strconv.Atoi(os.Args[2]) c, _ := strconv.Atoi(os.Args[3]) fmt.Println(sum_mx_sq(a, b, c)) }

Exercise 1.02

Exercise 1.02 // sicp 1.02 package main import "fmt" func main() { answ := (5 + 4 + (2 - (3 - (6 + 1.0/3)))) / (3 * (6 - 2) * (2 - 7)) fmt.Println(answ) }

Exercise 1.01

Exercise 1.01 // sicp 1.01 package main import "fmt" func main() { fmt.Println(10) fmt.Println(5 + 3 + 4) fmt.Println(9 - 1) fmt.Println(6 / 2) fmt.Println((2 * 4) + (4 - 6)) a := 3 b := a + 1 fmt.Println(a + b + (a * b)) fmt.Println(a == b) if b > a && b a { t = b } fmt.Println(t + 2) t = a if a > b { t = a } else if a

SICP Books References

Image
SICP, the Original (and PDF ). SICP, the JS Editon (and PDF ). SICP/SICPJS, Comparison Edition.