Skip to content
Fogus edited this page Jan 9, 2013 · 7 revisions

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

Exceptions

Yes

Clone this wiki locally