See source code below.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns dustingetz.y2025.gene2 | |
(:require [hyperfiddle.electric3 :as e] | |
[hyperfiddle.electric-dom3 :as dom] | |
[missionary.core :as m])) | |
(e/defn MyTextarea | |
[v & {:keys [rows cols] | |
:or {rows 10 cols 50}}] | |
(dom/textarea (dom/props {:rows rows :cols cols :value v}) | |
; this returns a stream of values |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns dustingetz.edn-viewer0 | |
(:require [clojure.datafy :refer [datafy]] | |
[clojure.core.protocols :refer [nav]] | |
[contrib.data :refer [unqualify]] | |
[dustingetz.easy-table :refer [TableScroll Load-css]] | |
[dustingetz.flatten-document :refer [flatten-nested]] | |
[hyperfiddle.electric3 :as e] | |
[hyperfiddle.electric3-contrib :refer [Tap]] | |
[hyperfiddle.electric-dom3 :as dom] | |
[hyperfiddle.electric-forms0 :refer [Checkbox*]] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns hf-docs-site.demos.explorer | |
(:require [clojure.datafy :refer [datafy]] | |
[clojure.core.protocols :refer [nav]] | |
#?(:clj clojure.java.io) | |
[contrib.data :refer [treelister clamp-left]] | |
[contrib.str :refer [includes-str?]] | |
[contrib.datafy-fs #?(:clj :as :cljs :as-alias) fs] | |
[hyperfiddle.electric3 :as e] | |
[hyperfiddle.electric-dom3 :as dom] | |
[hyperfiddle.electric-scroll0 :refer [Scroll-window IndexRing]] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns dustingetz.metaobject | |
"https://github.com/NikolaySuslov/electric-objmodel" | |
(:require [contrib.assert :refer [check]] | |
[hyperfiddle.electric3 :as e] | |
[hyperfiddle.electric-dom3 :as dom] | |
[hyperfiddle.incseq :as i])) | |
(e/defn Some [xs] (first (e/as-vec xs))) | |
(e/defn Vtable-lookup [vtable mname] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns contrib.ui.remark | |
(:require | |
;["@hyperfiddle/remark-generic-extensions/lib/browser.min" :as remark-generic-extensions] ; works in node | |
[clojure.set] | |
[clojure.string] | |
; Refrain from contrib imports so this is more suitable for userland | |
[goog.object] | |
[prop-types] ; used as js/propTypes.object | |
[reagent.core] | |
;[remark] ; works in node |
Electric Clojure implements a form of arrowized continuous time dataflow programming with extensions for network-transparent function composition.
- The Haskell School of Music: From Signals to Symphonies (2018) — best starting point and also a great intro to Haskell.
- The Essence of Dataflow Programming (2006) great category theory overview of dataflow programming; missing Applicative (2008), Free monad and Cofree comonad
- Push-pull functional reactive programming, Elliot (2009)
- Breaking down FRP, Jane Street (2014) — good concise comparision of many FRP aspects; missing discussion of discrete vs continuous
- [Compiling to Categories, Elliott (2017)](http
- 60 LOC: demo_chat_exdended.cljc
20230131.presence.edited.mp4
Easy:
- make an ordinary Clojure function
query-pokemon-list
for the query - The query is blocking, and Electric Clojure is async, so use
e/offload
to move it to a thread pool.- (Don't block the event loop!)
e/offload
throwsPending
until the query finishes, and then the exception "goes away"
NewerOlder