OCaml: kłopotliwe średniki

Jednym z bardziej charakterystycznych elementów, na które natyka się każdy, kto ma okazję pisać swoje pierwsze linijki w OCamlu są średniki, które występują w dwóch odmianach: zwykłej oraz podwójnej. Kiedy kompilator sieje błędami niekiedy można uspokoić go dopisując gdzieś w kodzie naszego programu podwójny średnik (lub zastępując takowym pojedynczy), ale czy jest to odpowiedni sposób rozwiązywania problemów? W tym wpisie opowiemy […]

Read More

OCaml: początek przygody

Jakiś czas temu postanowiłem rozpocząć naukę kolejnego języka programowania. Tym razem padło na OCamla, będącego reprezentantem rodziny języków funkcyjnych (ściślej mówiąc, jest to język wieloparadygmatowy, a paradygmat funkcyjny jest jednym ze wspieranych). Dlaczego akurat OCaml, skoro istnieją inne, popularniejsze technologie z tej samej grupy? Mój wybór wynika z niezwykle dużej użyteczności OCamla na gruncie tworzenia […]

Read More

Skąd się wzięły wyjątki?

Zdecydowana większość współczesnych języków programowania posiada wbudowaną obsługę wyjątków. Związana z nią składnia zazwyczaj jest we wszystkich tych językach dosyć podobna – wyjątki rzuca się (throw) lub podnosi (raise), a następnie łapie (catch), jeśli wystąpiły wewnątrz blokutry. Istotną sprawą jest tu możliwość przekazywania kontroli sterowania nie tylko o jeden poziom wyżej – wyjątki propagowane są w […]

Read More

AIML, czyli piszemy gadającego bota

Zapewne większość korzystających z internetu osób ma jakieś doświadczenia dotyczące rozmów z botami (mówiąc dokładniej – chatbotami – tak bowiem określa się aplikacje prowadzące rozmowy z ludźmi). Swego czasu popularny w polskiej sieci był program Infobot – można było korzystać z niego m.in. za pośrednictwem Gadu-Gadu, a swój ponad 10-letni żywot zakończył niespełna 2 lata temu. […]

Read More

Podsumowanie prologowego wyzwania

Jak zapowiadałem pod koniec października, moim celem na listopad była nauka języka programowania Prolog. Czytałem książki i opracowania, pisałem kod, szukałem realnych zastosowań tej technologii. Czas nie pozwolił mi na zgłębienie w ciągu miesiąca tyle wiedzy, ile bym pragnął, jak również nie udało mi się opublikować wszystkich wpisów w zamierzonym okresie. Naocznym rezultatem mojego wyzwania […]

Read More

Relacje przechodnie w Prologu

W jednym z wcześniejszych wpisów poruszałem temat definiowania relacji symetrycznych w języku Prolog. Rozwiązaniem problemu okazało się tam zdefiniowanie relacji pomocniczej, dzięki której pozbywaliśmy się nieskończonej pętli wywołań. Podobnie jest i w tym przypadku, bowiem i tu definiowanie takiej relacji w sposób „naiwny” i „naturalny” nie zdaje egzaminu. Rozważmy taki oto przykład, w którym szeregujemy kraje […]

Read More

Realne zastosowania języka Prolog

Trudno nie zgodzić się z opinią, że Prolog jest językiem pod wieloma względami ciekawym. Chociażby dlatego, iż reprezentuje on paradygmat programowania logicznego, który zdecydowanie nie należy do najczęściej używanych. Sądzę, że owa odmienność od tego, z czym mamy styczność na co dzień jest jednym z powodów, dla których warto poznać pewne podstawy Prologa. Zyskujemy w […]

Read More