Jaka jest różnica między przyszłością a obietnicą? (W Akka i Gpars.) Wyglądają dla mnie tak samo, jak blokują i zwracają wartość przyszłości, gdy wywoływany jest get, a obietnicą jest uzyskanie wyniku
Scala jest językiem programowania ogólnego przeznaczenia, którego głównym celem jest wirtualna maszyna Java. Zaprojektowany do wyrażania typowych wzorców programowania w zwięzły, elegancki i bezpieczny sposób, łączy w sobie imperatywny i funkcjonalny styl programowania.
Jaka jest różnica między przyszłością a obietnicą? (W Akka i Gpars.) Wyglądają dla mnie tak samo, jak blokują i zwracają wartość przyszłości, gdy wywoływany jest get, a obietnicą jest uzyskanie wyniku
Nurkuję w świecie programowania funkcjonalnego i czytam wszędzie, że języki funkcjonalne są lepsze dla programów wielowątkowych / wielordzeniowych. Rozumiem, w jaki sposób języki funkcjonalne robią wiele rzeczy inaczej, na przykład rekurencję , liczby losowe itp., Ale nie wydaje mi się, aby...
Zarówno F #, jak i Scala są funkcjonalnymi językami programowania, które nie zmuszają programisty do używania tylko niezmiennych typów danych. Oba mają obsługę obiektów, mogą korzystać z bibliotek napisanych w innych językach i działać na maszynie wirtualnej. Wydaje się, że oba języki oparte są na...
Istnieją pewne problemy, które można łatwo rozwiązać za pomocą Algebraicznych typów danych, na przykład typ listy można bardzo zwięźle wyrazić jako: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f a) (consmap f b) l = ConsCell 1...
Codziennie pracuję z akką od 7-8 miesięcy. Kiedy zaczynałem, pracowałem nad aplikacjami i zauważyłem, że aktorzy będą wykorzystywani praktycznie w dowolnym miejscu w systemie aktorów do komunikacji między większością obiektów. Więc zrobiłem to samo - podkręć innego aktora dla x / y / z. Wydaje mi...
Scala nie ma statycznego słowa kluczowego , ale zamiast tego ma podobną funkcjonalność dzięki obiektom towarzyszącym. Za kulisami obiekty towarzyszące są kompilowane do klas, które mają metody statyczne, więc wszystko to jest cukrem składniowym. Jakie są zalety tego wyboru projektu? Niedogodności?...
Przede wszystkim chciałbym wyjaśnić, że nie jest to pytanie język-X-język-Y, aby ustalić, który jest lepszy. Używam Javy od dłuższego czasu i zamierzam nadal z niej korzystać. Równolegle uczę się Scali z wielkim zainteresowaniem: poza drobnymi rzeczami, które przyzwyczajają się do mojego wrażenia,...
Większość języków programowania (zarówno języki dynamiczne, jak i statyczne) mają specjalne słowa kluczowe i / lub składnię, która wygląda znacznie inaczej niż deklarowanie zmiennych dla deklaracji funkcji. Widzę funkcje tak samo, jak deklarowanie innego nazwanego bytu: Na przykład w Pythonie: x...
Tło Odwiedziłem starą (ale świetną) stronę, na której nie byłem od wieków - Alioth Language Shootout ( http://benchmarksgame.alioth.debian.org/ ). Zacząłem programować w C / C ++ kilka lat temu, ale od tego czasu pracuję prawie wyłącznie w Javie z powodu ograniczeń językowych w projektach, w...
Clojure nie wykonuje optymalizacji ogona na własną rękę: jeśli masz funkcję rekurencji ogona i chcesz ją zoptymalizować, musisz użyć specjalnej formy recur. Podobnie, jeśli masz dwie wzajemnie rekurencyjne funkcje, możesz je zoptymalizować tylko za pomocą trampoline. Kompilator Scala jest w stanie...
Wiele, wiele księżyców temu, zrobiłem moich mistrzów w inżynierii oprogramowania obiektowego. Omówiłem wszystko: inicjację projektu, wymagania, analizy, projektowanie, architekturę, rozwój itp. Itp. Moją ulubioną książką informatyczną wszechczasów było tworzenie oprogramowania obiektowego,...
Ostatnio interesowałem się niektórymi koncepcjami programowania funkcjonalnego. Od jakiegoś czasu korzystam z OOP. Widzę, jak zbudowałbym dość złożoną aplikację w OOP. Każdy obiekt wiedziałby, jak to robić. Lub cokolwiek, co robi klasa rodziców. Mogę więc po prostu powiedzieć, Person().speak()żeby...
Zastanawiam się, czy mogę przełączyć się z Javy na Scalę w projekcie Spring + Hibernate, aby skorzystać z niektórych funkcji Scali, takich jak dopasowanie wzorca, Option i co wydaje mi się ogólnie czystszą składnią. Domyślnie szukałem ORM w ekosystemie Scala i odkryłem, że myśli jak Aktywacja (ale...
Przeczytałem trochę na temat semantyki denotacyjnej (DS) i jestem bardzo zaintrygowany procesem projektowania programów komputerowych, w których typy i funkcje mają silne i wyraźne odwzorowania na matematykę. Czy są jakieś zasoby, które szczegółowo omawiają projektowanie programów opartych na DS?...
Zastanawiam się, jakie są techniczne różnice w implementacji między C # i Scalą oraz jak oba rozwiązania porównują się z pomysłami i obawami dotyczącymi implementacji wyrażonymi w e-mailu Peek Past lambda Briana Goetza, wysłanym na listę mailingową projektu Lambda (JSR 335) ? Z e-maila:...
Jestem pewien, że to pytanie zostało zadane wiele razy. Chciałbym jednak o to zapytać ponownie z myślą o przyszłości tych języków. Po raz pierwszy zapoznałem się z Groovy i bardzo mi się podobało. Czułem, że składnia jest prostsza i była znacznie bliższa Javie i mogłem szybko nauczyć się Grails...
Wiem, że jest to bardzo szerokie, dwuznaczne i być może filozoficzne pytanie. Do tego stopnia, że najważniejsze słowo kluczowe w pytaniu - „silny” typ systemu - samo w sobie jest źle zdefiniowane . Pozwól mi więc wyjaśnić, co mam na myśli. Ogólny kontekst pytania W Ruby on Rails budowaliśmy...
Czy ktoś wie, dlaczego Scala została zaimplementowana w Javie i .NET zamiast C lub C ++? Większość języków jest implementowana w Cor C ++ [tj. Erlang, Python, PHP, Ruby, Perl]. Jakie są zalety Scali zaimplementowanej w Javie i .NET, poza umożliwieniem dostępu do bibliotek Java i...
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 6 lat temu . Teraz Eclipse oferuje...
Przeczytałem ten artykuł: Jak napisać metodę równości w Javie . Zasadniczo zapewnia rozwiązanie dla metody equals (), która obsługuje dziedziczenie: Point2D twoD = new Point2D(10, 20); Point3D threeD = new Point3D(10, 20, 50); twoD.equals(threeD); // true threeD.equals(twoD); // true Ale czy to...