For statically traced calls the Clojure compiler calls the primitive version of type-hinted functions and this makes quite a difference in tight loops. Often times, however, functions are passed by values or returned from if-statements and then you need to explicitly call the primitive overload - this makes that pathway less verbose. Functions must first be check-casted to their primitive types and then calling them will use their primitive overloads avoiding all casting.
(defn doit [f x y]
(let [f (pi/->ddd f)]
(loop [x x y y]
(if (< x y)
(recur (pi/ddd f x y) y)
x))))
For statically traced calls the Clojure compiler calls the primitive version of type-hinted functions
and this makes quite a difference in tight loops. Often times, however, functions are passed by values
or returned from if-statements and then you need to explicitly call the primitive overload - this makes
that pathway less verbose. Functions must first be check-casted to their primitive types and then
calling them will use their primitive overloads avoiding all casting.
```clojure
(defn doit [f x y]
(let [f (pi/->ddd f)]
(loop [x x y y]
(if (< x y)
(recur (pi/ddd f x y) y)
x))))
```(->d f)(->dd f)(->ddd f)(->dddd f)(->ddddd f)(->ddddl f)(->ddddo f)(->dddl f)(->dddld f)(->dddll f)(->dddlo f)(->dddo f)(->dddod f)(->dddol f)(->dddoo f)(->ddl f)(->ddld f)(->ddldd f)(->ddldl f)(->ddldo f)(->ddll f)(->ddlld f)(->ddlll f)(->ddllo f)(->ddlo f)(->ddlod f)(->ddlol f)(->ddloo f)(->ddo f)(->ddod f)(->ddodd f)(->ddodl f)(->ddodo f)(->ddol f)(->ddold f)(->ddoll f)(->ddolo f)(->ddoo f)(->ddood f)(->ddool f)(->ddooo f)(->dl f)(->dld f)(->dldd f)(->dlddd f)(->dlddl f)(->dlddo f)(->dldl f)(->dldld f)(->dldll f)(->dldlo f)(->dldo f)(->dldod f)(->dldol f)(->dldoo f)(->dll f)(->dlld f)(->dlldd f)(->dlldl f)(->dlldo f)(->dlll f)(->dllld f)(->dllll f)(->dlllo f)(->dllo f)(->dllod f)(->dllol f)(->dlloo f)(->dlo f)(->dlod f)(->dlodd f)(->dlodl f)(->dlodo f)(->dlol f)(->dlold f)(->dloll f)(->dlolo f)(->dloo f)(->dlood f)(->dlool f)(->dlooo f)(->do f)(->dod f)(->dodd f)(->doddd f)(->doddl f)(->doddo f)(->dodl f)(->dodld f)(->dodll f)(->dodlo f)(->dodo f)(->dodod f)(->dodol f)(->dodoo f)(->dol f)(->dold f)(->doldd f)(->doldl f)(->doldo f)(->doll f)(->dolld f)(->dolll f)(->dollo f)(->dolo f)(->dolod f)(->dolol f)(->doloo f)(->doo f)(->dood f)(->doodd f)(->doodl f)(->doodo f)(->dool f)(->doold f)(->dooll f)(->doolo f)(->dooo f)(->doood f)(->doool f)(->doooo f)(->l f)(->ld f)(->ldd f)(->lddd f)(->ldddd f)(->ldddl f)(->ldddo f)(->lddl f)(->lddld f)(->lddll f)(->lddlo f)(->lddo f)(->lddod f)(->lddol f)(->lddoo f)(->ldl f)(->ldld f)(->ldldd f)(->ldldl f)(->ldldo f)(->ldll f)(->ldlld f)(->ldlll f)(->ldllo f)(->ldlo f)(->ldlod f)(->ldlol f)(->ldloo f)(->ldo f)(->ldod f)(->ldodd f)(->ldodl f)(->ldodo f)(->ldol f)(->ldold f)(->ldoll f)(->ldolo f)(->ldoo f)(->ldood f)(->ldool f)(->ldooo f)(->ll f)(->lld f)(->lldd f)(->llddd f)(->llddl f)(->llddo f)(->lldl f)(->lldld f)(->lldll f)(->lldlo f)(->lldo f)(->lldod f)(->lldol f)(->lldoo f)(->lll f)(->llld f)(->llldd f)(->llldl f)(->llldo f)(->llll f)(->lllld f)(->lllll f)(->llllo f)(->lllo f)(->lllod f)(->lllol f)(->llloo f)(->llo f)(->llod f)(->llodd f)(->llodl f)(->llodo f)(->llol f)(->llold f)(->lloll f)(->llolo f)(->lloo f)(->llood f)(->llool f)(->llooo f)(->lo f)(->lod f)(->lodd f)(->loddd f)(->loddl f)(->loddo f)(->lodl f)(->lodld f)(->lodll f)(->lodlo f)(->lodo f)(->lodod f)(->lodol f)(->lodoo f)(->lol f)(->lold f)(->loldd f)(->loldl f)(->loldo f)(->loll f)(->lolld f)(->lolll f)(->lollo f)(->lolo f)(->lolod f)(->lolol f)(->loloo f)(->loo f)(->lood f)(->loodd f)(->loodl f)(->loodo f)(->lool f)(->loold f)(->looll f)(->loolo f)(->looo f)(->loood f)(->loool f)(->loooo f)(->od f)(->odd f)(->oddd f)(->odddd f)(->odddl f)(->odddo f)(->oddl f)(->oddld f)(->oddll f)(->oddlo f)(->oddo f)(->oddod f)(->oddol f)(->oddoo f)(->odl f)(->odld f)(->odldd f)(->odldl f)(->odldo f)(->odll f)(->odlld f)(->odlll f)(->odllo f)(->odlo f)(->odlod f)(->odlol f)(->odloo f)(->odo f)(->odod f)(->ododd f)(->ododl f)(->ododo f)(->odol f)(->odold f)(->odoll f)(->odolo f)(->odoo f)(->odood f)(->odool f)(->odooo f)(->ol f)(->old f)(->oldd f)(->olddd f)(->olddl f)(->olddo f)(->oldl f)(->oldld f)(->oldll f)(->oldlo f)(->oldo f)(->oldod f)(->oldol f)(->oldoo f)(->oll f)(->olld f)(->olldd f)(->olldl f)(->olldo f)(->olll f)(->ollld f)(->ollll f)(->olllo f)(->ollo f)(->ollod f)(->ollol f)(->olloo f)(->olo f)(->olod f)(->olodd f)(->olodl f)(->olodo f)(->olol f)(->olold f)(->ololl f)(->ololo f)(->oloo f)(->olood f)(->olool f)(->olooo f)(->ood f)(->oodd f)(->ooddd f)(->ooddl f)(->ooddo f)(->oodl f)(->oodld f)(->oodll f)(->oodlo f)(->oodo f)(->oodod f)(->oodol f)(->oodoo f)(->ool f)(->oold f)(->ooldd f)(->ooldl f)(->ooldo f)(->ooll f)(->oolld f)(->oolll f)(->oollo f)(->oolo f)(->oolod f)(->oolol f)(->ooloo f)(->oood f)(->ooodd f)(->ooodl f)(->ooodo f)(->oool f)(->ooold f)(->oooll f)(->ooolo f)(->ooood f)(->ooool f)(d f)(dd f arg0)(ddd f arg0 arg1)(dddd f arg0 arg1 arg2)(ddddd f arg0 arg1 arg2 arg3)(ddddl f arg0 arg1 arg2 arg3)(ddddo f arg0 arg1 arg2 arg3)(dddl f arg0 arg1 arg2)(dddld f arg0 arg1 arg2 arg3)(dddll f arg0 arg1 arg2 arg3)(dddlo f arg0 arg1 arg2 arg3)(dddo f arg0 arg1 arg2)(dddod f arg0 arg1 arg2 arg3)(dddol f arg0 arg1 arg2 arg3)(dddoo f arg0 arg1 arg2 arg3)(ddl f arg0 arg1)(ddld f arg0 arg1 arg2)(ddldd f arg0 arg1 arg2 arg3)(ddldl f arg0 arg1 arg2 arg3)(ddldo f arg0 arg1 arg2 arg3)(ddll f arg0 arg1 arg2)(ddlld f arg0 arg1 arg2 arg3)(ddlll f arg0 arg1 arg2 arg3)(ddllo f arg0 arg1 arg2 arg3)(ddlo f arg0 arg1 arg2)(ddlod f arg0 arg1 arg2 arg3)(ddlol f arg0 arg1 arg2 arg3)(ddloo f arg0 arg1 arg2 arg3)(ddo f arg0 arg1)(ddod f arg0 arg1 arg2)(ddodd f arg0 arg1 arg2 arg3)(ddodl f arg0 arg1 arg2 arg3)(ddodo f arg0 arg1 arg2 arg3)(ddol f arg0 arg1 arg2)(ddold f arg0 arg1 arg2 arg3)(ddoll f arg0 arg1 arg2 arg3)(ddolo f arg0 arg1 arg2 arg3)(ddoo f arg0 arg1 arg2)(ddood f arg0 arg1 arg2 arg3)(ddool f arg0 arg1 arg2 arg3)(ddooo f arg0 arg1 arg2 arg3)(dl f arg0)(dld f arg0 arg1)(dldd f arg0 arg1 arg2)(dlddd f arg0 arg1 arg2 arg3)(dlddl f arg0 arg1 arg2 arg3)(dlddo f arg0 arg1 arg2 arg3)(dldl f arg0 arg1 arg2)(dldld f arg0 arg1 arg2 arg3)(dldll f arg0 arg1 arg2 arg3)(dldlo f arg0 arg1 arg2 arg3)(dldo f arg0 arg1 arg2)(dldod f arg0 arg1 arg2 arg3)(dldol f arg0 arg1 arg2 arg3)(dldoo f arg0 arg1 arg2 arg3)(dll f arg0 arg1)(dlld f arg0 arg1 arg2)(dlldd f arg0 arg1 arg2 arg3)(dlldl f arg0 arg1 arg2 arg3)(dlldo f arg0 arg1 arg2 arg3)(dlll f arg0 arg1 arg2)(dllld f arg0 arg1 arg2 arg3)(dllll f arg0 arg1 arg2 arg3)(dlllo f arg0 arg1 arg2 arg3)(dllo f arg0 arg1 arg2)(dllod f arg0 arg1 arg2 arg3)(dllol f arg0 arg1 arg2 arg3)(dlloo f arg0 arg1 arg2 arg3)(dlo f arg0 arg1)(dlod f arg0 arg1 arg2)(dlodd f arg0 arg1 arg2 arg3)(dlodl f arg0 arg1 arg2 arg3)(dlodo f arg0 arg1 arg2 arg3)(dlol f arg0 arg1 arg2)(dlold f arg0 arg1 arg2 arg3)(dloll f arg0 arg1 arg2 arg3)(dlolo f arg0 arg1 arg2 arg3)(dloo f arg0 arg1 arg2)(dlood f arg0 arg1 arg2 arg3)(dlool f arg0 arg1 arg2 arg3)(dlooo f arg0 arg1 arg2 arg3)(do f arg0)(dod f arg0 arg1)(dodd f arg0 arg1 arg2)(doddd f arg0 arg1 arg2 arg3)(doddl f arg0 arg1 arg2 arg3)(doddo f arg0 arg1 arg2 arg3)(dodl f arg0 arg1 arg2)(dodld f arg0 arg1 arg2 arg3)(dodll f arg0 arg1 arg2 arg3)(dodlo f arg0 arg1 arg2 arg3)(dodo f arg0 arg1 arg2)(dodod f arg0 arg1 arg2 arg3)(dodol f arg0 arg1 arg2 arg3)(dodoo f arg0 arg1 arg2 arg3)(dol f arg0 arg1)(dold f arg0 arg1 arg2)(doldd f arg0 arg1 arg2 arg3)(doldl f arg0 arg1 arg2 arg3)(doldo f arg0 arg1 arg2 arg3)(doll f arg0 arg1 arg2)(dolld f arg0 arg1 arg2 arg3)(dolll f arg0 arg1 arg2 arg3)(dollo f arg0 arg1 arg2 arg3)(dolo f arg0 arg1 arg2)(dolod f arg0 arg1 arg2 arg3)(dolol f arg0 arg1 arg2 arg3)(doloo f arg0 arg1 arg2 arg3)(doo f arg0 arg1)(dood f arg0 arg1 arg2)(doodd f arg0 arg1 arg2 arg3)(doodl f arg0 arg1 arg2 arg3)(doodo f arg0 arg1 arg2 arg3)(dool f arg0 arg1 arg2)(doold f arg0 arg1 arg2 arg3)(dooll f arg0 arg1 arg2 arg3)(doolo f arg0 arg1 arg2 arg3)(dooo f arg0 arg1 arg2)(doood f arg0 arg1 arg2 arg3)(doool f arg0 arg1 arg2 arg3)(doooo f arg0 arg1 arg2 arg3)(l f)(ld f arg0)(ldd f arg0 arg1)(lddd f arg0 arg1 arg2)(ldddd f arg0 arg1 arg2 arg3)(ldddl f arg0 arg1 arg2 arg3)(ldddo f arg0 arg1 arg2 arg3)(lddl f arg0 arg1 arg2)(lddld f arg0 arg1 arg2 arg3)(lddll f arg0 arg1 arg2 arg3)(lddlo f arg0 arg1 arg2 arg3)(lddo f arg0 arg1 arg2)(lddod f arg0 arg1 arg2 arg3)(lddol f arg0 arg1 arg2 arg3)(lddoo f arg0 arg1 arg2 arg3)(ldl f arg0 arg1)(ldld f arg0 arg1 arg2)(ldldd f arg0 arg1 arg2 arg3)(ldldl f arg0 arg1 arg2 arg3)(ldldo f arg0 arg1 arg2 arg3)(ldll f arg0 arg1 arg2)(ldlld f arg0 arg1 arg2 arg3)(ldlll f arg0 arg1 arg2 arg3)(ldllo f arg0 arg1 arg2 arg3)(ldlo f arg0 arg1 arg2)(ldlod f arg0 arg1 arg2 arg3)(ldlol f arg0 arg1 arg2 arg3)(ldloo f arg0 arg1 arg2 arg3)(ldo f arg0 arg1)(ldod f arg0 arg1 arg2)(ldodd f arg0 arg1 arg2 arg3)(ldodl f arg0 arg1 arg2 arg3)(ldodo f arg0 arg1 arg2 arg3)(ldol f arg0 arg1 arg2)(ldold f arg0 arg1 arg2 arg3)(ldoll f arg0 arg1 arg2 arg3)(ldolo f arg0 arg1 arg2 arg3)(ldoo f arg0 arg1 arg2)(ldood f arg0 arg1 arg2 arg3)(ldool f arg0 arg1 arg2 arg3)(ldooo f arg0 arg1 arg2 arg3)(ll f arg0)(lld f arg0 arg1)(lldd f arg0 arg1 arg2)(llddd f arg0 arg1 arg2 arg3)(llddl f arg0 arg1 arg2 arg3)(llddo f arg0 arg1 arg2 arg3)(lldl f arg0 arg1 arg2)(lldld f arg0 arg1 arg2 arg3)(lldll f arg0 arg1 arg2 arg3)(lldlo f arg0 arg1 arg2 arg3)(lldo f arg0 arg1 arg2)(lldod f arg0 arg1 arg2 arg3)(lldol f arg0 arg1 arg2 arg3)(lldoo f arg0 arg1 arg2 arg3)(lll f arg0 arg1)(llld f arg0 arg1 arg2)(llldd f arg0 arg1 arg2 arg3)(llldl f arg0 arg1 arg2 arg3)(llldo f arg0 arg1 arg2 arg3)(llll f arg0 arg1 arg2)(lllld f arg0 arg1 arg2 arg3)(lllll f arg0 arg1 arg2 arg3)(llllo f arg0 arg1 arg2 arg3)(lllo f arg0 arg1 arg2)(lllod f arg0 arg1 arg2 arg3)(lllol f arg0 arg1 arg2 arg3)(llloo f arg0 arg1 arg2 arg3)(llo f arg0 arg1)(llod f arg0 arg1 arg2)(llodd f arg0 arg1 arg2 arg3)(llodl f arg0 arg1 arg2 arg3)(llodo f arg0 arg1 arg2 arg3)(llol f arg0 arg1 arg2)(llold f arg0 arg1 arg2 arg3)(lloll f arg0 arg1 arg2 arg3)(llolo f arg0 arg1 arg2 arg3)(lloo f arg0 arg1 arg2)(llood f arg0 arg1 arg2 arg3)(llool f arg0 arg1 arg2 arg3)(llooo f arg0 arg1 arg2 arg3)(lo f arg0)(lod f arg0 arg1)(lodd f arg0 arg1 arg2)(loddd f arg0 arg1 arg2 arg3)(loddl f arg0 arg1 arg2 arg3)(loddo f arg0 arg1 arg2 arg3)(lodl f arg0 arg1 arg2)(lodld f arg0 arg1 arg2 arg3)(lodll f arg0 arg1 arg2 arg3)(lodlo f arg0 arg1 arg2 arg3)(lodo f arg0 arg1 arg2)(lodod f arg0 arg1 arg2 arg3)(lodol f arg0 arg1 arg2 arg3)(lodoo f arg0 arg1 arg2 arg3)(lol f arg0 arg1)(lold f arg0 arg1 arg2)(loldd f arg0 arg1 arg2 arg3)(loldl f arg0 arg1 arg2 arg3)(loldo f arg0 arg1 arg2 arg3)(loll f arg0 arg1 arg2)(lolld f arg0 arg1 arg2 arg3)(lolll f arg0 arg1 arg2 arg3)(lollo f arg0 arg1 arg2 arg3)(lolo f arg0 arg1 arg2)(lolod f arg0 arg1 arg2 arg3)(lolol f arg0 arg1 arg2 arg3)(loloo f arg0 arg1 arg2 arg3)(loo f arg0 arg1)(lood f arg0 arg1 arg2)(loodd f arg0 arg1 arg2 arg3)(loodl f arg0 arg1 arg2 arg3)(loodo f arg0 arg1 arg2 arg3)(lool f arg0 arg1 arg2)(loold f arg0 arg1 arg2 arg3)(looll f arg0 arg1 arg2 arg3)(loolo f arg0 arg1 arg2 arg3)(looo f arg0 arg1 arg2)(loood f arg0 arg1 arg2 arg3)(loool f arg0 arg1 arg2 arg3)(loooo f arg0 arg1 arg2 arg3)(od f arg0)(odd f arg0 arg1)(oddd f arg0 arg1 arg2)(odddd f arg0 arg1 arg2 arg3)(odddl f arg0 arg1 arg2 arg3)(odddo f arg0 arg1 arg2 arg3)(oddl f arg0 arg1 arg2)(oddld f arg0 arg1 arg2 arg3)(oddll f arg0 arg1 arg2 arg3)(oddlo f arg0 arg1 arg2 arg3)(oddo f arg0 arg1 arg2)(oddod f arg0 arg1 arg2 arg3)(oddol f arg0 arg1 arg2 arg3)(oddoo f arg0 arg1 arg2 arg3)(odl f arg0 arg1)(odld f arg0 arg1 arg2)(odldd f arg0 arg1 arg2 arg3)(odldl f arg0 arg1 arg2 arg3)(odldo f arg0 arg1 arg2 arg3)(odll f arg0 arg1 arg2)(odlld f arg0 arg1 arg2 arg3)(odlll f arg0 arg1 arg2 arg3)(odllo f arg0 arg1 arg2 arg3)(odlo f arg0 arg1 arg2)(odlod f arg0 arg1 arg2 arg3)(odlol f arg0 arg1 arg2 arg3)(odloo f arg0 arg1 arg2 arg3)(odo f arg0 arg1)(odod f arg0 arg1 arg2)(ododd f arg0 arg1 arg2 arg3)(ododl f arg0 arg1 arg2 arg3)(ododo f arg0 arg1 arg2 arg3)(odol f arg0 arg1 arg2)(odold f arg0 arg1 arg2 arg3)(odoll f arg0 arg1 arg2 arg3)(odolo f arg0 arg1 arg2 arg3)(odoo f arg0 arg1 arg2)(odood f arg0 arg1 arg2 arg3)(odool f arg0 arg1 arg2 arg3)(odooo f arg0 arg1 arg2 arg3)(ol f arg0)(old f arg0 arg1)(oldd f arg0 arg1 arg2)(olddd f arg0 arg1 arg2 arg3)(olddl f arg0 arg1 arg2 arg3)(olddo f arg0 arg1 arg2 arg3)(oldl f arg0 arg1 arg2)(oldld f arg0 arg1 arg2 arg3)(oldll f arg0 arg1 arg2 arg3)(oldlo f arg0 arg1 arg2 arg3)(oldo f arg0 arg1 arg2)(oldod f arg0 arg1 arg2 arg3)(oldol f arg0 arg1 arg2 arg3)(oldoo f arg0 arg1 arg2 arg3)(oll f arg0 arg1)(olld f arg0 arg1 arg2)(olldd f arg0 arg1 arg2 arg3)(olldl f arg0 arg1 arg2 arg3)(olldo f arg0 arg1 arg2 arg3)(olll f arg0 arg1 arg2)(ollld f arg0 arg1 arg2 arg3)(ollll f arg0 arg1 arg2 arg3)(olllo f arg0 arg1 arg2 arg3)(ollo f arg0 arg1 arg2)(ollod f arg0 arg1 arg2 arg3)(ollol f arg0 arg1 arg2 arg3)(olloo f arg0 arg1 arg2 arg3)(olo f arg0 arg1)(olod f arg0 arg1 arg2)(olodd f arg0 arg1 arg2 arg3)(olodl f arg0 arg1 arg2 arg3)(olodo f arg0 arg1 arg2 arg3)(olol f arg0 arg1 arg2)(olold f arg0 arg1 arg2 arg3)(ololl f arg0 arg1 arg2 arg3)(ololo f arg0 arg1 arg2 arg3)(oloo f arg0 arg1 arg2)(olood f arg0 arg1 arg2 arg3)(olool f arg0 arg1 arg2 arg3)(olooo f arg0 arg1 arg2 arg3)(ood f arg0 arg1)(oodd f arg0 arg1 arg2)(ooddd f arg0 arg1 arg2 arg3)(ooddl f arg0 arg1 arg2 arg3)(ooddo f arg0 arg1 arg2 arg3)(oodl f arg0 arg1 arg2)(oodld f arg0 arg1 arg2 arg3)(oodll f arg0 arg1 arg2 arg3)(oodlo f arg0 arg1 arg2 arg3)(oodo f arg0 arg1 arg2)(oodod f arg0 arg1 arg2 arg3)(oodol f arg0 arg1 arg2 arg3)(oodoo f arg0 arg1 arg2 arg3)(ool f arg0 arg1)(oold f arg0 arg1 arg2)(ooldd f arg0 arg1 arg2 arg3)(ooldl f arg0 arg1 arg2 arg3)(ooldo f arg0 arg1 arg2 arg3)(ooll f arg0 arg1 arg2)(oolld f arg0 arg1 arg2 arg3)(oolll f arg0 arg1 arg2 arg3)(oollo f arg0 arg1 arg2 arg3)(oolo f arg0 arg1 arg2)(oolod f arg0 arg1 arg2 arg3)(oolol f arg0 arg1 arg2 arg3)(ooloo f arg0 arg1 arg2 arg3)(oood f arg0 arg1 arg2)(ooodd f arg0 arg1 arg2 arg3)(ooodl f arg0 arg1 arg2 arg3)(ooodo f arg0 arg1 arg2 arg3)(oool f arg0 arg1 arg2)(ooold f arg0 arg1 arg2 arg3)(oooll f arg0 arg1 arg2 arg3)(ooolo f arg0 arg1 arg2 arg3)(ooood f arg0 arg1 arg2 arg3)(ooool f arg0 arg1 arg2 arg3)cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |