Pytania otagowane jako scala

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.


4
Czy programowanie funkcjonalne jest szybsze w wielowątkowości, ponieważ piszę rzeczy inaczej lub ponieważ rzeczy są kompilowane inaczej?
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 dowiedzieć się, czy wielowątkowość jest szybsza w języku funkcjonalnym, …




3
Jakie są zalety obiektów towarzyszących Scali w porównaniu do metod statycznych?
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? Czy inne języki mają podobne konstrukcje?
50 scala 

4
Wydajność Scali w porównaniu z Javą
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, to, że naprawdę mogę bardzo dobrze pracować w …

12
Dlaczego większość języków programowania ma specjalne słowa kluczowe lub składnię do deklarowania funkcji? [Zamknięte]
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 = 2 y = addOne(x) def addOne(number): return number …


4
Jakie ograniczenia JVM nakłada na optymalizację wezwania ogona
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 wykonać TCO dla funkcji rekurencyjnej, ale nie dla dwóch …
36 scala  clojure  jvm  tail-call 

6
Ponowne opracowanie projektu systemu dla Scali
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, podejście oparte na doświadczeniu (IBM-1996). Książka stworzona przez grupę prawdziwych ekspertów swoich czasów. Opisuje podejście zorientowane na produkt pracy …

7
Programowanie funkcjonalne w porównaniu do OOP z klasami
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 ta osoba mówiła. Ale jak zrobić podobne rzeczy w programowaniu funkcjonalnym? …


2
Zastosowanie Denotational Semantics do projektowania programów
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? Widziałem kilka powierzchownych zabiegów na ten temat. Jestem biegły w Haskell, …
30 scala  haskell  scheme 


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.