Page:
Underpinnings
Pages
Advanced Compilation
Atom
Bootstrapped ClojureScript FAQ
Bootstrapping the Compiler
Building the compiler
ClojureScript Puppet Manifest
Common Problems
Companies Using ClojureScript
Comparators
Compile Time Type Checking
Compiler Options
Cursive
Custom Build Tools
Custom REPLs
Dependencies
Developers
Differences from Clojure
Emacs & Inferior Clojure Interaction Mode
Emacs & Inferior Clojure Interaction Mode
Enhanced JavaScript Module Support
Enhanced Node.js Modules Support
Exception Handling
FAQ (for JavaScript developers)
Google Closure Library
Google Closure
Google Summer of Code 2015
Home
JavaScript Library Preprocessing
JavaScript Module Support (Alpha)
Launch Plan
Light Table
Optional Self hosting
Packaging Foreign Dependencies
Patches
Providing IO utilities
Quick Start
REPL Options
REPL stack traces
Rationale
Reader
Release plans
Remote REPL
Reporting Bootstrap Issues
Reporting Issues
Road Map
Running REPLs
Running the tests
Singleton Pattern Externs Inference Support
Source maps
Sublime Text 2
Testing
The REPL and Evaluation Environments
Underpinnings
Using cljc
Vim
Windows Setup
Working with Javascript classes
_Sidebar.md
lein cljsbuild
No results
7
Underpinnings
Fogus edited this page 2013-01-09 09:13:52 -05:00
Implementing core.cljs requires some deep thought about the functional underpinnings in relation to the Javascript host. For example, the implementation of partial in core.clj uses the concat function. It would be simple to implement a naive version of concat in order to make progress, but the better way forward is to think through the appropriate implementation relative to the host. In the specific case of concat the core.clj version operates with chunked sequences in mind. Is this something that we wish to carry forward? These questions need to be teased out.
Underpinning discussion
Abstractions
Chunked Seqs
Nope
Transients
Nope
Lazy seqs
We've got 'em
InternalReduce
Yes, the protocol IReduce
Reference Types
Atom
Agents on webworkers is a possibility, but requires pointed exploration.
eval and apply
eval - no
apply - yes, and lazy
Type hints
Nope
Metadata
Yes