Ponieważ Erlang opiera się na Prologu, czy oznacza to, że Erlang jest językiem ograniczającym logikę?
Czy Erlang mieć budulec Prolog to: fakty, zasady i QueryCzy język programowania Erlang a Constraint-Logic?
Odpowiedz
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”:
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).
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
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.
- 1. . Język Java dla programowania jednoczesnego
- 2. Język skryptowy PHP lub język programowania?
- 3. Tajemniczy język programowania
- 4. Czy język programowania C ma środowisko uruchomieniowe?
- 5. Język programowania oparty na Unicode
- 6. Jak zaimplementować funkcjonalny język programowania?
- 7. PHP jako język programowania pulpitu
- 8. Czy język komputerowy "Erlang" jest powiązany z chińskim bóstwem?
- 9. Kryteria aby ustalić, czy jest to język programowania
- 10. Czy istnieje język programowania z semantyką zbliżoną do języka angielskiego?
- 11. Jaki był pierwszy język programowania z wyliczeniami?
- 12. Język programowania do wyboru do implementacji algorytmów przekazywania wiadomości rozproszonych
- 13. Wpływ Lisp na język programowania czynnikowego?
- 14. Twój język programowania w przeglądarce (np. JavaScript)?
- 15. Czysty język programowania w świecie rzeczywistym?
- 16. Najbardziej odpowiedni niezależny od platformy język programowania
- 17. TCL jako język programowania po stronie serwera
- 18. Niestandardowy język programowania (jar) w Androidzie
- 19. Jaki jest najlepszy język programowania uczenia maszynowego?
- 20. Zastosowanie ~ (tyldy) w programowania R Język
- 21. Jaki jest najbardziej zwięzły język programowania?
- 22. Język szablonowy a prosty PHP
- 23. Czy język vala to krzyżowy?
- 24. Różnice między językiem programowania systemów a językami programowania aplikacji
- 25. Erlang wzorzec dopasowania z funkcji
- 26. Język programowania do tworzenia DLL: C++ lub C#
- 27. Jaki język programowania jest wymagany do utworzenia wtyczki firefox?
- 28. jaki jest najlepszy język programowania do tworzenia analizatorów i kompilatorów?
- 29. Odczyt/dev/input/event w Androidzie przez język programowania Java
- 30. Ogórek Nie udało się załadować „yml” Język programowania dla pliku
Dzięki, teraz rozumiem wiążące i niezmienność zmiennych w Erlang znacznie lepiej! Dobrze wiedzieć skąd się to wzięło. – Amiramix