Jestem programistą C ++ próbującym nauczyć się Common Lisp. Przejrzałem kilka książek, takich jak Land of Lisp i przeczytałem wiele artykułów online o różnych zaletach Lispa. Potrzebuję jednak porady.
Prawie wszystko, co przeczytałem o Common Lisp, wiąże się z tym, jak niesamowity jest on i jak niesamowicie szybko można z nim robić rzeczy i jak niesamowicie rozwiązał wiele problemów ze współczesnymi językami programowania 30 lat temu. Poza tym, jak niesamowite są makra i jak każdy paradygmat programowania (OO, funkcjonalny, oparty na aktorach itp.) Może być użyty w Lispie i jak listy są ostateczną strukturą danych. Zasadniczo traktując Lispa jako język badawczy i mówiąc, jak bardzo jest inny i rewolucyjny.
I wszystko to prawdopodobnie jest prawdą, ale problem polega na tym, że nie widziałem zbyt wielu rzeczy, jak robić praktyczne rzeczy, takie jak czytanie pliku i dzielenie go na słowa i przetwarzanie na nim. Nie jestem zainteresowany nauką Common Lisp ze względu na naukę Common Lisp, ale ze względu na to, że rzeczy, które robiłem w C ++, były wykonywane szybciej i z mniejszą liczbą błędów.
Moje pytanie brzmi więc, jakie jest najlepsze źródło (czy to strona internetowa, książka, cokolwiek), które koncentruje się na nauczaniu używania Common Lisp do wykonywania typowych zadań programistycznych, takich jak
- Jak czytać pliki
- Jak czytać plik, zamieniać słowa w pliku i zapisać wynik z powrotem do pliku
- Iteruj pliki w katalogu i innych elementach systemu plików
- Interakcja z bazą danych SQL
- Komunikuj się przez gniazda
- Tworzenie wątków dla rzeczy takich jak serwer WWW
- Twórz GUI
- Wykonuj operacje na plikach binarnych
- Napisz parser (nie interpreter Lispa w Lisp, co, jak rozumiem, jest jak 5 linii Lispa)
- Interakcja z systemem operacyjnym (tj. Rzeczy napisane w C lub C ++), aby robić rzeczy, których Lisp nie może robić natywnie
- Jak pisać rozszerzenia Lisp w C (czy to możliwe?)
- Osadź interpreter lua (czy to możliwe?)
A także mniej od razu praktyczna uwaga, jak zaimplementować wspólne struktury danych w lispie, takie jak sterta, stos, drzewo wyszukiwania binarnego itp. Jednak może to być po prostu użycie operacji listowych Lispa w taki sam sposób car
i cdr
we właściwy sposób. Nie wiem
Bardzo wątpię, czy cokolwiek z tego (z nieprawdopodobnym wyjątkiem dwóch ostatnich na liście) jest niemożliwe w przypadku Lispa lub ludzie nie pokochaliby tego tak bardzo. A wyżej wymienione rzeczy, które przeczytałem, wspominają o wielu prawdziwych programach napisanych w Lisp (przychodzi na myśl sklep internetowy Yahoo!).
Jednak mając programowanie w ( tym? ) Języku imperatywnym wcześniej, nie mogę się doczekać wykorzystania nowej wiedzy, którą otrzymam, do pisania aplikacji w świecie rzeczywistym. Jaki jest więc najszybszy sposób na naukę pisania praktycznego oprogramowania za pomocą Lispa?
Nawiasem mówiąc, widziałem Praktyczny Common Lisp Petera Seibela, ale sądząc po TOC, porusza on tylko niektóre rzeczy, których chciałbym się nauczyć używać Lispa.
Jeszcze jedno pytanie, jeśli mogę (przepraszam, jeśli jest to połączenie dwóch pytań w jedno), gdzie mogę znaleźć odniesienie do funkcji i rzeczy Lispa?
I naprawdę chcę polubić Lispa.