I'm currently working my way through SICP, but I'm not quite used to the style of writing Scheme code yet. Is there any sort of style guide that is a companion for the book? So far, I have only found the comments on "pretty-printing" that are found in section 1.1.1.
Is there a style guide for SICP exercises?
202 Views Asked by J. Mini At
1
There are 1 best solutions below
Related Questions in SCHEME
- Lambda function not returning any value
- Encode "ä", "ö", "ü" and "ß" in scheme (file-output-port)
- How to programmatically expand the let* family of functions in racket
- Is there a way to implement named let as macro to make it work with Petrofsky let
- Scheme Question - How can I check if there are a list of pairs
- call/cc with Break procedure
- How to return in Scheme?
- SiCP Exercise 1.45
- Exercise 12.10 from the book Scheme and the art of programming
- How to write a Scheme function that uses call/cc to calculate factorial?
- Why can't a Scheme macro with the name "if" be defined?
- How to implement "if" in normal order in Scheme?
- Collision with syntax-rules identfiers and global names
- How to use let-values in Gambit Scheme?
- Racket: Issue with Sorting Strings in Ascending Order
Related Questions in LISP
- How to copy and paste an autocad table using python
- common lisp type vector of fixnums
- LISP to Batchplot (Publish) Multiple .dwg Models into One PDF
- Make changes to a LISP code for AutoCAD, it is possible?
- FeatureLines civil3d
- Detecting shared structure in tree made of cons cells
- How to load FRL into Clisp?
- Scheme Question - How can I check if there are a list of pairs
- do v. do*: Why does the same code produce a different result?
- undefined variable: COMMON-LISP:PROGN when running DO
- Making an SBCL program stop
- Getting arguments from the command line within SBCL
- "undefined variable: COMMON-LISP-USER::PRIMELIST" warning, using SBCL
- Counting vowels in Lisp
- Exercise 12.10 from the book Scheme and the art of programming
Related Questions in SICP
- SiCP Exercise 1.45
- How to implement "if" in normal order in Scheme?
- Why is the environment diagram in the following Python code inconsistent with its execution order?
- How Can Lisp be defined in terms of y combinator?
- Eval and Apply in SICP
- Is an iterative process that returns a list with size that increases by iteration any different from an one that returns a scalar?
- Why normal-order and applicative-order evaluation are not giving the same value?
- SICP Environment Diagram with Mermaid.JS
- SICP exercise 5.20
- What's the relevance of make-register accepting an argument (the name of the register) at all?
- Is this program recursive or iterative?
- Chezscheme says "Exception: attempt to apply non-procedure #<void>" when I tried to print a pascal triangle
- How is delay implemented?
- About serializers as a mechanism for dealing with concurrency
- Why an expression using a global variable multiple times reads that variable multiple times instead of just once?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Gerald Jay Sussman, one of the authors of SICP, is also one of the authors of Scheme. Their really cool 1986 video lecture at HP they don't expect Scheme to be that well known so they call it the more general name Lisp. Don't get confused since SICP is 100% Scheme and thus scheme coding style would be the correct path.
The Scheme wiki has a style guide together with common variable naming conventions and comment style.
Scheme was a new dialect of Lisp with lexical closures and one namespace as core features. It uses
defineinstead ofdefun,defparameter, anddefvar. DrRacket IDE actually treats lists with the operator starting with "de" asdefine. eg.In Common Lisp most of the coding style is the same:
The standard reference for Common Lisp style, including commenting conventions, is Peter Norvig and Kent Pitman's Tutorial on Good Lisp Programming Style. This you can use as a supplement for the Scheme resources.
PS: Coding style is opinionated. The language don't care much for any of this so this is just to make the code easier to read for humans.