If I have implemented letrec* in my Scheme interpreter, can I simply implement letrec by making it the same as letrec*? Is this allowed by the Scheme standards?
Can letrec be the same as letrec*?
106 Views Asked by Flux 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 LANGUAGE-LAWYER
- Can std::bit_cast be applied to an empty object?
- Static data member of template class type: constexpr vs. const constinit
- What was the problem with std::is_callable?
- Clang fails with "function with deduced return type cannot be used before it is defined", while GCC works
- Can a tentative definition use the storage class specifier _Thread_local?
- operator delete after both operator new and placement new?
- Is casting "pointer to array of type" to "pointer to type" defined?
- Are there uses of std::forward, where the argument is not a variable name?
- Why does C++ allow making a reference to a variable that goes out of scope?
- Deadlock on static-initialized jthread calling std::stacktrace_entry::description
- Is it legal to zero empty C++ classes in the constructor and inherit from them?
- Are there any specific types or values for which type-punning produces identical behavior in all Standard-conforming C implementations?
- Function pointer compatibility between single pointer and empty parameter lists
- In C++ can you use one empty type as storage for another?
- When is it safe to use [[no_unique_address]] in C++?
Related Questions in LETREC
- Why TSPL's letrec example can be run in ChezScheme with only let?
- Is letrec only meant for defining procedures?
- Why is the variable undefined in the initialization form of this letrec?
- Why does let not allow mutually recursive definitions, whereas letrec can?
- Can every letrec be replaced with letrec*?
- Can letrec be the same as letrec*?
- How to use `letrec` to define function "length" within the body of function "lengh-it"
- Generalised letrec semantics for mutual recursion
- Expression for defining letrec implementing little language in Haskell
- Understanding recurive let expression in lambda calculus with Haskell, OCaml and nix language
- Scheme: are `letrec` and `letcc` crucial for efficiency?
- How to implement letrec in Javascript?
- How is it possible that a binding shadows the existing binding in `case of` block?
- Haskell `let` bindings in lambda calculus
- Sharing vs. non-sharing fixed-point combinator
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?
Hmmm...
r6rs uses the language "It should be possible to evaluate each <init> without assigning or referring to the value of any <variable>" (emphasis added), but I think the formal semantics indicates that implementations must raise an exception:
(
(alias letrec letrec*)is Chez to make letrec the same as letrec* )r7rs provides a
letrecmacro expanding toletandset!(page 69 of the PDF):(nb
<undefined>replaced by 0) Using this produces:(One can
(expand '(letrec ([x 1] [y (+ x 1)]) y))in Chez Scheme to see why)(edit: Ghuloum & Dybvig 2009 Fixing Letrec (reloaded) (PDF) discusses letrec and letrec*)