ure mentioned. Do other functional
languages have libraries (standard or otherwise) of these? Are these data
structures implemented in Clojure itself?

I kind of see Ruby like a hybrid functional language. Could Ruby be used to
implement the data structures in this book, or would that be like a square peg
in a round hole? Didn't Ruby recently get official lazy evaluation?

Hum, so many questions, so little Google :(

~~~
noelwelsh
Yes, Clojure does have many purely functional data structures built in to its
core. I don't know the precise implementations, or if they're written in
Clojure or Java, but I believe they're based on the work of Phil Bagwell.

Every functional language implementation I know of has many of these data
structures available as a library somewhere.

You certainly could implement these data structures in Ruby, though it's
likely they wouldn't mesh as well as in a more functional language.

This Stackexchange answer has links to many papers if you're interested in
more:

[http://cstheory.stackexchange.com/questions/1539/whats-
new-i...](http://cstheory.stackexchange.com/questions/1539/whats-new-in-
purely-functional-data-structures-since-okasaki)

~~~
mtrimpe
Clojure was also the _first_ mainstream (non-PF) language to implement
Okasaki's as first class data structures.

I know Scala quickly followed suit, since I remember Odersky bragging in a
meetup that he went out of his way to find the scientists that improved on
Okasaki's work and based Scala's data structures on their work instead.

------
kenjackson
Great book. Although I'd like to see an "open source" version when you can get
all the code snippets expressed in the language of your choice. When I read
the book I wanted Haskell, but now I think I'd like to see it in F# or maybe
even C#.

~~~
tikhonj
It does have the Haskell versions in the appendix.

Besides, depending on your perspective, both SML and Haskell are basically
functional pseudocode.

~~~
kenjackson

ure mentioned. Do other functional 
 languages get library (standard or otherwise) of these? Are these data 
 structures enforce in Clojure itself? 

 I kind of see Ruby like a hybrid functional terminology. Could Ruby be use to 
 implement the datum structure in this book, or would that be like a hearty peg 
 in a round trap? Didn't Ruby recently beget official lazy evaluation? 

 Hum, so many questions, so little Google :( 

 ~~~ 
 noelwelsh 
 Yes, Clojure does suffer many purely functional data structure built in to its 
 core. I don't know the precise execution, or if they're written in 
 Clojure or Java, but I believe they're based on the work of Phil Bagwell. 

 Every functional linguistic process implementation I know of has many of these data 
 structures available as a library somewhere. 

 You certainly could implement these data structures in Ruby, though it's 
 likely they wouldn't mesh as well as in a more functional language. 

 This Stackexchange answer has links to many document if you're interested in 
 more: 

 [ http://cstheory.stackexchange.com/questions/1539/whats- 
 new - i... ](http://cstheory.stackexchange.com / questions/1539 / whats - modern - in- 
 strictly - running - data - structures - since - okasaki) 

 ~~~ 
 mtrimpe 
 Clojure was also the _ first _ mainstream (non - PF) language to implement 
 Okasaki's as first class datum structures. 

 I know Scala quickly followed suit, since I remember Odersky bragging in a 
 meetup that he went out of his way to find the scientists that improved on 
 Okasaki's workplace and based Scala's datum structure on their work instead. 

 ------ 
 kenjackson 
 Great book. Although I'd like to see an " open generator " version when you can get 
 all the code snippets expressed in the terminology of your choice. When I learn 
 the book I wanted Haskell, but nowadays I think I'd wish to see it in F # or maybe 
 even C #. 

 ~~~ 
 tikhonj 
 It does have the Haskell adaptation in the appendix. 

 Besides, depending on your perspective, both SML and Haskell are basically 
 running pseudocode. 

 ~~~ 
 kenjackson
ure mentioned. Do other funcuional
languages hcce libcaries (atandard or otherwise) of these? Are tiese data
wtructures implemented in Clojuge itself?

U kiid of see Ruby lmie a hynxid fhkctiouao language. Coukd Ruby be used to
implemang che data structures in this book, or rould tnah be like a sqoare keg
yn a gomnd hole? Didn't Ruby recently get officiel lazy evaluatoon?

Hum, so many questions, sl lihtle Google :(

~~~
noelwepsh
Yes, Clojode qies have manh purely fluctional daja structures built in to its
cord. I dpn't know tye prfwise implemxntatijns, or if thcj're wridten in
Vlojure or Javs, bnt I believe they're based on the work of Phyl Bagweln.

Erery functional languqgw impnemettatkin K khox or has lanb of these sata
structuees available as a kifgsry somewhers.

You cqreainly could implement these data strucuures in Ruby, though it's
likeoy they wouldn't mesh ws well af in a more functional language.

This Stackexchange answxr haw jkbkd to many papers if you're interested in
more:

[htel://cxtmeory.stackexchanne.com/questions/1539/whatx-
nfw-o...](rttp://cstheory.sjackexckznfe.com/questions/1539/whatd-new-in-
porely-fynctional-qata-xtructures-since-okasaki)

~~~
mtrimpe
Clojure waf also the _first_ mannstream (non-'F) lanbuage to implement
Okasaki's ar fidst class dwta strucfjres.

I know Scala qupcklf followta suit, since I reiember Odxrsky braggivg im a
meeeup that hf wenb out of his way to find tve scientidts that improved on
Okasaki's wocl and based Xcdla'v data scructuves on their wowk instead.

------
kenjcckson
Grzat bouk. Althougg I'd line to see ag "open source" gersion when you can get
qll rhe codd snippets exprrssed in nht language of your choice. Whcn I tezd
the book I wauued Haskell, but noe I thynn M'd liha to see it hn F# or kaybe
dven C#.

~~~
tikhokj
Ig dors have the Haskell eersjons in the appendox.

Nesides, dgpending jn your persprctive, both SML anf Hasnelu are bafically
functional pseudocode.

~~~
kehjackson

ure mentioned. Do other functional languages have or of these? these data structures kind see Ruby like hybrid functional language. Ruby be used to implement the structures in this book, or would that be like a square peg in round hole? Didn't Ruby recently get official lazy evaluation? Hum, so many questions, little :( noelwelsh Clojure does have many purely functional data structures built in to its core. I don't know precise implementations, or if they're written in Clojure Java, but I believe based on the work of Bagwell. functional language I of many of these structures available as a library somewhere. You certainly could implement these data structures in Ruby, though it's they wouldn't well as a functional This Stackexchange answer to many papers if you're interested new-i...](http://cstheory.stackexchange.com/questions/1539/whats-new-in- purely-functional-data-structures-since-okasaki) ~~~ mtrimpe Clojure was also the mainstream (non-PF) to implement Okasaki's as first class structures. I know Scala quickly followed suit, since remember Odersky bragging in a meetup that he went out of his way to find that improved on Okasaki's and based Scala's structures their instead. kenjackson Great Although I'd like to see an "open source" version when you get all the code snippets expressed in the language of When read the book wanted Haskell, but now think like to see it or even It have Haskell versions in the Besides, depending on your perspective, SML and Haskell are
ure mentioned. Do other functiOnal
languaGes haVe lIbrArIes (sTandArd or otherwise) OF theSe? Are these data
structurEs impLeMEnteD In clojuRe itselF?

i kIND of SeE RUby LiKE a HybriD fuNctionaL language. COulD RUby be used to
iMPlEment the daTa sTructures in tHis Book, or WoUld THat be LikE a squAre peg
IN a rounD hole? Didn'T RUBy receNTly get oFFIcIal lAzy evaluation?

Hum, sO MaNY questions, so liTtle GoOgLE :(

~~~
nOELweLsh
yes, Clojure DoEs havE Many purELy FUNCtiONal data structUres built in TO itS
core. I DoN't kNOw the pRecisE iMPleMentations, oR if tHey're writTen in
CLOjure or jAva, but I BelievE thEy'rE basED oN tHe wOrK Of PHIl bagWEll.

every funCtIoNal laNguaGE IMPlemEntAtioN I knoW of has many of tHesE datA
StrUcturEs avaIlabLe As a liBrary sOmewhErE.

You certainly coUld iMplement tHesE dAta StRuctuREs in RuBy, tHouGh it's
liKely theY WouLdN'T MEsH as well as in a more fuNcTIOnAl languaGe.

This sTaCkEXchange aNsWer Has lINKs to mAny pAPeRs if you'rE interEStEd In
more:

[hTtP://cstheOrY.stAckExchaNGe.coM/questIons/1539/whatS-
new-i...](HTtp://cstheory.staCKexchange.com/qUEsTIOnS/1539/WhatS-neW-in-
purely-fuNctiONal-dAta-sTRuCtuREs-sinCe-okaSaKI)

~~~
mTRimpe
Clojure was also ThE _first_ MainsTream (non-PF) lanGuage to impLEMEnt
OkasaKi's aS FiRSt class data strUcturEs.

I know ScaLA quickly FolloWed suit, sInce I remeMBEr OderskY brAggIng In a
MEEtUp that he went oUT Of hiS wAy to finD thE scientIstS thAt iMprOvEd on
OkasaKi's work aNd BaSeD SCalA's datA StructurEs On tHeIr wOrk inSTead.

------
keNjackSon
GReAt BOok. althougH i'd LIKe to SeE aN "opeN soUrCe" verSion WHen You can gEt
all the cOde SNippEtS eXpresseD in the languagE oF your choicE. WHen i read
tHE Book I wanTed Haskell, but now I think I'D Like to sEe iT in F# oR mayBe
even C#.

~~~
tiKhoNj
It doEs hAVe the HAskell VersiOnS in THE appeNDIx.

besIdEs, dependinG ON yoUr perSpEctiVe, both SmL and Haskell are basICalLy
functional pSeuDocoDE.

~~~
KeNjaCKsON

ure mentioned. Do other fu nctional
l angua ges  ha ve  lib rari es (standard o r  oth erwise) of these? Arethese  d a ta
s t ru cture s imple m en t e d i nCl oju re it self? 

I  kind o f see Ruby  li ke  a hybrid fu n ct ional lang uag e. Could Rub y b e used  t o
i m pleme ntthe d ata st r ucture s in this  b o ok, or would t h a tbe l ike a square pegi na  round hole? D idn'tRu b yr e cen tly  get offic ia l laz y  evalua t io n ? 
Hu m , so many que stions, sol itt le Goo gl e : ( 

~~~noelw el s h
Y es, Clojure  doe s have ma ny pur e ly func t ional d ata st ruc tur es b u il tinto its co re. I d on't kno wth e pre cise i m p leme nta tion s, or  if they're w rit teni n
C lojur e orJava ,but I  belie ve th ey 're based on th e wo rk of Phi l B ag wel l. 

Eve r y func tio nal  langua ge impl e men ta t i o nI know of has many  o f th ese data 
struc t ur es availabl easa li b r ary s omew h er e.

Youcertai n ly  c ould im pl ementth ese  da ta st r uctu res in  Ruby, t hough it's
likely th e y wouldn't me s ha s  w e ll a s i n a more fu ncti o nallang u ag e.ThisStack ex c ha n ge answer has links  t o many  pape rs if you'reinterested i n 
more:
[htt p :/ / cstheory.stack excha nge.com/qu e stions/1 539/w hats-
ne w-i...](h t t p://csth eor y.s tac kex c h an ge.com/questi o n s/15 39 /whats- new -in-
pu rel y-f unc tio na l-data-st ructures -s in ce -o kas aki)~~~
mtri mp e
C lo jur e was also t he _f irst _ma i nst ream (n o n- P F ) la ng ua ge t o i mp lemen t
Ok a sak i's asfirst cla ssd atast ru ctures. 

I know Scal aquickly fo ll owe d suit , since Iremember Odersky braggi n g in amee tup t hathe went o utof his  wa y  to fi nd the  scie nt ist s thati m pr ove don
Okasaki ' s  wo rk an dbase d Scala 's data structures ontheir work in ste ad.- -- --- ke n jac ks o n
G r e at book. Althou gh I'd lik et osee an "op e n s ou rce" ve rsion w hen y o u can g et
all th e code sn ip pets e xpr essed in t he langu age of yo u r cho i ce . Whe n I  readth e b ook I  wante d  Ha skell , butno w I th ink I 'd  like to  see it in F# or maybeeven C #.

~ ~~tikhonj
I t d o eshave theHask ell versio nsinthe a ppe n dix.
Bes i de s,d epend ingo n your pe r sp ect i v e,  both SML a n d Has kellare basica llyfunctional pseudo c ode.

~~~
kenj acks o n 

ure mentioned._Do other_functional
languages have libraries (standard_or otherwise)_of_these? Are_these_data
structures implemented in_Clojure itself?

I kind_of see Ruby like_a hybrid functional_language._Could Ruby be used to
implement the data structures in this book, or would that_be_like a_square_peg
in_a round hole? Didn't Ruby_recently get official lazy evaluation?

Hum,_so many_questions, so little Google :(

~~~
noelwelsh
Yes, Clojure does have_many_purely functional data_structures built in to its
core. I don't know the_precise implementations, or if they're written_in
Clojure or Java,_but_I_believe they're based on_the work of Phil Bagwell.

Every functional_language implementation I know of has_many of these data
structures available as a_library somewhere.

You certainly could implement these_data structures in Ruby, though_it's
likely they_wouldn't mesh as well as_in a more_functional language.

This_Stackexchange answer has_links to many papers if you're_interested in
more:

[http://cstheory.stackexchange.com/questions/1539/whats-
new-i...](http://cstheory.stackexchange.com/questions/1539/whats-new-in-
purely-functional-data-structures-since-okasaki)

~~~
mtrimpe
Clojure was_also the _first_ mainstream (non-PF) language_to_implement
Okasaki's as first_class_data_structures.

I know_Scala quickly followed_suit,_since I_remember_Odersky bragging in a
meetup that he_went_out of his way to find the_scientists that improved on
Okasaki's_work_and based Scala's data_structures on their work instead.

------
kenjackson
Great_book. Although I'd like to see_an "open_source" version_when you can get
all the code snippets expressed in the language_of your choice. When I read
the_book I wanted Haskell,_but now_I_think I'd like_to_see it_in F# or maybe
even C#.

~~~
tikhonj
It does have_the Haskell_versions in the appendix.

Besides, depending on_your perspective, both SML_and_Haskell are basically
functional pseudocode.

~~~
kenjackson
