2010-01-07 14 views
25

Po zapoznaniu się z podstawową składnią, odczytanie nietrywialnego kodu jest szybkim sposobem na naukę języka. Możemy również nauczyć się projektowania biblioteki/oprogramowania podczas czytania kodu innych osób.Dobre projekty do nauki OCaml i F #

Mam następujące listy.

  1. Chess Program w SML przez Tomek Czajka.

  2. Hal Daumé napisał several machine learning libraries w Ocaml. W tym drzewa decyzyjne, regresja logistyczna i SVM. Wszystkie z nich są kodem zbliżonym do jakości produkcji.

  3. A Chess Game Analysis program w F # w Microsoft Research.

Powyższe trzy są moimi ulubionymi. Czy zaproponujesz inne źródła? Oprogramowanie open source ogólnego przeznaczenia jest dobre, wyspecjalizowane oprogramowanie open source, takie jak trzy wymienione tutaj, są jeszcze bardziej mile widziane.

+0

http://stackoverflow.com/questions/383848/f-open-source-projects –

+0

@Mauricio Dzięki za komentarz. Myślę, że te dwa wątki mają pewną różnicę, ponieważ tutaj językami są Ocaml i F #, a nie pojedynczy F #. Lista jest nie tylko dla otwartego źródła, ale także dla niektórych kodów sinppets lub kodów acadmic. –

+0

Oprogramowanie Hal Daumé zostało przeniesione do [http://www.umiacs.umd.edu/~hal/software.html](http://www.umiacs.umd.edu/~hal/software.html). –

Odpowiedz

2

No Unison został mi polecony aby przyjrzeć się, jak również rozwiązywania różnych problemów z Project Euler, ale osobiście zrobić więcej, pisząc własne praktycznych programów, więc prawdopodobnie będę adaptacji jednego z tych na OCaml, aby zobaczyć, jak to działa.

1

Masz źródło standardowej biblioteki ocaml znajdującej się w o'caml.

Chyba już spojrzał na niego, ale garb CAML jest dobrym źródłem zbyt: Here

+1

Standardowa biblioteka OCaml nie jest szczególnie dobrze napisanym kodem OCaml. –

5

Janes Ulica wydała kilka bibliotek here. W rzeczywistości używają OCaml w branży. Jeśli cokolwiek, sprawdzę to.

11

Jedną z mniej pokryte aspektów SML jest modułowy system wyższego rzędu. Biblioteka ocamlgraph jest doskonałym przykładem korzystania z tej funkcji językowej.

Możesz również przeczytać kod źródłowy OCaml do mojego projektu HLVM. Kod źródłowy z mojej książki OCaml for Scientists (2005) jest swobodnie dostępny here, ale nie open source. Jednak nie był aktualizowany od kilku lat i prawdopodobnie możesz zrobić o wiele lepiej już dziś!

MLDonkey był wczesnym klientem udostępniania plików, który miał kiedyś setki tysięcy użytkowników. Jest to silnie współbieżna aplikacja open source napisana w całości w OCaml, ważąca około 171 000 linii kodu.

Synchronizator plików to kolejna aplikacja narzędziowa open source napisana w całości w OCaml, ważąca 24 000 linii kodu. Była to również pierwsza popularna aplikacja napisana w pochodnej ML, która wykorzystała asynchroniczne IO. Tak więc cały kod F #, który dziś wykonuje asynchronię, jest zasadniczo z niego wyprowadzany.

FFTW to generator kodu dla szybkich transformat Fouriera (FFT), w zasadzie bardzo specjalistyczna forma optymalizującego kompilatora, która została powszechnie przyjęta i jest licencjonowana do użytku komercyjnego, np. w rdzeniu MATLAB. Napisany głównie w OCaml z dość dużą ilością C i ważący 14 000 linii kodu OCaml.

Możesz również przeczytać kod źródłowy do Hevea i ANT, ponieważ są to dość klasyczne domeny aplikacji dla OCaml, ale także aplikacje o jakości produkcji z tysiącami użytkowników.

Nie mogę wymyślić żadnego kodu F # z kodem źródłowym do polecania. Tam jest niewiele cennych rzeczy i ogólnie jest to bardzo słaba jakość. Większość z nich brzmi jak Haskell. ;-)

0

Dla opartego na sieci kodu Ocaml Opa ma również dostępną wersję open source, również code.

Powiązane problemy