Update and add index
This commit is contained in:
171
terminal/ocaml
171
terminal/ocaml
@@ -5,9 +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
|
||||
|
||||
@@ -84,23 +83,19 @@
|
||||
[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
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mBatteries Included[0m[38;5;12m (https://github.com/ocaml-batteries-team/batteries-included) – A community-maintained foundation library for your OCaml projects.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mCmdliner[0m[38;5;12m (https://github.com/dbuenzli/cmdliner) – Declarative definition of command line interfaces for OCaml.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCore[0m[38;5;12m [39m[38;5;12m(https://github.com/janestreet/core)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mJane[39m[38;5;12m [39m[38;5;12mStreet[39m[38;5;12m [39m[38;5;12mCapital's[39m[38;5;12m [39m[38;5;12mfull-fledged[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12moverlay.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mportable[39m[38;5;12m [39m[38;5;12msubset[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mCore[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[1mCore_kernel[0m[38;5;12m [39m
|
||||
[38;5;12m(https://github.com/janestreet/core_kernel).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mCore[0m[38;5;12m (https://github.com/janestreet/core) – Jane Street Capital's full-fledged standard library overlay. A portable subset of Core is also available: [39m[38;5;14m[1mCore_kernel[0m[38;5;12m (https://github.com/janestreet/core_kernel).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mBase[0m[38;5;12m (https://github.com/janestreet/base) - Jane Street Capital's dependency-free, quick-compiling, fully-portable across any environment that can run OCaml code standard library.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mReact[0m[38;5;12m [39m[38;5;12m(http://erratique.ch/software/react)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mReact[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;12mfor[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mreactive[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12m(FRP).[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mprograms[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mtime-varying[39m[38;5;12m [39m[38;5;12mvalues,[39m[38;5;12m [39m[38;5;12mdeclarative[39m[38;5;12m [39m
|
||||
[38;5;12mevents,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msignals.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mReact[0m[38;5;12m (http://erratique.ch/software/react) – React is an OCaml module for functional reactive programming (FRP). It provides support for programs with time-varying values, declarative events, and signals.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mMinicli[0m[38;5;12m (https://github.com/UnixJunkie/minicli) – Minimalist library for command-line parsing.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1measy-format[0m[38;5;12m (https://github.com/mjambon/easy-format) – Pretty-printing library for OCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-rpc[0m[38;5;12m (https://github.com/mirage/ocaml-rpc) – Light library to deal with RPCs in OCaml.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mocaml-containers[0m[38;5;12m [39m[38;5;12m(https://github.com/c-cube/ocaml-containers)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlightweight,[39m[38;5;12m [39m[38;5;12mmodular[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mextension,[39m[38;5;12m [39m[38;5;12mstring[39m[38;5;12m [39m[38;5;12mlibrary,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minterfaces[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mvarious[39m[38;5;12m [39m[38;5;12mlibraries[39m[38;5;12m [39m[38;5;12m(bigarrays,[39m[38;5;12m [39m[38;5;12mUnix,[39m[38;5;12m [39m
|
||||
[38;5;12metc.)[39m[38;5;12m [39m[38;5;12mBSD[39m[38;5;12m [39m[38;5;12mlicense.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-containers[0m[38;5;12m (https://github.com/c-cube/ocaml-containers) – A lightweight, modular standard library extension, string library, and interfaces to various libraries (bigarrays, Unix, etc.) BSD license.[39m
|
||||
|
||||
|
||||
[38;2;255;187;0m[4mBenchmarking[0m
|
||||
@@ -120,38 +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;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;12m [39m[38;5;14m[1mUnix[0m[38;5;14m[1m [0m[38;5;14m[1mSystem[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mOCaml[0m[38;5;12m [39m[38;5;12m(https://ocaml.github.io/ocamlunix/)[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mX.[39m[38;5;12m [39m[38;5;12mLeroy[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mD.[39m[38;5;12m [39m[38;5;12mRémy[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mIntroduction[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mUnix[39m[38;5;12m [39m[38;5;12mSystems[39m[38;5;12m [39m[38;5;12mProgramming,[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12memphasis[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mcommunications[39m[38;5;12m [39m[38;5;12mbetween[39m[38;5;12m [39m
|
||||
[38;5;12mprocesses.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mUsing,[0m[38;5;14m[1m [0m[38;5;14m[1mUnderstanding,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mUnraveling[0m[38;5;14m[1m [0m[38;5;14m[1mOCaml[0m[38;5;12m [39m[38;5;12m(https://caml.inria.fr/pub/docs/u3-ocaml)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mdescribes[39m[38;5;12m [39m[38;5;12mboth[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;12mand[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtheoretical[39m[38;5;12m [39m[38;5;12mgrounds[39m[38;5;12m [39m[38;5;12mbehind[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mpowerful[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m
|
||||
[38;5;12msystem.[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[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;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;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;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
|
||||
@@ -177,14 +167,12 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mHack Programming Language[0m[38;5;12m (https://hacklang.org/)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mHaxe Programming Language[0m[38;5;12m (https://haxe.org/)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mNeko Programming Language[0m[38;5;12m (https://nekovm.org/) - Originally the compiler was written in OCaml.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMezzo[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1mLanguage[0m[38;5;12m [39m[38;5;12m(https://protz.github.io/mezzo/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mMezzo[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mML[39m[38;5;12m [39m[38;5;12mtradition,[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mplaces[39m[38;5;12m [39m[38;5;12mstrong[39m[38;5;12m [39m[38;5;12memphasis[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mcontrol[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12maliasing[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||||
[38;5;12mmutable[39m[38;5;12m [39m[38;5;12mmemory.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mMezzo Programming Language[0m[38;5;12m (https://protz.github.io/mezzo/) - Mezzo is a programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOCaml-Java[0m[38;5;12m (http://www.ocamljava.org/) - OCaml to Java bytecode compiler.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOpa Programming Language[0m[38;5;12m (http://opalang.org/)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mRhine[0m[38;5;12m (https://github.com/artagnon/rhine-ml) – A Lisp on LLVM written in OCaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mRust Programming Language[0m[38;5;12m (https://www.rust-lang.org/) - Originally written in OCaml before bootstrapping.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mQuick[0m[38;5;14m[1m [0m[38;5;14m[1mC--[0m[38;5;14m[1m [0m[38;5;14m[1mTarget[0m[38;5;14m[1m [0m[38;5;14m[1mLanguage[0m[38;5;12m [39m[38;5;12m(http://www.cminusminus.org/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mnow[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mdead[39m[38;5;12m [39m[38;5;12mproject.[39m[38;5;12m [39m[38;5;14m[1mGithub[0m[38;5;14m[1m [0m[38;5;14m[1mRepo[0m[38;5;12m [39m[38;5;12m(https://github.com/nrnrnr/qc--).[39m[38;5;12m [39m[38;5;14m[1mAlternative[0m[38;5;14m[1m [0m[38;5;14m[1mwebsite[0m[38;5;12m [39m
|
||||
[38;5;12m(http://www.cs.tufts.edu/~nr/c--/qc--.html).[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mQuick C-- Target Language[0m[38;5;12m (http://www.cminusminus.org/) - It is now a dead project. [39m[38;5;14m[1mGithub Repo[0m[38;5;12m (https://github.com/nrnrnr/qc--). [39m[38;5;14m[1mAlternative website[0m[38;5;12m (http://www.cs.tufts.edu/~nr/c--/qc--.html).[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mtis-interpreter[0m[38;5;12m (https://github.com/TrustInSoft/tis-interpreter) - An interpreter for finding subtle bugs in programs written in standard C[39m
|
||||
|
||||
[38;5;12m - [39m[38;5;14m[1mReason[0m[38;5;12m (http://facebook.github.io/reason/) - Friendly syntax & toolchain for OCaml by Facebook.[39m
|
||||
@@ -193,8 +181,7 @@
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mParser and Lexer Generators[0m[38;5;12m:[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOpal[0m[38;5;12m (https://github.com/pyrocat101/opal) – Self-contained monadic parser combinators for OCaml.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mSedlex[0m[38;5;12m [39m[38;5;12m(https://github.com/ocaml-community/sedlex)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmodern,[39m[38;5;12m [39m[38;5;12mencoding-agnostic[39m[38;5;12m [39m[38;5;12m(read:[39m[38;5;12m [39m[38;5;12mUnicode-supporting)[39m[38;5;12m [39m[38;5;12mlexer[39m[38;5;12m [39m[38;5;12mgenerator[39m[38;5;12m [39m[38;5;12m(the[39m[38;5;12m [39m[38;5;12mppx-based[39m[38;5;12m [39m[38;5;12msuccessor[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;14m[1mulex[0m[38;5;12m [39m
|
||||
[38;5;12m(http://www.cduce.org/download.html#side).)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mSedlex[0m[38;5;12m (https://github.com/ocaml-community/sedlex) is a modern, encoding-agnostic (read: Unicode-supporting) lexer generator (the ppx-based successor to [39m[38;5;14m[1mulex[0m[38;5;12m (http://www.cduce.org/download.html#side).)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mMenhir[0m[38;5;12m (http://gallium.inria.fr/~fpottier/menhir/) – Menhir is a LR(1) parser generator for OCaml.[39m
|
||||
[48;5;235m[38;5;249m- See **ocaml-parsing** (https://github.com/smolkaj/ocaml-parsing) for a clearer example of using Menhir and Sedlex to produce a useful parser,[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
[48;5;235m[38;5;249m- ... and **Obelisk** (https://github.com/Lelio-Brun/Obelisk), a neat project to produce readable LaTeX, HTML, or plain-text EBNF-style documentation for your grammar.[49m[39m
|
||||
@@ -206,9 +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;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;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
|
||||
@@ -250,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 [49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
[48;5;235m[38;5;249mcould optimize O(n^2) 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
|
||||
@@ -265,18 +250,16 @@
|
||||
[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.el[0m[38;5;12m [39m[38;5;12m(https://github.com/pfitaxel/learn-ocaml.el).[39m[38;5;12m [39m[38;5;12mMinor[39m[38;5;12m [39m[38;5;12mmode[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mEmacs[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mdisplay[39m[38;5;12m [39m[38;5;12mexercise[39m[38;5;12m [39m[38;5;12mtopics[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mgrade[39m[38;5;12m [39m[38;5;12mexercise[39m[38;5;12m [39m[38;5;12msolutions,[39m[38;5;12m [39m[38;5;12mafter[39m[38;5;12m [39m[38;5;12mlogging[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mLearn-OCaml[39m[38;5;12m [39m[38;5;12minstance.[39m[38;5;12m [39m[38;5;12mMIT[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
|
||||
[38;5;12m- [39m[38;5;14m[1mOCaml: Learn & Code iOS app[0m[38;5;12m (https://apps.apple.com/app/ocaml-learn-code/id1547506826) - Learn and execute OCaml code from your iPhone/iPad/Mac.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mJupyter[0m[38;5;12m (https://github.com/akabe/ocaml-jupyter) – An OCaml kernel for the Jupyter notebook.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mutop[0m[38;5;12m (https://github.com/ocaml-community/utop) – Universal toplevel for OCaml with support for multiline edition, history, real-time and context-sensitive completion, colors, and more.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocamlformat[0m[38;5;12m (https://github.com/ocaml-ppx/ocamlformat) - A command-line tool to format OCaml code.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mocamlbrowser[0m[38;5;12m [39m[38;5;12m(http://caml.inria.fr/pub/docs/manual-ocaml/browser.html)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcompiled[39m[38;5;12m [39m[38;5;12minterface[39m[38;5;12m [39m[38;5;12mbrowser,[39m[38;5;12m [39m[38;5;12mwritten[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mLablTk.[39m[38;5;12m [39m[38;5;12mIncluded[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mdistribution[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mocaml[39m[38;5;12m [39m[38;5;12m=[39m[38;5;12m [39m
|
||||
[38;5;12m4.02.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocamlbrowser[0m[38;5;12m (http://caml.inria.fr/pub/docs/manual-ocaml/browser.html) – A source and compiled interface browser, written using LablTk. Included in the standard distribution for ocaml = 4.02.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mghim[0m[38;5;12m (https://github.com/samoht/ghim) – A command-line tool to manage Github Issues.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mOCaml Yeoman Generator[0m[38;5;12m (https://github.com/mabrasil/generator-ocaml) – Yeoman generator to scaffold OCaml modules.[39m
|
||||
|
||||
@@ -286,12 +269,10 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mModular foreign function bindings[0m[38;5;12m (http://openmirage.org/blog/modular-foreign-function-bindings)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mPy.ml[0m[38;5;12m (https://github.com/thierry-martinez/pyml) - OCaml bindings for Python.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mEditor Integration[0m[38;5;12m:[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mocaml-lsp[0m[38;5;12m [39m[38;5;12m(https://github.com/ocaml/ocaml-lsp)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12mLSP[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mserver[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mintegrates[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12meditor[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12munderstands[39m[38;5;12m [39m[38;5;12mLSP[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mVSCode[0m[38;5;12m [39m[38;5;12m(https://github.com/microsoft/vscode),[39m[38;5;12m [39m
|
||||
[38;5;12mVim[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mEmacs.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mocaml-lsp[0m[38;5;12m (https://github.com/ocaml/ocaml-lsp) - An LSP language server for OCaml that integrates with any editor that understands LSP like [39m[38;5;14m[1mVSCode[0m[38;5;12m (https://github.com/microsoft/vscode), Vim and Emacs.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mmerlin[0m[38;5;12m (https://github.com/ocaml/merlin) – Context sensitive completion for OCaml in Vim and Emacs.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mtuareg[0m[38;5;12m (https://github.com/ocaml/tuareg) - OCaml mode for Emacs that can run the toplevel and the debugger within Emacs.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mopam-switch-mode[0m[38;5;12m [39m[38;5;12m(https://github.com/ProofGeneral/opam-switch-mode)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mMinor[39m[38;5;12m [39m[38;5;12mmode[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mEmacs[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mextends[39m[38;5;12m [39m[38;5;12mTuareg[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mMerlin[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mmenus[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mchange[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mreset[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mopam[39m[38;5;12m [39m[38;5;12mswitch[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mambient[39m[38;5;12m [39m
|
||||
[38;5;12mEmacs[39m[38;5;12m [39m[38;5;12msession.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mopam-switch-mode[0m[38;5;12m (https://github.com/ProofGeneral/opam-switch-mode) - Minor mode for Emacs that extends Tuareg and Merlin with menus to change or reset the opam switch in the ambient Emacs session.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mmerlin-eldoc[0m[38;5;12m (https://github.com/Khady/merlin-eldoc) – Emacs package to provide merlin's features through eldoc.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mvscode-ocaml[0m[38;5;12m (https://github.com/hackwaly/vscode-ocaml) – extension that provides OCaml language support for [39m[38;5;14m[1mVSCode[0m[38;5;12m (https://github.com/microsoft/vscode)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOCaml Debugger[0m[38;5;12m (https://github.com/hackwaly/ocamlearlybird) – extension that provides OCaml Debugger for [39m[38;5;14m[1mVSCode[0m[38;5;12m (https://github.com/microsoft/vscode)[39m
|
||||
@@ -310,20 +291,18 @@
|
||||
[38;2;255;187;0m[4mExercises and Short Examples[0m
|
||||
|
||||
[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;12m [39m[38;5;14m[1mlearn-ocaml-corpus[0m[38;5;12m [39m[38;5;12m(https://ocaml-sf.org/learn-ocaml-public/#activity=exercises).[39m[38;5;12m [39m[38;5;12mCorpus[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mbeginner-to-advanced[39m[38;5;12m [39m[38;5;12monline[39m[38;5;12m [39m[38;5;12mexercises[39m[38;5;12m [39m[38;5;12m(including[39m[38;5;12m [39m[38;5;12mthose[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mMOOC)[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mautomatic[39m[38;5;12m [39m
|
||||
[38;5;12mgrading[39m[38;5;12m [39m[38;5;12mtests.[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;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;12m [39m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1mLanguage[0m[38;5;14m[1m [0m[38;5;14m[1mExamples[0m[38;5;14m[1m [0m[38;5;14m[1mAlike[0m[38;5;14m[1m [0m[38;5;14m[1mCookbook[0m[38;5;12m [39m[38;5;12m(http://pleac.sourceforge.net/pleac_ocaml/index.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12msection[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfree[39m[38;5;12m [39m[38;5;12mreference[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12msolving[39m[38;5;12m [39m[38;5;12mcommon[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m
|
||||
[38;5;12mproblems[39m[38;5;12m [39m[38;5;12musing[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[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;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
|
||||
|
||||
|
||||
@@ -373,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;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;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
|
||||
|
||||
@@ -400,12 +379,10 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mframa-c[0m[38;5;12m (https://git.frama-c.com/pub/frama-c) - platform dedicated to the analysis of source code written in C[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mlibguestfs[0m[38;5;12m (https://github.com/libguestfs/libguestfs) - library and tools for accessing and modifying virtual machine disk images[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mLiquidsoap[0m[38;5;12m (https://github.com/savonet/liquidsoap) - a swiss-army knife for multimedia streaming, notably used for netradios and webtvs[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mmirage[0m[38;5;12m [39m[38;5;12m(https://github.com/mirage/mirage)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12moperating[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mconstructs[39m[38;5;12m [39m[38;5;12munikernels[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12msecure,[39m[38;5;12m [39m[38;5;12mhigh-performance[39m[38;5;12m [39m[38;5;12mnetwork[39m[38;5;12m [39m[38;5;12mapplications[39m[38;5;12m [39m[38;5;12macross[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;12mcloud[39m[38;5;12m [39m[38;5;12mcomputing[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mmobile[39m[38;5;12m [39m[38;5;12mplatforms[39m
|
||||
[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
|
||||
|
||||
@@ -452,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;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
|
||||
|
||||
@@ -467,8 +443,7 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mOCaml on iOS 7 Released[0m[38;5;12m (http://psellos.com/2014/08/2014.08.ocamlxarm-402.html)[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOCaml + Cordova = more secured, typed and hybrid mobile applications[0m[38;5;12m (https://dannywillems.github.io/2016/07/14/ocaml-cordova-secured-typed-hybrid-mobile-applications.html)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mBindings[0m[38;5;12m:[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCordova[0m[38;5;14m[1m [0m[38;5;14m[1mplugins[0m[38;5;12m [39m[38;5;12m(https://github.com/dannywillems/ocaml-cordova-plugin-list)[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;12mbindings[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mCordova[39m[38;5;12m [39m[38;5;12mplugins.[39m[38;5;12m [39m[38;5;12mGet[39m[38;5;12m [39m[38;5;12maccess[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mnative[39m[38;5;12m [39m[38;5;12mdevice[39m[38;5;12m [39m[38;5;12mcomponents[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;12maccelerometer,[39m[38;5;12m [39m[38;5;12mSMS,[39m[38;5;12m [39m
|
||||
[38;5;12mgeolocation,[39m[38;5;12m [39m[38;5;12metc[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mOCaml.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mCordova plugins[0m[38;5;12m (https://github.com/dannywillems/ocaml-cordova-plugin-list) – List of bindings to Cordova plugins. Get access to native device components like accelerometer, SMS, geolocation, etc in OCaml.[39m
|
||||
|
||||
|
||||
[38;2;255;187;0m[4mNetworking[0m
|
||||
@@ -503,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
|
||||
@@ -520,13 +495,11 @@
|
||||
[38;5;12m - [39m[38;5;14m[1mForkWork[0m[38;5;12m (https://github.com/mlin/forkwork) — A simple library for forking child processes to perform work on multiple cores.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mFunctory[0m[38;5;12m (http://functory.lri.fr/About.html) — A distributed computing library which facilitates distributed execution of parallelizable computations in a seamless fashion.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mRpc.Parallel[0m[38;5;12m (https://github.com/janestreet/rpc_parallel) — A library for spawning processes on a cluster of machines, and passing typed messages between them.[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOcamlnet[0m[38;5;12m [39m[38;5;12m(http://projects.camlcity.org/projects/ocamlnet.html)[39m[38;5;12m [39m[38;5;12m—[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12menhanced[39m[38;5;12m [39m[38;5;12msystem[39m[38;5;12m [39m[38;5;12mplatform[39m[38;5;12m [39m[38;5;12mlibrary.[39m[38;5;12m [39m[38;5;12mContains[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[48;5;235m[38;5;249mnetmulticore[49m[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcompute[39m[38;5;12m [39m[38;5;12mtasks[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mcores[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mmachine[39m[38;5;12m [39m[38;5;12mas[39m
|
||||
[38;5;12mneeded.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOcamlnet[0m[38;5;12m (http://projects.camlcity.org/projects/ocamlnet.html) — An enhanced system platform library. Contains the [39m[48;5;235m[38;5;249mnetmulticore[49m[39m[38;5;12m library to compute tasks on as many cores of the machine as needed.[39m
|
||||
[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
|
||||
@@ -544,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
|
||||
@@ -565,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
|
||||
@@ -592,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;12m [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;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,8 +591,7 @@
|
||||
|
||||
[38;2;255;187;0m[4mSystem Programming[0m
|
||||
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMirage[0m[38;5;14m[1m [0m[38;5;14m[1mOS[0m[38;5;12m [39m[38;5;12m(https://github.com/mirage/mirage)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mMirage[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mframework[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mconstructing[39m[38;5;12m [39m[38;5;12msecure,[39m[38;5;12m [39m[38;5;12mhigh-performance[39m[38;5;12m [39m[38;5;12mnetwork[39m[38;5;12m [39m[38;5;12mapplications[39m[38;5;12m [39m[38;5;12macross[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;12mcloud[39m[38;5;12m [39m[38;5;12mcomputing[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mmobile[39m[38;5;12m [39m[38;5;12mplatforms.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mMirage OS[0m[38;5;12m (https://github.com/mirage/mirage) – Mirage is a programming framework for constructing secure, high-performance network applications across a variety of cloud computing and mobile platforms.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-fat[0m[38;5;12m (https://github.com/mirage/ocaml-fat) – Read and write FAT-format filesystems from OCaml.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-git[0m[38;5;12m (https://github.com/mirage/ocaml-git) – Pure OCaml low-level git bindings.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mocaml-vchan[0m[38;5;12m (https://github.com/mirage/ocaml-vchan) – Pure OCaml implementation of the "vchan" shared-memory communication protocol.[39m
|
||||
@@ -636,23 +605,20 @@
|
||||
[38;2;255;187;0m[4mTesting[0m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mAlcotest[0m[38;5;12m (https://github.com/mirage/alcotest) – A lightweight and colourful test framework.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mOUnit[0m[38;5;12m [39m[38;5;12m(http://ounit.forge.ocamlcore.org/)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mOUnit[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12munit[39m[38;5;12m [39m[38;5;12mtest[39m[38;5;12m [39m[38;5;12mframework[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12measily[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12munit-tests[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m[38;5;12mcode.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mHUnit,[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12munit[39m[38;5;12m [39m[38;5;12mtesting[39m[38;5;12m [39m
|
||||
[38;5;12mframework[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mHaskell.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mOUnit[0m[38;5;12m (http://ounit.forge.ocamlcore.org/) – OUnit is a unit test framework for OCaml. It allows one to easily create unit-tests for OCaml code. It is based on HUnit, a unit testing framework for Haskell.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mQCheck[0m[38;5;12m (https://github.com/c-cube/qcheck) — QCheck is a property testing library inspired from Haskell's QuickCheck[39m
|
||||
[38;5;12m- [39m[38;5;14m[1miTeML[0m[38;5;12m (https://github.com/vincent-hugot/iTeML) (formerly known as [39m[38;5;14m[1mqtest[0m[38;5;12m (http://batteries.vhugot.com/qtest/)) — supports inline pragma's to generate tests.[39m
|
||||
[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
|
||||
|
||||
|
||||
@@ -660,18 +626,17 @@
|
||||
|
||||
[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;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
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mTools[0m[38;5;12m:[39m
|
||||
[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCOW[0m[38;5;12m [39m[38;5;12m(https://github.com/mirage/ocaml-cow)[39m[38;5;12m [39m[38;5;12m–[39m[38;5;12m [39m[38;5;12mCaml[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mWeb[39m[38;5;12m [39m[38;5;12m(COW)[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;12mparsers[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;12mlet[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mmanipulate[39m[38;5;12m [39m[38;5;12mHTML,[39m[38;5;12m [39m[38;5;12mCSS,[39m[38;5;12m [39m[38;5;12mXML,[39m[38;5;12m [39m[38;5;12mJSON[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mMarkdown[39m[38;5;12m [39m[38;5;12mdirectly[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mOCaml[39m[38;5;12m [39m
|
||||
[38;5;12mcode.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mCOW[0m[38;5;12m (https://github.com/mirage/ocaml-cow) – Caml on the Web (COW) is a set of parsers and syntax extensions to let you manipulate HTML, CSS, XML, JSON and Markdown directly from OCaml code.[39m
|
||||
[38;5;12m - [39m[38;5;14m[1mOcamlnet[0m[38;5;12m (http://projects.camlcity.org/projects/ocamlnet.html)[39m
|
||||
[48;5;235m[38;5;249mhas many relevant web libraries —[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
[48;5;235m[38;5;249m**Nethtml** (http://projects.camlcity.org/projects/dl/ocamlnet-4.0.4/doc/html-main/Nethtml.html)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||||
|
||||
Reference in New Issue
Block a user