Updating conversion, creating readmes
This commit is contained in:
108
terminal/ocaml
108
terminal/ocaml
@@ -5,8 +5,8 @@
|
||||
|
||||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12m_[39m[38;5;14m[1mEverything you'll ever need on the road to mastering OCaml.[0m[38;5;12m_[39m
|
||||
|
||||
[38;5;12mA[39m[38;5;12m [39m[38;5;12mcurated[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mreferences[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mawesome[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mtools,[39m[38;5;12m [39m[38;5;12mframeworks,[39m[38;5;12m [39m[38;5;12mlibraries,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12marticles.[39m[38;5;12m [39m[38;5;12mAdditionally,[39m[38;5;12m [39m[38;5;12mthere[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcollection[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfreely[39m[38;5;12m [39m[38;5;12mavailable[39m[38;5;12m [39m[38;5;12mbooks[39m[38;5;12m [39m[38;5;12m(https://github.com/rizo/awesome-ocaml/tree/master/books),[39m[38;5;12m [39m
|
||||
[38;5;12mpapers[39m[38;5;12m [39m[38;5;12m(https://github.com/rizo/awesome-ocaml/tree/master/papers),[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpresentations[39m[38;5;12m [39m[38;5;12m(https://github.com/rizo/awesome-ocaml/tree/master/presentations).[39m
|
||||
[38;5;12mA[39m[38;5;12m [39m[38;5;12mcurated[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mreferences[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mawesome[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mtools,[39m[38;5;12m [39m[38;5;12mframeworks,[39m[38;5;12m [39m[38;5;12mlibraries,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12marticles.[39m[38;5;12m [39m[38;5;12mAdditionally,[39m[38;5;12m [39m[38;5;12mthere[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcollection[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfreely[39m[38;5;12m [39m[38;5;12mavailable[39m[38;5;12m [39m[38;5;12mbooks[39m[38;5;12m [39m[38;5;12m(https://github.com/rizo/awesome-ocaml/tree/master/books),[39m[38;5;12m [39m[38;5;12mpapers[39m[38;5;12m [39m
|
||||
[38;5;12m(https://github.com/rizo/awesome-ocaml/tree/master/papers),[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mpresentations[39m[38;5;12m [39m[38;5;12m(https://github.com/rizo/awesome-ocaml/tree/master/presentations).[39m
|
||||
|
||||
[38;5;12mIf you're looking for comprehensive community-driven content about OCaml, visit 📚[39m[38;5;14m[1mOCamlverse[0m[38;5;12m (https://ocamlverse.github.io/)![39m
|
||||
|
||||
@@ -83,8 +83,7 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mKe[0m[38;5;12m (https://github.com/mirage/ke) - Fast implementation of queue (FIFO) in OCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mDuff[0m[38;5;12m (https://github.com/mirage/duff) - Implementation of Rabin's fingerprint and delta compression by P. MacDonald in OCaml (same as [39m[38;5;14m[1mlibXdiff[0m[38;5;12m (http://www.xmailserver.org/xdiff-lib.html)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mORaft[0m[38;5;12m (https://github.com/komamitsu/oraft) - Library of [39m[38;5;14m[1mRaft consensus algorithm[0m[38;5;12m (https://raft.github.io/raft.pdf) implemented in OCaml[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mODiff[0m[38;5;12m [39m[38;5;12m(https://github.com/dmtrKovalenko/odiff)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mLibrary[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;14m[1mYIQ[0m[38;5;14m[1m [0m[38;5;14m[1mNTSC[0m[38;5;14m[1m [0m[38;5;14m[1mtransmission[0m[38;5;14m[1m [0m[38;5;14m[1mimage[0m[38;5;14m[1m [0m[38;5;14m[1mdifference[0m[38;5;14m[1m [0m[38;5;14m[1malghoritm[0m[38;5;12m [39m[38;5;12m(http://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf)[39m[38;5;12m [39m[38;5;12mimplemented[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mReasonML.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mODiff[0m[38;5;12m (https://github.com/dmtrKovalenko/odiff) – Library of [39m[38;5;14m[1mYIQ NTSC transmission image difference alghoritm[0m[38;5;12m (http://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf) implemented in OCaml and ReasonML.[39m
|
||||
|
||||
[38;2;255;187;0m[4mApplication Libraries[0m
|
||||
|
||||
@@ -116,35 +115,33 @@
|
||||
|
||||
[38;2;255;187;0m[4mBooks[0m
|
||||
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMore[0m[38;5;14m[1m [0m[38;5;14m[1mOCaml:[0m[38;5;14m[1m [0m[38;5;14m[1mAlgorithms,[0m[38;5;14m[1m [0m[38;5;14m[1mMethods,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mDiversions[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/More-OCaml-Algorithms-Methods-Diversions/dp/0957671113/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mMore[39m[38;5;12m [39m[38;5;12mOCaml,[39m[38;5;12m [39m[38;5;12mJohn[39m[38;5;12m [39m[38;5;12mWhitington[39m[38;5;12m [39m[38;5;12mtakes[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmeandering[39m[38;5;12m [39m[38;5;12mtour[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m
|
||||
[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mOCaml,[39m[38;5;12m [39m[38;5;12mintroducing[39m[38;5;12m [39m[38;5;12mvarious[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdescribing[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mclassic[39m[38;5;12m [39m[38;5;12malgorithms.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mends[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlarge-scale[39m[38;5;12m [39m[38;5;12mexample[39m[38;5;12m [39m[38;5;12mdealing[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mproduction[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mPDF[39m[38;5;12m [39m[38;5;12mfiles.[39m[38;5;12m [39m[38;5;12mThere[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mquestions[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m
|
||||
[38;5;12meach[39m[38;5;12m [39m[38;5;12mchapter,[39m[38;5;12m [39m[38;5;12malong[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mworked-out[39m[38;5;12m [39m[38;5;12manswers[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhints.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mThink[0m[38;5;14m[1m [0m[38;5;14m[1mLike[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1m(Functional)[0m[38;5;14m[1m [0m[38;5;14m[1mProgrammer[0m[38;5;12m [39m[38;5;12m(http://www.greenteapress.com/thinkocaml/index.html)[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mAllen[39m[38;5;12m [39m[38;5;12mDowney[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mNicholas[39m[38;5;12m [39m[38;5;12mMonje[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mHow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mThink[39m[38;5;12m [39m[38;5;12mLike[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mComputer[39m[38;5;12m [39m[38;5;12mScientist[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mintroductory[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m
|
||||
[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mlanguage.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmodified[39m[38;5;12m [39m[38;5;12mversion[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mThink[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mAllen[39m[38;5;12m [39m[38;5;12mDowney.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mintended[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mnewcomers[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[38;5;12mwho[39m[38;5;12m [39m[38;5;12mknow[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mwant[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m
|
||||
[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfunction-oriented[39m[38;5;12m [39m[38;5;12mparadigm,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[38;5;12mwho[39m[38;5;12m [39m[38;5;12msimply[39m[38;5;12m [39m[38;5;12mwant[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mOCaml.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOCaml[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mVery[0m[38;5;14m[1m [0m[38;5;14m[1mBeginning[0m[38;5;12m [39m[38;5;12m(http://ocaml-book.com/)[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mJ.[39m[38;5;12m [39m[38;5;12mWhitington[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mVery[39m[38;5;12m [39m[38;5;12mBeginning[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mappeal[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mnew[39m[38;5;12m [39m[38;5;12mprogrammers[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mexperienced[39m[38;5;12m [39m[38;5;12mprogrammers[39m[38;5;12m [39m[38;5;12meager[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mexplore[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mlanguages[39m[38;5;12m [39m
|
||||
[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mOCaml.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPearls[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mAlgorithm[0m[38;5;14m[1m [0m[38;5;14m[1mDesign[0m[38;5;12m [39m[38;5;12m(https://www.amazon.co.uk/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383)[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mRichard[39m[38;5;12m [39m[38;5;12mBird[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12msummarizes[39m[38;5;12m [39m[38;5;12m30[39m[38;5;12m [39m[38;5;12mhard[39m[38;5;12m [39m[38;5;12malgorithmic[39m[38;5;12m [39m[38;5;12mproblems[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfunction[39m[38;5;12m [39m
|
||||
[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mworld.[39m[38;5;12m [39m[38;5;12mAlthough[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mHaskell,[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12malgorithm[39m[38;5;12m [39m[38;5;12mproblems[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12minteresting,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtrying[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msolve[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mhelps[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mthinking[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming.[39m[38;5;12m [39m[38;5;12mPartial[39m[38;5;12m [39m[38;5;12msolutions[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m
|
||||
[38;5;14m[1mhere[0m[38;5;12m [39m[38;5;12m(https://github.com/MassD/pearls).[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMore[0m[38;5;14m[1m [0m[38;5;14m[1mOCaml:[0m[38;5;14m[1m [0m[38;5;14m[1mAlgorithms,[0m[38;5;14m[1m [0m[38;5;14m[1mMethods,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mDiversions[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/More-OCaml-Algorithms-Methods-Diversions/dp/0957671113/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mIn[39m[38;5;12m [39m[38;5;12mMore[39m[38;5;12m [39m[38;5;12mOCaml,[39m[38;5;12m [39m[38;5;12mJohn[39m[38;5;12m [39m[38;5;12mWhitington[39m[38;5;12m [39m[38;5;12mtakes[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmeandering[39m[38;5;12m [39m[38;5;12mtour[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mOCaml,[39m[38;5;12m [39m
|
||||
[38;5;12mintroducing[39m[38;5;12m [39m[38;5;12mvarious[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdescribing[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mclassic[39m[38;5;12m [39m[38;5;12malgorithms.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mends[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlarge-scale[39m[38;5;12m [39m[38;5;12mexample[39m[38;5;12m [39m[38;5;12mdealing[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mproduction[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mPDF[39m[38;5;12m [39m[38;5;12mfiles.[39m[38;5;12m [39m[38;5;12mThere[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mquestions[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12meach[39m[38;5;12m [39m[38;5;12mchapter,[39m[38;5;12m [39m[38;5;12malong[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mworked-out[39m[38;5;12m [39m[38;5;12manswers[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mhints.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mThink[0m[38;5;14m[1m [0m[38;5;14m[1mLike[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1m(Functional)[0m[38;5;14m[1m [0m[38;5;14m[1mProgrammer[0m[38;5;12m [39m[38;5;12m(http://www.greenteapress.com/thinkocaml/index.html)[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mAllen[39m[38;5;12m [39m[38;5;12mDowney[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mNicholas[39m[38;5;12m [39m[38;5;12mMonje[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mHow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mThink[39m[38;5;12m [39m[38;5;12mLike[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mComputer[39m[38;5;12m [39m[38;5;12mScientist[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mintroductory[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m
|
||||
[38;5;12mlanguage.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmodified[39m[38;5;12m [39m[38;5;12mversion[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mThink[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mAllen[39m[38;5;12m [39m[38;5;12mDowney.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mintended[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mnewcomers[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[38;5;12mwho[39m[38;5;12m [39m[38;5;12mknow[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mwant[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfunction-oriented[39m[38;5;12m [39m[38;5;12mparadigm,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[38;5;12mwho[39m[38;5;12m [39m
|
||||
[38;5;12msimply[39m[38;5;12m [39m[38;5;12mwant[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mOCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mOCaml from the Very Beginning[0m[38;5;12m (http://ocaml-book.com/) by J. Whitington - OCaml from the Very Beginning will appeal both to new programmers and experienced programmers eager to explore functional languages such as OCaml.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPearls[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mAlgorithm[0m[38;5;14m[1m [0m[38;5;14m[1mDesign[0m[38;5;12m [39m[38;5;12m(https://www.amazon.co.uk/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383)[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mRichard[39m[38;5;12m [39m[38;5;12mBird[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12msummarizes[39m[38;5;12m [39m[38;5;12m30[39m[38;5;12m [39m[38;5;12mhard[39m[38;5;12m [39m[38;5;12malgorithmic[39m[38;5;12m [39m[38;5;12mproblems[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfunction[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mworld.[39m[38;5;12m [39m[38;5;12mAlthough[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m
|
||||
[38;5;12mfor[39m[38;5;12m [39m[38;5;12mHaskell,[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12malgorithm[39m[38;5;12m [39m[38;5;12mproblems[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12minteresting,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtrying[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msolve[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mhelps[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mthinking[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming.[39m[38;5;12m [39m[38;5;12mPartial[39m[38;5;12m [39m[38;5;12msolutions[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;14m[1mhere[0m[38;5;12m [39m[38;5;12m(https://github.com/MassD/pearls).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mReal World OCaml[0m[38;5;12m (https://realworldocaml.org/) by Y. Minsky, A. Madhavapeddy, and J. Hickey - Functional Programming for the masses.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mUnix System Programming in OCaml[0m[38;5;12m (https://ocaml.github.io/ocamlunix/) by X. Leroy and D. Rémy – Introduction to Unix Systems Programming, with an emphasis on communications between processes.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mUsing, Understanding, and Unraveling OCaml[0m[38;5;12m (https://caml.inria.fr/pub/docs/u3-ocaml) – This book describes both the OCaml language and the theoretical grounds behind its powerful type system.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPurely[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mData[0m[38;5;14m[1m [0m[38;5;14m[1mStructures[0m[38;5;12m [39m[38;5;12m(https://www.amazon.co.uk/Purely-Functional-Structures-Chris-Okasaki/dp/0521631246/ref=sr_1_1?ie=UTF8&qid=1406279836&sr=8-1&keywords=functional+data+structures)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||||
[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mfocus[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mvarious[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mstructures[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mFP[39m[38;5;12m [39m[38;5;12mworld.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mmust-read[39m[38;5;12m [39m[38;5;12mone.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mPurely[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mData[0m[38;5;14m[1m [0m[38;5;14m[1mStructures[0m[38;5;12m [39m[38;5;12m(https://www.amazon.co.uk/Purely-Functional-Structures-Chris-Okasaki/dp/0521631246/ref=sr_1_1?ie=UTF8&qid=1406279836&sr=8-1&keywords=functional+data+structures)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfirst[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mfocus[39m[38;5;12m [39m
|
||||
[38;5;12mon[39m[38;5;12m [39m[38;5;12mvarious[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mstructures[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mFP[39m[38;5;12m [39m[38;5;12mworld.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mmust-read[39m[38;5;12m [39m[38;5;12mone.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mOCaml for Scientists[0m[38;5;12m (http://www.ffconsultancy.com/products/ocaml_for_scientists/) - by Jon Harrop.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mOCaml Programming: Correct + Efficient + Beautiful[0m[38;5;12m (https://cs3110.github.io/textbook) - Textbook on Functional Programming and Data Structures in OCaml - by Michael R. Clarkson et al.[39m
|
||||
|
||||
[38;2;255;187;0m[4mVideos[0m
|
||||
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOCaml[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming:[0m[38;5;14m[1m [0m[38;5;14m[1mCorrect[0m[38;5;14m[1m [0m[38;5;14m[1m+[0m[38;5;14m[1m [0m[38;5;14m[1mEfficient[0m[38;5;14m[1m [0m[38;5;14m[1m+[0m[38;5;14m[1m [0m[38;5;14m[1mBeautiful[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/playlist?list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mList[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m200[39m[38;5;12m [39m[38;5;12mbite-sized[39m[38;5;12m [39m[38;5;12mvideos[39m[38;5;12m [39m[38;5;12mrecorded[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mMichael[39m[38;5;12m [39m[38;5;12mR.[39m[38;5;12m [39m[38;5;12mClarkson.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwatched[39m
|
||||
[38;5;12mindependently[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mtitled[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlisted[39m[38;5;12m [39m[38;5;12mabove[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mBooks[0m[38;5;14m[1m [0m[38;5;14m[1msection[0m[38;5;12m [39m[38;5;12m(#books).[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOCaml[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming:[0m[38;5;14m[1m [0m[38;5;14m[1mCorrect[0m[38;5;14m[1m [0m[38;5;14m[1m+[0m[38;5;14m[1m [0m[38;5;14m[1mEfficient[0m[38;5;14m[1m [0m[38;5;14m[1m+[0m[38;5;14m[1m [0m[38;5;14m[1mBeautiful[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/playlist?list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mList[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m200[39m[38;5;12m [39m[38;5;12mbite-sized[39m[38;5;12m [39m[38;5;12mvideos[39m[38;5;12m [39m[38;5;12mrecorded[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mMichael[39m[38;5;12m [39m[38;5;12mR.[39m[38;5;12m [39m[38;5;12mClarkson.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwatched[39m[38;5;12m [39m[38;5;12mindependently[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||||
[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mtitled[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlisted[39m[38;5;12m [39m[38;5;12mabove[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mBooks[0m[38;5;14m[1m [0m[38;5;14m[1msection[0m[38;5;12m [39m[38;5;12m(#books).[39m
|
||||
|
||||
[38;2;255;187;0m[4mCode Analysis and Linters[0m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mMascot[0m[38;5;12m (http://mascot.x9c.fr/) - Mascot is a style-checker for OCaml sources.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mpfff[0m[38;5;12m [39m[38;5;12m(https://github.com/returntocorp/pfff)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mpfff[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtools[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mAPIs[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mperform[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mstatic[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mdynamic[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mvisualizations,[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mnavigations,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mstyle-preserving[39m[38;5;12m [39m[38;5;12msource-to-source[39m[38;5;12m [39m
|
||||
[38;5;12mtransformations[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mrefactorings[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mcode.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mpfff[0m[38;5;12m [39m[38;5;12m(https://github.com/returntocorp/pfff)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mpfff[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtools[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mAPIs[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mperform[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mstatic[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mdynamic[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mvisualizations,[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mnavigations,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mstyle-preserving[39m[38;5;12m [39m[38;5;12msource-to-source[39m[38;5;12m [39m[38;5;12mtransformations[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m
|
||||
[38;5;12mrefactorings[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mcode.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mInfer[0m[38;5;12m (https://github.com/facebook/infer) - Infer is a static analyzer for Java, C and Objective-C[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mFrama-C[0m[38;5;12m (http://frama-c.com) - Frama-C is a static analysis and formal proof framework for C and C++.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mflow[0m[38;5;12m (https://github.com/facebook/flow) - flow is a static type checker for JavaScript.[39m
|
||||
@@ -196,8 +193,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mConcurrency[0m
|
||||
|
||||
[38;5;12mTwo[39m[38;5;12m [39m[38;5;12mconcurrency[39m[38;5;12m [39m[38;5;12mlibraries[39m[38;5;12m [39m[38;5;12mexist[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml:[39m[38;5;12m [39m[38;5;12m_Lwt_[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12m_Async_.[39m[38;5;12m [39m[38;5;12mThey[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12msimilar[39m[38;5;12m [39m[38;5;12mfunctionality[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mmake[39m[38;5;12m [39m[38;5;12mradically[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mdecisions[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mregards[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12merror[39m[38;5;12m [39m[38;5;12mhandling[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minternal[39m[38;5;12m [39m[38;5;12mimplementation[39m[38;5;12m [39m[38;5;12mdetails[39m[38;5;12m [39m[38;5;12m(see[39m
|
||||
[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlinks[39m[38;5;12m [39m[38;5;12mbelow[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mdetails).[39m[38;5;12m [39m[38;5;14m[1mReal[0m[38;5;14m[1m [0m[38;5;14m[1mWorld[0m[38;5;14m[1m [0m[38;5;14m[1mOCaml[0m[38;5;12m [39m[38;5;12m(https://realworldocaml.org/)[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12mAsync,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mversion[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mcode[0m[38;5;14m[1m [0m[38;5;14m[1mexamples[0m[38;5;14m[1m [0m[38;5;14m[1mtranslated[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mLwt[0m[38;5;12m [39m[38;5;12m(https://github.com/dkim/rwo-lwt)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mavailable.[39m
|
||||
[38;5;12mTwo[39m[38;5;12m [39m[38;5;12mconcurrency[39m[38;5;12m [39m[38;5;12mlibraries[39m[38;5;12m [39m[38;5;12mexist[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml:[39m[38;5;12m [39m[38;5;12m_Lwt_[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12m_Async_.[39m[38;5;12m [39m[38;5;12mThey[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12mvery[39m[38;5;12m [39m[38;5;12msimilar[39m[38;5;12m [39m[38;5;12mfunctionality[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mmake[39m[38;5;12m [39m[38;5;12mradically[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mdecisions[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mregards[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12merror[39m[38;5;12m [39m[38;5;12mhandling[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minternal[39m[38;5;12m [39m[38;5;12mimplementation[39m[38;5;12m [39m[38;5;12mdetails[39m[38;5;12m [39m[38;5;12m(see[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlinks[39m[38;5;12m [39m[38;5;12mbelow[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmore[39m
|
||||
[38;5;12mdetails).[39m[38;5;12m [39m[38;5;14m[1mReal[0m[38;5;14m[1m [0m[38;5;14m[1mWorld[0m[38;5;14m[1m [0m[38;5;14m[1mOCaml[0m[38;5;12m [39m[38;5;12m(https://realworldocaml.org/)[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12mAsync,[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mversion[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mcode[0m[38;5;14m[1m [0m[38;5;14m[1mexamples[0m[38;5;14m[1m [0m[38;5;14m[1mtranslated[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mLwt[0m[38;5;12m [39m[38;5;12m(https://github.com/dkim/rwo-lwt)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mavailable.[39m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mLibraries[0m[38;5;12m:[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mLwt[0m[38;5;12m (http://ocsigen.org/lwt/) — A cooperative threads library for OCaml.[39m
|
||||
@@ -239,8 +236,7 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mImplementing the Binary Memcached Protocol with Ocaml and Bitstring[0m[38;5;12m (https://andreas.github.io/2014/08/22/implementing-the-binary-memcached-protocol-with-ocaml-and-bitstring/)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mInterfacing OCaml and PostgreSQL with Caqti[0m[38;5;12m (https://medium.com/@bobbypriambodo/interfacing-ocaml-and-postgresql-with-caqti-a92515bdaa11)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mFinally, Type-Safe, Extensible and Efficient Language Integrated Query[0m[38;5;12m (https://www.cs.tsukuba.ac.jp/~kam/papers/pepm2016a.pdf) by Oleg and Co. [39m
|
||||
[48;5;235m[38;5;249mThe proposed approach is to describe SQL queries in type-safe manner and optimize them (using term rewriting or normalization-by evaluation) before sending to database engine. It potentially could optimize O(n^2[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
[48;5;235m[38;5;249m) queries to O(n) ones.[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
[48;5;235m[38;5;249mThe proposed approach is to describe SQL queries in type-safe manner and optimize them (using term rewriting or normalization-by evaluation) before sending to database engine. It potentially could optimize O(n^2) queries to O(n) ones.[49m[39m
|
||||
|
||||
|
||||
[38;2;255;187;0m[4mDatetime[0m
|
||||
@@ -254,8 +250,8 @@
|
||||
[38;2;255;187;0m[4mDeveloper Tools[0m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mTry OCaml[0m[38;5;12m (https://try.ocamlpro.com/) – Try OCaml in your web browser.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mlearn-ocaml[0m[38;5;12m [39m[38;5;12m(https://github.com/ocaml-sf/learn-ocaml).[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mapp[39m[38;5;12m [39m[38;5;12m(written[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml)[39m[38;5;12m [39m[38;5;12munderlying[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlearn-ocaml-corpus.[39m[38;5;12m [39m[38;5;12mCan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mcustomized[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mserve[39m[38;5;12m [39m[38;5;12mlectures[39m[38;5;12m [39m[38;5;12m(with[39m[38;5;12m [39m[38;5;12mMarkdown[39m[38;5;12m [39m[38;5;12mslides),[39m[38;5;12m [39m[38;5;12mplaygrounds[39m[38;5;12m [39m[38;5;12m(with[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtoplevel[39m[38;5;12m [39m
|
||||
[38;5;12mprelude),[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minteractive[39m[38;5;12m [39m[38;5;12mexercises[39m[38;5;12m [39m[38;5;12m(with[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mtests).[39m[38;5;12m [39m[38;5;12mMIT[39m[38;5;12m [39m[38;5;12mLicense.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mlearn-ocaml[0m[38;5;12m [39m[38;5;12m(https://github.com/ocaml-sf/learn-ocaml).[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mapp[39m[38;5;12m [39m[38;5;12m(written[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml)[39m[38;5;12m [39m[38;5;12munderlying[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlearn-ocaml-corpus.[39m[38;5;12m [39m[38;5;12mCan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mcustomized[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mserve[39m[38;5;12m [39m[38;5;12mlectures[39m[38;5;12m [39m[38;5;12m(with[39m[38;5;12m [39m[38;5;12mMarkdown[39m[38;5;12m [39m[38;5;12mslides),[39m[38;5;12m [39m[38;5;12mplaygrounds[39m[38;5;12m [39m[38;5;12m(with[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtoplevel[39m[38;5;12m [39m[38;5;12mprelude),[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minteractive[39m[38;5;12m [39m
|
||||
[38;5;12mexercises[39m[38;5;12m [39m[38;5;12m(with[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mtests).[39m[38;5;12m [39m[38;5;12mMIT[39m[38;5;12m [39m[38;5;12mLicense.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mlearn-ocaml.el[0m[38;5;12m (https://github.com/pfitaxel/learn-ocaml.el). Minor mode for Emacs that can display exercise topics and grade exercise solutions, after logging to a Learn-OCaml instance. MIT License.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mBetterOCaml[0m[38;5;12m (https://betterocaml.ml) – An efficient, intuitive, and cross-platform web IDE with your OCaml code interpreted and running in your browser![39m
|
||||
[38;5;12m- [39m[38;5;14m[1mcodingground[0m[38;5;12m (https://www.tutorialspoint.com/compile_ocaml_online.php) – Compile and execute OCaml code online.[39m
|
||||
@@ -297,16 +293,16 @@
|
||||
[38;5;12m- [39m[38;5;14m[1m99 problems[0m[38;5;12m (https://ocaml.org/learn/tutorials/99problems.html). 99% of the solutions are [39m[38;5;14m[1mhere[0m[38;5;12m (https://github.com/MassD/99).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mlearn-ocaml-corpus[0m[38;5;12m (https://ocaml-sf.org/learn-ocaml-public/#activity=exercises). Corpus of beginner-to-advanced online exercises (including those from the OCaml MOOC) with automatic grading tests.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mRosetta Code[0m[38;5;12m (http://rosettacode.org/wiki/Category:OCaml)[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOCaml[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mExercism[0m[38;5;12m [39m[38;5;12m(http://exercism.io/languages/ocaml)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mExercism[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mplace[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mengage[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthoughtful[39m[38;5;12m [39m[38;5;12mconversations[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mcode.[39m[38;5;12m [39m[38;5;12mExplore[39m[38;5;12m [39m[38;5;12msimplicity,[39m[38;5;12m [39m[38;5;12midiomatic[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mfeatures,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mexpressive,[39m[38;5;12m [39m[38;5;12mreadable[39m[38;5;12m [39m[38;5;12mcode.[39m
|
||||
[38;5;14m[1mSolutions[0m[38;5;12m [39m[38;5;12m(https://github.com/exercism/xocaml).[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOCaml[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mExercism[0m[38;5;12m [39m[38;5;12m(http://exercism.io/languages/ocaml)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mExercism[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mplace[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mengage[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthoughtful[39m[38;5;12m [39m[38;5;12mconversations[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mcode.[39m[38;5;12m [39m[38;5;12mExplore[39m[38;5;12m [39m[38;5;12msimplicity,[39m[38;5;12m [39m[38;5;12midiomatic[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mfeatures,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mexpressive,[39m[38;5;12m [39m[38;5;12mreadable[39m[38;5;12m [39m[38;5;12mcode.[39m[38;5;12m [39m[38;5;14m[1mSolutions[0m[38;5;12m [39m
|
||||
[38;5;12m(https://github.com/exercism/xocaml).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mProgramming Language Examples Alike Cookbook[0m[38;5;12m (http://pleac.sourceforge.net/pleac_ocaml/index.html) - The OCaml section of the book is a free reference for solving common programming problems using OCaml.[39m
|
||||
|
||||
[38;2;255;187;0m[4mFormal Software Verification[0m
|
||||
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCoq[0m[38;5;12m [39m[38;5;12m(https://coq.inria.fr/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mCoq[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mproof[39m[38;5;12m [39m[38;5;12mmanagement[39m[38;5;12m [39m[38;5;12msystem.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12mmathematical[39m[38;5;12m [39m[38;5;12mdefinitions,[39m[38;5;12m [39m[38;5;12mexecutable[39m[38;5;12m [39m[38;5;12malgorithms,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtheorems,[39m[38;5;12m [39m[38;5;12mtogether[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12menvironment[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m
|
||||
[38;5;12msemi-interactive[39m[38;5;12m [39m[38;5;12mdevelopment[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmachine-checked[39m[38;5;12m [39m[38;5;12mproofs.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhy3[0m[38;5;12m [39m[38;5;12m(http://why3.lri.fr/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mWhy3[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mplatform[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdeductive[39m[38;5;12m [39m[38;5;12mprogram[39m[38;5;12m [39m[38;5;12mverification.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mrich[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mspecification[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mprogramming,[39m[38;5;12m [39m[38;5;12mcalled[39m[38;5;12m [39m[38;5;12mWhyML,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mrelies[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mexternal[39m[38;5;12m [39m[38;5;12mtheorem[39m[38;5;12m [39m[38;5;12mprovers,[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m
|
||||
[38;5;12mautomated[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minteractive,[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdischarge[39m[38;5;12m [39m[38;5;12mverification[39m[38;5;12m [39m[38;5;12mconditions.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCoq[0m[38;5;12m [39m[38;5;12m(https://coq.inria.fr/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mCoq[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mproof[39m[38;5;12m [39m[38;5;12mmanagement[39m[38;5;12m [39m[38;5;12msystem.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12mmathematical[39m[38;5;12m [39m[38;5;12mdefinitions,[39m[38;5;12m [39m[38;5;12mexecutable[39m[38;5;12m [39m[38;5;12malgorithms,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mtheorems,[39m[38;5;12m [39m[38;5;12mtogether[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12menvironment[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12msemi-interactive[39m[38;5;12m [39m[38;5;12mdevelopment[39m
|
||||
[38;5;12mof[39m[38;5;12m [39m[38;5;12mmachine-checked[39m[38;5;12m [39m[38;5;12mproofs.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWhy3[0m[38;5;12m [39m[38;5;12m(http://why3.lri.fr/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mWhy3[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mplatform[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdeductive[39m[38;5;12m [39m[38;5;12mprogram[39m[38;5;12m [39m[38;5;12mverification.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mrich[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mspecification[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mprogramming,[39m[38;5;12m [39m[38;5;12mcalled[39m[38;5;12m [39m[38;5;12mWhyML,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mrelies[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mexternal[39m[38;5;12m [39m[38;5;12mtheorem[39m[38;5;12m [39m[38;5;12mprovers,[39m[38;5;12m [39m[38;5;12mboth[39m[38;5;12m [39m[38;5;12mautomated[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minteractive,[39m[38;5;12m [39m
|
||||
[38;5;12mto[39m[38;5;12m [39m[38;5;12mdischarge[39m[38;5;12m [39m[38;5;12mverification[39m[38;5;12m [39m[38;5;12mconditions.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mAlt-Ergo[0m[38;5;12m (http://alt-ergo.lri.fr/) – Alt-Ergo is an open-source SMT solver dedicated to the proof of mathematical formulas generated in the context of program verification.[39m
|
||||
|
||||
|
||||
@@ -356,8 +352,8 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mlablqml[0m[38;5;12m (https://github.com/Kakadu/lablqml) – QML Qt5 bindings for OCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mlabltk[0m[38;5;12m (https://forge.ocamlcore.org/projects/labltk/) — Interface to the Tcl/Tk GUI framework. In the standard distribution for ocaml <= 4.01.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mTSDL[0m[38;5;12m (http://erratique.ch/software/tsdl) – Tsdl is an OCaml module providing thin bindings to the cross-platform SDL library.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mLambda-Term[0m[38;5;12m [39m[38;5;12m(https://github.com/ocaml-community/lambda-term)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mLambda-Term[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcross-platform[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmanipulating[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mterminal.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mabstraction[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mkeys,[39m[38;5;12m [39m[38;5;12mmouse[39m[38;5;12m [39m[38;5;12mevents,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcolors,[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mwell[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m
|
||||
[38;5;12mset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mwidgets[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12mcurses-like[39m[38;5;12m [39m[38;5;12mapplications.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mLambda-Term[0m[38;5;12m [39m[38;5;12m(https://github.com/ocaml-community/lambda-term)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mLambda-Term[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcross-platform[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmanipulating[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mterminal.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mabstraction[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mkeys,[39m[38;5;12m [39m[38;5;12mmouse[39m[38;5;12m [39m[38;5;12mevents,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcolors,[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mwell[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mwidgets[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m
|
||||
[38;5;12mcurses-like[39m[38;5;12m [39m[38;5;12mapplications.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mNotty[0m[38;5;12m (https://github.com/pqwy/notty) - Notty is a declarative terminal library for OCaml, structured around the notion of composable images.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-linenoise[0m[38;5;12m (https://github.com/ocaml-community/ocaml-linenoise) - Self-contained OCaml bindings to linenoise; easy high-level readline functionality in OCaml.[39m
|
||||
|
||||
@@ -386,8 +382,7 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mmirage[0m[38;5;12m (https://github.com/mirage/mirage) - library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mMLDonkey[0m[38;5;12m (https://github.com/ygrek/mldonkey) - cross-platform multi-network peer-to-peer daemon[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mOni2[0m[38;5;12m (https://github.com/onivim/oni2) - Native, lightweight modal code editor.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mpfff[0m[38;5;12m [39m[38;5;12m(https://github.com/returntocorp/pfff)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mAPI[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12mstatic[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mdynamic[39m[38;5;12m [39m[38;5;12manalysis,[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mvisualizations,[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mnavigations,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mstyle-preserving[39m[38;5;12m [39m[38;5;12msource-to-source[39m[38;5;12m [39m[38;5;12mtransformations[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m
|
||||
[38;5;12mrefactorings[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mcode.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mpfff[0m[38;5;12m (https://github.com/returntocorp/pfff) - an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mWHY3[0m[38;5;12m (https://gitlab.inria.fr/why3/why3) - platform for deductive program verification[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mxen-api[0m[38;5;12m (https://github.com/xapi-project/xen-api) - management stack that configures and controls Xen-enabled hosts and resource pools, and co-ordinates resources within the pool.[39m
|
||||
|
||||
@@ -434,8 +429,7 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mppx_deriving_yojson[0m[38;5;12m (https://github.com/whitequark/ppx_deriving_yojson) – A Yojson codec generator for OCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mTools and Language Extensions[0m[38;5;12m:[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mMetaOCaml[0m[38;5;12m (http://okmij.org/ftp/ML/MetaOCaml.html) – an OCaml dialect for multi-stage programming.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mFan[0m[38;5;12m [39m[38;5;12m(http://bobzhang.github.io/fan/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mFan[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcompile-time[39m[38;5;12m [39m[38;5;12mmetaprogramming[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml,[39m[38;5;12m [39m[38;5;12moriginally[39m[38;5;12m [39m[38;5;12minspired[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mCamlp4.[39m[38;5;12m [39m[38;5;12mIt's[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcombination[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mLispy[39m[38;5;12m [39m[38;5;12mMacros.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mshares[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mconcrete[39m[38;5;12m [39m
|
||||
[38;5;12msyntax[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mOCaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mFan[0m[38;5;12m (http://bobzhang.github.io/fan/) – Fan is a compile-time metaprogramming system for OCaml, originally inspired from Camlp4. It's a combination of OCaml and Lispy Macros. It shares the same concrete syntax with OCaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mcamlp5[0m[38;5;12m (https://camlp5.github.io/) - Camlp5 is a preprocessor-pretty-printer of OCaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mcamlp4[0m[38;5;12m (http://caml.inria.fr/pub/docs/manual-camlp4/manual002.html) - Camlp4 is part of the standard OCaml distribution and is different from Camlp5.[39m
|
||||
|
||||
@@ -484,8 +478,8 @@
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mBuild Tools[0m[38;5;12m:[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mdune[0m[38;5;12m (https://github.com/ocaml/dune) – A composable and opinionated build system for OCaml (former jbuilder)[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOasis[0m[38;5;12m [39m[38;5;12m(http://oasis.forge.ocamlcore.org/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mtool[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mintegrate[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mconfigure,[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minstall[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mproject.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mhelps[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mentry[39m[38;5;12m [39m[38;5;12mpoints[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mexternal[39m[38;5;12m [39m
|
||||
[38;5;12mtools[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12manalyse[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mproject[39m[38;5;12m [39m[38;5;12measily.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOasis[0m[38;5;12m [39m[38;5;12m(http://oasis.forge.ocamlcore.org/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mtool[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mintegrate[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mconfigure,[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minstall[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mproject.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mhelps[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mentry[39m[38;5;12m [39m[38;5;12mpoints[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mexternal[39m[38;5;12m [39m[38;5;12mtools[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12manalyse[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m
|
||||
[38;5;12mproject[39m[38;5;12m [39m[38;5;12measily.[39m
|
||||
[48;5;235m[38;5;249m- **oasis2opam** (https://github.com/ocaml/oasis2opam) — Tool to convert OASIS metadata to OPAM package descriptions.[49m[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mobuild[0m[38;5;12m (https://github.com/ocaml-obuild/obuild) – Simple package build system for ocaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mocaml-makefile[0m[38;5;12m (https://github.com/mmottl/ocaml-makefile) — Easy to use Makefile for small to medium-sized OCaml-projects.[39m
|
||||
@@ -505,8 +499,7 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mNproc[0m[38;5;12m (https://github.com/MyLifeLabs/nproc) – Process pool implementation for OCaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mParany[0m[38;5;12m (https://github.com/UnixJunkie/parany) – Parallelize computation over independent items, even if there is an infinite number of them.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mSklml[0m[38;5;12m (http://sklml.inria.fr) – Functional parallel skeleton compiler and programming system for OCaml programs.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSPOC[0m[38;5;12m [39m[38;5;12m(https://github.com/mathiasbourgoin/SPOC)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mLibraries[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msyntax[39m[38;5;12m [39m[38;5;12mextensions[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12moffload[39m[38;5;12m [39m[38;5;12mintensive[39m[38;5;12m [39m[38;5;12mcomputations[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mparallel[39m[38;5;12m [39m[38;5;12maccelerators[39m[38;5;12m [39m[38;5;12m(multicore[39m[38;5;12m [39m[38;5;12mCPUs,[39m[38;5;12m [39m[38;5;12mGPUs[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12maccelerators[39m[38;5;12m [39m[38;5;12mcompatible[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mGPGPU[39m[38;5;12m [39m
|
||||
[38;5;12mframeworks).[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mSPOC[0m[38;5;12m (https://github.com/mathiasbourgoin/SPOC) - Libraries and syntax extensions to offload intensive computations to parallel accelerators (multicore CPUs, GPUs and other accelerators compatible with GPGPU frameworks).[39m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mArticles[0m[38;5;12m:[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mWhat is the state of OCaml's parallelization abilities?[0m[38;5;12m (https://stackoverflow.com/questions/6588500/what-is-the-state-of-ocamls-parallelization-abilities)[39m
|
||||
@@ -524,8 +517,7 @@
|
||||
[38;5;12m- [39m[38;5;12mlrt[39m[38;5;14m[1m [0m[38;5;12m (https://github.com/LexiFi/lrt#getting-started), another ppx_deriving-like.[39m
|
||||
[38;5;12m- [39m[38;5;12mtpf[39m[38;5;14m[1m [0m[38;5;12m (https://github.com/pqwy/tpf#readme), again a ppx_deriving-like.[39m
|
||||
[38;5;12m- [39m[38;5;12mtyperep[39m[38;5;14m[1m [0m[38;5;12m (https://github.com/janestreet/typerep), probably a ppx_deriving-like with ppx_typerep_conv.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;12mrepr[39m[38;5;12m [39m[38;5;12m(https://mirage.github.io/repr/repr/Repr/index.html#val-pp_json),[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mappears[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mbuild[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12mrepresentation[39m[38;5;12m [39m[38;5;12mmanually[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mcombinators[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12maddition[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mhaving[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mpass[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m
|
||||
[38;5;12mneeded.[39m
|
||||
[38;5;12m- [39m[38;5;12mrepr[39m[38;5;12m (https://mirage.github.io/repr/repr/Repr/index.html#val-pp_json), which appears to have the user build the type representation manually from combinators in addition to also having the user pass it where needed.[39m
|
||||
[38;5;12m- [39m[38;5;12mdata-encoding[39m[38;5;12m (https://gitlab.com/nomadic-labs/data-encoding/-/blob/master/src/tutorial.md#how-to-build-an-encoding), also fully manual.[39m
|
||||
[38;5;12m- [39m[38;5;12mcmon[39m[38;5;14m[1m [0m[38;5;12m (https://github.com/let-def/cmon#documentation), fully manual.[39m
|
||||
[38;5;12m- [39m[38;5;12mdyn[39m[38;5;14m[1m [0m[38;5;12m (https://github.com/ocaml/dune/blob/4b95cd3d1b3a62e69a9a9db2bc4af2f9fd2e56d8/otherlibs/dyn/dyn.mli) in Dune. It appears to also be fully manual.[39m
|
||||
@@ -545,7 +537,7 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mOCaml - polymorphic print and type losing[0m[38;5;12m (https://stackoverflow.com/questions/7442449/ocaml-polymorphic-print-and-type-losing)[39m
|
||||
|
||||
|
||||
[38;5;12m [39m[38;2;255;187;0m[1m[4mScience and Technical Computing[0m
|
||||
[38;5;12m [39m[38;2;255;187;0m[1m[4mScience and Technical Computing[0m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mbiocaml[0m[38;5;12m (https://github.com/biocaml/biocaml) – OCaml Bioinformatics Library .[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mbistro[0m[38;5;12m (https://github.com/pveber/bistro) – OCaml library for building bioinformatics pipelines.[39m
|
||||
@@ -572,14 +564,12 @@
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-tls[0m[38;5;12m (https://github.com/mirleft/ocaml-tls) – TLS in pure OCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mDigestif[0m[38;5;12m (https://github.com/mirage/digestif) - Hash algorithms (like SHA[39m[48;2;30;30;40m[38;5;13m[3m or BLAKE2[0m[38;5;12m) in OCaml and C.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mcryptokit[0m[38;5;12m [39m[38;5;12m(https://github.com/xavierleroy/cryptokit)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mCryptokit[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mvariety[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mprimitives[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mimplement[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mprotocols[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12msecurity-sensitive[39m
|
||||
[38;5;12mapplications.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mcryptokit[0m[38;5;12m (https://github.com/xavierleroy/cryptokit) – The Cryptokit library for OCaml provides a variety of cryptographic primitives that can be used to implement cryptographic protocols in security-sensitive applications.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mnocoiner[0m[38;5;12m (https://github.com/marcoonroad/nocoiner) - A Commitment scheme library for Multi-party computations such as online auctions and gambling.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mnocrypto[0m[38;5;12m [39m[38;5;12m(https://github.com/mirleft/ocaml-nocrypto)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12msmall[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mbehind[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mocaml-tls[39m[38;5;12m [39m[38;5;12mproject.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mbuilt[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mstraightforward[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12muse,[39m[38;5;12m [39m[38;5;12madhere[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mprinciples,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mable[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mrun[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mXen-based[39m[38;5;12m [39m[38;5;12munikernel.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mnocrypto[0m[38;5;12m [39m[38;5;12m(https://github.com/mirleft/ocaml-nocrypto)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12msmall[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mbehind[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mocaml-tls[39m[38;5;12m [39m[38;5;12mproject.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mbuilt[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mstraightforward[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12muse,[39m[38;5;12m [39m[38;5;12madhere[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mprinciples,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mable[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mrun[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mXen-based[39m[38;5;12m [39m
|
||||
[38;5;12munikernel.[39m
|
||||
|
||||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mNote:[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mdifferences[39m[38;5;12m [39m[38;5;12mbetween[39m[38;5;12m [39m[48;5;235m[38;5;249mnocrypto[49m[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[48;5;235m[38;5;249mcryptokit[49m[39m[38;5;12m [39m[38;5;12mcryptographic[39m[38;5;12m [39m[38;5;12mlibraries[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mdescribed[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfollowing[39m[38;5;12m [39m[38;5;12mblog[39m[38;5;12m [39m[38;5;12mpost:[39m[38;5;12m [39m[38;5;14m[1mOCaml-TLS:[0m[38;5;14m[1m [0m[38;5;14m[1mbuilding[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mnocrypto[0m[38;5;14m[1m [0m[38;5;14m[1mlibrary[0m[38;5;14m[1m [0m[38;5;14m[1mcore[0m[38;5;12m [39m
|
||||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12m(https://mirage.io/blog/introducing-nocrypto).[39m
|
||||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mNote: The differences between [39m[48;5;235m[38;5;249mnocrypto[49m[39m[38;5;12m and [39m[48;5;235m[38;5;249mcryptokit[49m[39m[38;5;12m cryptographic libraries are described in the following blog post: [39m[38;5;14m[1mOCaml-TLS: building the nocrypto library core[0m[38;5;12m (https://mirage.io/blog/introducing-nocrypto).[39m
|
||||
|
||||
|
||||
[38;2;255;187;0m[4mSemantic Technology[0m
|
||||
@@ -621,16 +611,14 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mKaputt[0m[38;5;12m (http://kaputt.x9c.fr/) — comprehensive testing framework.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mPa_test[0m[38;5;12m (https://ocaml.janestreet.com/ocaml-core/111.28.00/doc/pa_test) — General inline testing macro's.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mTestSimple[0m[38;5;12m (https://github.com/hcarty/ocaml-testsimple) - A lightweight unit testing framework compatible with the [39m[38;5;14m[1mTest Anything Protocol[0m[38;5;12m (https://testanything.org/).[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mexpect-test[0m[38;5;12m [39m[38;5;12m(https://github.com/janestreet/ppx_expect)[39m[38;5;12m [39m[38;5;12m—[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mframework[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mwriting[39m[38;5;12m [39m[38;5;12mtests[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml,[39m[38;5;12m [39m[38;5;12msimilar[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;14m[1mCram[0m[38;5;12m [39m[38;5;12m(https://bitheap.org/cram/),[39m[38;5;12m [39m[38;5;12mdeveloped[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;14m[1mJaneStreet[0m[38;5;12m [39m
|
||||
[38;5;12m(https://blog.janestreet.com/testing-with-expectations/).[39m[38;5;12m [39m
|
||||
[38;5;12m- [39m[38;5;14m[1mexpect-test[0m[38;5;12m (https://github.com/janestreet/ppx_expect) — A framework for writing tests in OCaml, similar to [39m[38;5;14m[1mCram[0m[38;5;12m (https://bitheap.org/cram/), developed by [39m[38;5;14m[1mJaneStreet[0m[38;5;12m (https://blog.janestreet.com/testing-with-expectations/). [39m
|
||||
|
||||
|
||||
[38;2;255;187;0m[4mUtilities[0m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-cuid[0m[38;5;12m (https://github.com/marcoonroad/ocaml-cuid) - Collision-resistant IDs for server scalability & database performance.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mValidate[0m[38;5;12m (https://github.com/Axot017/validate) - PPX deriver designed to streamline the process of validating records.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mUuidm[0m[38;5;12m [39m[38;5;12m(https://erratique.ch/software/uuidm)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mUuidm[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mmodule[39m[38;5;12m [39m[38;5;12mimplementing[39m[38;5;12m [39m[38;5;12m128-bit[39m[38;5;12m [39m[38;5;12muniversally[39m[38;5;12m [39m[38;5;12munique[39m[38;5;12m [39m[38;5;12midentifiers[39m[38;5;12m [39m[38;5;12mversion[39m[38;5;12m [39m[38;5;12m3,[39m[38;5;12m [39m[38;5;12m5[39m[38;5;12m [39m[38;5;12m(name[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mMD5,[39m[38;5;12m [39m[38;5;12mSHA-1[39m[38;5;12m [39m[38;5;12mhashing)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12m4[39m[38;5;12m [39m[38;5;12m(random[39m[38;5;12m [39m[38;5;12mbased)[39m[38;5;12m [39m[38;5;12maccording[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||||
[38;5;12mRFC[39m[38;5;12m [39m[38;5;12m4122.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mUuidm[0m[38;5;12m (https://erratique.ch/software/uuidm) - Uuidm is an OCaml module implementing 128-bit universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1msqids-ocaml[0m[38;5;12m (https://github.com/sqids/sqids-ocaml) - Official OCaml port of Sqids. Generate short unique IDs from numbers.[39m
|
||||
|
||||
|
||||
@@ -638,11 +626,11 @@
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mFrameworks[0m[38;5;12m:[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOpium[0m[38;5;12m (https://github.com/rgrinberg/opium) – Sinatra like web toolkit for OCaml.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOcsigen[0m[38;5;14m[1m [0m[38;5;14m[1mEliom[0m[38;5;12m [39m[38;5;12m(http://ocsigen.org/eliom/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mEliom[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfull-featured[39m[38;5;12m [39m[38;5;12mmulti-tier[39m[38;5;12m [39m[38;5;12mframework,[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdeveloping[39m[38;5;12m [39m[38;5;12mmulti-platform[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmobile[39m[38;5;12m [39m[38;5;12mapps[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12m100%[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mdistributed[39m[38;5;12m [39m[38;5;12mapplications.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m
|
||||
[38;5;12mmore[39m[38;5;12m [39m[38;5;12mtraditional[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mmobile[39m[38;5;12m [39m[38;5;12mapps:[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12msites,[39m[38;5;12m [39m[38;5;12msingle[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mapplications,[39m[38;5;12m [39m[38;5;12mREST[39m[38;5;12m [39m[38;5;12mAPI,[39m[38;5;12m [39m[38;5;12metc.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOcsigen[0m[38;5;14m[1m [0m[38;5;14m[1mEliom[0m[38;5;12m [39m[38;5;12m(http://ocsigen.org/eliom/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mEliom[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfull-featured[39m[38;5;12m [39m[38;5;12mmulti-tier[39m[38;5;12m [39m[38;5;12mframework,[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mdeveloping[39m[38;5;12m [39m[38;5;12mmulti-platform[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmobile[39m[38;5;12m [39m[38;5;12mapps[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12m100%[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mdistributed[39m[38;5;12m [39m[38;5;12mapplications.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mtraditional[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m
|
||||
[38;5;12mmobile[39m[38;5;12m [39m[38;5;12mapps:[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12msites,[39m[38;5;12m [39m[38;5;12msingle[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mapplications,[39m[38;5;12m [39m[38;5;12mREST[39m[38;5;12m [39m[38;5;12mAPI,[39m[38;5;12m [39m[38;5;12metc.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mDream[0m[38;5;12m (https://aantron.github.io/dream/) - Tidy Web framework for OCaml and ReasonML[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mwebmachine[0m[38;5;12m [39m[38;5;12m(https://github.com/inhabitedtype/ocaml-webmachine)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mREST[39m[38;5;12m [39m[38;5;12mtoolkit[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml.[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mwebmachine[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlayer[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mtop[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcohttp[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mimplements[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mstate-machine-based[39m[38;5;12m [39m[38;5;12mHTTP[39m[38;5;12m [39m[38;5;12mrequest[39m[38;5;12m [39m[38;5;12mprocessor.[39m[38;5;12m [39m[38;5;12mIt's[39m[38;5;12m [39m
|
||||
[38;5;12mparticularly[39m[38;5;12m [39m[38;5;12mwell-suited[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mwriting[39m[38;5;12m [39m[38;5;12mRESTful[39m[38;5;12m [39m[38;5;12mAPIs.[39m[38;5;12m [39m[38;5;12mAs[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mname[39m[38;5;12m [39m[38;5;12msuggests,[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mport[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mwebmachine[39m[38;5;12m [39m[38;5;12mproject.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mwebmachine[0m[38;5;12m [39m[38;5;12m(https://github.com/inhabitedtype/ocaml-webmachine)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mREST[39m[38;5;12m [39m[38;5;12mtoolkit[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml.[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mwebmachine[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlayer[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mtop[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcohttp[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mimplements[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mstate-machine-based[39m[38;5;12m [39m[38;5;12mHTTP[39m[38;5;12m [39m[38;5;12mrequest[39m[38;5;12m [39m[38;5;12mprocessor.[39m[38;5;12m [39m[38;5;12mIt's[39m[38;5;12m [39m[38;5;12mparticularly[39m[38;5;12m [39m[38;5;12mwell-suited[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m
|
||||
[38;5;12mwriting[39m[38;5;12m [39m[38;5;12mRESTful[39m[38;5;12m [39m[38;5;12mAPIs.[39m[38;5;12m [39m[38;5;12mAs[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mname[39m[38;5;12m [39m[38;5;12msuggests,[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mport[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mwebmachine[39m[38;5;12m [39m[38;5;12mproject.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mincr_dom[0m[38;5;12m (https://github.com/janestreet/incr_dom) - A library for building dynamic webapps, using Js_of_ocaml[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mfmlib_browser[0m[38;5;12m (https://hbr.github.io/fmlib/odoc/fmlib_browser/doc_overview.html) - a library which helps to write web applications which run in the browser in a pure functional style.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mocaml-vdom[0m[38;5;12m (https://github.com/LexiFi/ocaml-vdom) - Elm architecture and (V)DOM for OCaml[39m
|
||||
|
||||
Reference in New Issue
Block a user