TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: I like studying the concept of abstractions

3 pointsby in9over 2 years ago
I&#x27;ve just finished reading SICP and the content within the first chapters of abstraction and how to write general programs was something I really liked thinking about.<p>I bought &quot;sequel&quot; to SICP, Software Design for flexibility, but the amount of scheme needed will take me a while to be confortable with.<p>What else do you guys recommend me to study? Books, courses, blog posts. Anything goes :D

2 comments

sargstuffover 2 years ago
&#x27;lisp is a binary tree &#x2F; heap&#x27;: <a href="https:&#x2F;&#x2F;code.google.com&#x2F;archive&#x2F;p&#x2F;graphbook&#x2F;" rel="nofollow">https:&#x2F;&#x2F;code.google.com&#x2F;archive&#x2F;p&#x2F;graphbook&#x2F;</a><p>functional programming jargon: <a href="https:&#x2F;&#x2F;github.com&#x2F;hemanth&#x2F;functional-programming-jargon" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;hemanth&#x2F;functional-programming-jargon</a><p>practicing data structures (programming languages): <a href="https:&#x2F;&#x2F;opendsa-server.cs.vt.edu&#x2F;" rel="nofollow">https:&#x2F;&#x2F;opendsa-server.cs.vt.edu&#x2F;</a><p><pre><code> https:&#x2F;&#x2F;opendsa-server.cs.vt.edu&#x2F;OpenDSA&#x2F;Books&#x2F;PL&#x2F;html&#x2F;index.html </code></pre> <a href="https:&#x2F;&#x2F;github.com&#x2F;CodyReichert&#x2F;awesome-cl#data-structures" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;CodyReichert&#x2F;awesome-cl#data-structures</a>
sargstuffover 2 years ago
Original request bit wide open on subject domain&#x2F;topic subdomains.<p>aka CS AI; CS programming language implimentation; implimenting a database engine<p>Subject domain bit wide, but assuming 1-2yr computer science degree, biased towards lisp related data structures &#x2F; algorithms (aka recursive tree data structures &amp; algorithms).<p>So, no distinction between metadata vs. structual storage unless noted.<p>Anything beyond that tends towards masters &amp; upper level undergraduate level material. aka review the implimentation of a programming language for algorithm &amp; data structure usage per language features.<p>aka Lisp in Small Pieces by Christian Queinnec; ; <a href="https:&#x2F;&#x2F;github.com&#x2F;aalhour&#x2F;awesome-compilers;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;aalhour&#x2F;awesome-compilers;</a> On Lisp by Paul Graham; Let over Lambda by Doug Hoyte; C &#x27;macro&#x27;s pushed to maximum effect : <a href="https:&#x2F;&#x2F;libcello.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;libcello.org&#x2F;</a><p><pre><code> Left out Comparison of languages; Transform from lang a to lang b; and language implimentation as discussions tend to assume masters &#x2F; upper level undergraduate knowledge </code></pre> ;;; Basic groupings : 1) theory; 2) learning &amp; training problems; 3) algorithm book on-line ; 4) notational theory<p>;;;* 1) Theory:<p><pre><code> ** Category Theory for Programmers by Bartosz Milewski ** Regular expressions ** subject of meta-programming : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Metaprogramming ** subject of meta-modeling : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Metamodeling ** programing pardigms : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Programming_paradigm ** programning language patterns : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Software_design_pattern </code></pre> ;;;* 2) Learning &#x2F; Training problems:<p><pre><code> Lots of non-lisp language training problems sites. Other than go and try it in lisp language of choice, perhaps also use a &lt;language&gt; to lisp or lisp to &lt;language&gt; for hints if stuck. ** language &amp; non-language specific coding problems : https:&#x2F;&#x2F;adriann.github.io&#x2F;programming_problems.html -- a few links from adriann.githupb.io: -- https:&#x2F;&#x2F;www.spoj.com&#x2F;problems&#x2F;classical&#x2F;sort=0,start=500 -- https:&#x2F;&#x2F;www.ic.unicamp.br&#x2F;~meidanis&#x2F;courses&#x2F;mc336&#x2F;problemas-lisp&#x2F;L-99_Ninety-Nine_Lisp_Problems.html -- https:&#x2F;&#x2F;rosettacode.org&#x2F;wiki&#x2F;Category:Programming_Tasks ** https:&#x2F;&#x2F;lispcookbook.github.io&#x2F;cl-cookbook&#x2F; ** meta-algorithms site : https:&#x2F;&#x2F;the-algorithms.com ** https:&#x2F;&#x2F;www.geeksforgeeks.org&#x2F;data-structures&#x2F; ** https:&#x2F;&#x2F;www.geeksforgeeks.org&#x2F;advanced-data-structures&#x2F;?ref=gcse </code></pre> ;;* 3) algorithm book (on-line):<p><pre><code> ** Programming Algorithms in Lisp by VsevolodDomkin ** Competative Programming : https:&#x2F;&#x2F;cses.fi&#x2F;book&#x2F;book.pdf ** Algorithms by Jeff Erickson (non-lisp bent): https:&#x2F;&#x2F;jeffe.cs.illinois.edu&#x2F;teaching&#x2F;algorithms&#x2F; ** Open Data Structures : https:&#x2F;&#x2F;opendatastructures.org&#x2F;ods-python&#x2F; </code></pre> ;;* 4) Notational stuff:<p><pre><code> ** Ebnf https:&#x2F;&#x2F;www.gimtec.io&#x2F;articles&#x2F;ebnf&#x2F; (check out the further readings!) ** awesome syntax-tree : https:&#x2F;&#x2F;github.com&#x2F;syntax-tree&#x2F;awesome-syntax-tree ** church encoding : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Church_encoding ** mogensen-scott encoding : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Mogensen%E2%80%93Scott_encoding` ** lambda calculus : https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lambda_calculus ** Combinators : https:&#x2F;&#x2F;github.com&#x2F;loophp&#x2F;combinator</code></pre>