MIT-OCW-6.945-AIASP

2. Stream

2.1. 0x222A

  • getting into Domain Specific Languages today
  • the authors are considerably influenced by biological systems; to reiterate : biological cells are based on generalized configurations (DNA) but adopt specific behaviours and forms based on the context. Pattern sharing and adaptability aren't dominant to such an extent in traditioanl software engineering practices.
  • see combinators
  • on a relevant note: exploring arity mechanics in common lisp (I'm using cl instead of scheme for the book)
  • the arity of a function can be completely fetched via some implementation dependent inbuilt functionality: I'm using SBCL
(sb-introspect:function-lambda-list
 (lambda (x y z &optional a &rest args) 1729))
X Y Z &OPTIONAL A &REST ARGS
  • writing a generic arity-checker for common lisp might not be possible (I'm not sure) if we have access to the compiled version of the function and not interpreted.
  • for the interpreted case, one may use function-lambda-expression as …
(cadr (function-lambda-expression
 (lambda (x y z &optional a &rest args) 1729)))

2.2. 0x2228

  • getting into rigorous studying again with the course
  • literate programming in org mode will be my primary method of documentation
    • did SICP in a separate github repository but this buffer is version controlled on a more wholistic level
  • following the prinicipal read for the course (Software Design for Flexibility)
  • reading the first chapter and already anticipating all the elegant ideas that I'll get to grok over the span of this read
  • The notion of flexibility can be viewed in terms of the freedom granted by the individual components that compose a system …
  • all cells of a biological organism actualize from the same genetic code and are able to specialize based on the context they are presented, without a master cell/tissue/organ/organism actively controlling their behaviours
    • cellular intelligence is collaborative and not authorotative.
    • the initial cell contains all the information and procedures needed for building an organism : that is a prime example of flexibility when it comes to understanding the capabilities of that seeding cell.
  • Software on the other hand, is traditionally designed with specific functions distributed into components with a master, isolated intent driver that controls the collaboration of the programs.
  • checkout Redundancy and Degeneracy
Tags::programming:lisp:course: