2011-03-22 12 views

Odpowiedz

25

nr

składnia Erlang jest bardzo podobny do Prolog, ale semantyka są bardzo różne. Wczesna wersja Erlanga została napisana przy użyciu Prolog, ale dzisiejszego Erlanga nie można już sensownie powiedzieć, że jest "oparty na Prologu".

Erlang nie obejmuje cofania lub innych funkcji Prologu regularnie używanych do programowania logicznego. Możesz oczywiście wdrożyć Prolog na innych językach, a Erlang jest łatwiejszym wyborem niż inne. Można to zauważyć w projekcie Roberta Virding za „Erlog”:

https://github.com/rvirding/erlog

0

W skrócie, nie to nie :) To nie ma tych bloków. Koncentruje się na współbieżności, programowaniu równoległym, aplikacjach rozproszonych i odporności na błędy (będąc jednocześnie językiem funkcjonalnym, ścisłym, deklaratywnym).

0

Można również użyć funkcji listowych w Erlang jako sposób wdrażania w stylu programowania ograniczenie.

% Produce the tuple {1, 0} 
% 
constraint_test() -> [ {A, B} || 
    A <- lists:seq(0, 1), 
    B <- lists:seq(0, 1), 
    A > B]. 

można alternatywnie miejsce generatory elementów wykonanych z listy (A < - wykaz SEQ (0, 1)) i ograniczenia (A> B).

Niedawno rozwiązałem problem związany poniżej. A jeśli prawidłowo umieścisz wiązania, otrzymasz odpowiedź w ciągu jednej sekundy.

http://www.geocaching.com/seek/cache_details.aspx?guid=a8605431-53b5-4c2c-97fb-d42ee299b167

6

Tak.

Pierwsza wersja Erlanga nie została napisana w Prologu, została napisana w jednym z języków programowania logicznego zatwierdzonego wyboru. Języki te spowodowały wycofanie się Prologu, stąd nazwa "zobowiązany wybór", co oznacza, że ​​po dokonaniu wyboru niemożliwe było wycofanie się i wypróbowanie innego. Dokonano tego, aby uprościć współbieżną formę programowania logicznego. Innym sposobem patrzenia na to jest to, że procesy współbieżne stosowałyby ograniczenia do zmiennych, ale jako zmienne logiczne, a zatem nieprzenoszalne, byłyby to kolejne ograniczenia, a nie zmiany wartości. Ograniczenie może przypisać wartość częściową do zmiennej, zawierającej inną zmienną, która zostanie przypisana później. To jest podstawowy model Erlanga. W przypadku wersji, w których ograniczenia mogą zawierać również stwierdzenia matematyczne o możliwych zakresach zmiennych o zamierzonych wartościach liczbowych, zwykle stosuje się programowanie w logice wiązań.

Składnia Erlanga pokazuje jego logiczne dziedzictwo programistyczne, ale ważne jest, aby zrozumieć, że wybrał to poprzez języki programowania logiki, które wybrały go z Prolog, a nie bezpośrednio z Prolog. Chociaż w latach osiemdziesiątych opracowano kilka języków programowania logiki wyboru, nie były one w stanie wyjść z cienia Prologu i zostały zerwane przez ich związek z nieudaną japońską inicjatywą piątej generacji, a także przez rywalizujące ze sobą zespoły programistów, którzy się sprzeczali. niewielkie różnice, więc nie ustalono standardu.

Twórcy Erlanga wprowadzili cukier syntaktyczny, który nadał kodowi bardziej funkcjonalny wygląd i podjął decyzję marketingową, aby promować go jako funkcjonalny, a nie logiczny język programowania, co pozwoliło, aby nie został on przeciągnięty do piątej generacji zwolnienie programowania logicznego.

+0

Dzięki, teraz rozumiem wiążące i niezmienność zmiennych w Erlang znacznie lepiej! Dobrze wiedzieć skąd się to wzięło. – Amiramix

Powiązane problemy