Pytania związane z projektowaniem, wdrażaniem i analizą języków programowania. NIE w przypadku pytań dotyczących programowania, które są nie na temat w tej witrynie.
Jestem nowy w teorii języków programowania. Oglądałem kilka wykładów online, w których instruktor twierdził, że funkcją typu polimorficznego forall t: Type, t->tjest tożsamość, ale nie wyjaśniłem dlaczego. Czy ktoś może mi wyjaśnić, dlaczego? Może dowód roszczenia z pierwszych zasad.
Znam kilkanaście języków programowania, które w pewien sposób mają wyjątki, ale doszedłem do wniosku, że mam dwie „patologiczne” tendencje. Wydaje się, że nie ma wspólnego wzorca lub hierarchii wyjątków. Każdy język w zasadzie rozwija własną wersję, a jeśli wyjątki staną się standardem, wówczas wyjątki, które można znaleźć w standardzie, byłyby …
W językach programowania zamknięcia są popularną i często pożądaną funkcją. Wikipedia mówi (moje podkreślenie): W informatyce zamknięcie (...) jest funkcją wraz ze środowiskiem odniesienia dla zmiennych nielokalnych tej funkcji. Zamknięcie umożliwia funkcji dostęp do zmiennych poza jej bezpośrednim zakresem leksykalnym. Zatem zamknięcie jest zasadniczo (anonimową?) Wartością funkcji, która może wykorzystywać …
Przestudiowałem książkę „C ++ Demystified” . Teraz zacząłem czytać „Object-Oriented Programming in Turbo C ++ pierwsze wydanie (1. wydanie)” Roberta Lafore'a. Nie mam żadnej wiedzy o programowaniu, która wykracza poza te książki. Ta książka może być nieaktualna, ponieważ ma 20 lat. Mam najnowsze wydanie, używam starego, ponieważ mi się podoba, …
Naprawdę walczę z tą właściwością: Niech będą spacjami koherencyjnymi, a będzie funkcją monotoniczną. jest ciągłe wtedy i tylko wtedy, gdy , dla wszystkich takich, że jest zbiorem ukierunkowanym.f : C l ( X ) → C l ( Y ) f f ( ⋃ x ∈ D x ) = …
Zgodnie z tym artykułem następujący wiersz kodu Lisp wypisuje „Hello world” na standardowe wyjście. (format t "hello, world") Lisp, który jest językiem homoiconic , może traktować kod jako dane w następujący sposób: Teraz wyobraź sobie, że napisaliśmy następujące makro: (defmacro backwards (expr) (reverse expr)) wstecz to nazwa makra, która przyjmuje …
Chcesz poprawić ten post? Podaj szczegółowe odpowiedzi na to pytanie, w tym cytaty i wyjaśnienie, dlaczego Twoja odpowiedź jest poprawna. Odpowiedzi bez wystarczającej ilości szczegółów mogą być edytowane lub usuwane. Często istnieją języki programowania, które specjalizują się w określonych zadaniach. Niektóre języki programowania doskonale sprawdzają się w arytmetyce tablic (takie …
Pracuję nad kompilatorem dla języka konkatenatywnego i chciałbym dodać obsługę wnioskowania typu. Rozumiem Hindleya-Milnera, ale nauczyłem się teorii typów, więc nie jestem pewien, jak ją dostosować. Czy następujący system jest dźwiękowy i można go w sposób zdecydowanie wywnioskować? Termin jest literałem, kompozycją terminów, cytatem terminu lub prymitywem. e::=x∣∣ee∣∣[e]∣∣…e::=x|ee|[e]|… e ::= …
W odniesieniu do funkcji w językach takich jak ruby (i javascript), które pozwalają programiście rozszerzyć / przesłonić klasy w dowolnym momencie po ich zdefiniowaniu (w tym klasy takie jak String), czy teoretycznie wykonalne jest zaprojektowanie języka, który może pozwolić programom na późniejsze rozszerzenie jego semantyka. np .: Ruby nie zezwala …
Tutaj czytam: Haskell zdecydowanie nie ma najbardziej zaawansowanego systemu czcionek (nawet bliskiego, jeśli liczyć języki badawcze), ale spośród wszystkich języków faktycznie używanych w produkcji Haskell jest prawdopodobnie na szczycie. Pytam więc o dwie rzeczy: które języki badawcze mają mocniejsze systemy typów niż Haskell; co poprawiają. Jestem tylko programistą, więc nie …
Czy ktoś może skierować mnie do recenzowanych artykułów badających zalety lub wady pisania kodu w funkcjonalnym stylu? Czy są artykuły omawiające zastosowania Lambda Calculus w takich dziedzinach, jak uczenie maszynowe, projektowanie języków itp.?
Natknąłem się na dziwne doświadczenie w programowaniu C. Rozważ ten kod: int main(){ int array1[6] = {0, 1, 2, 3, 4, 5}; int array2[6] = {6, 7, 8, 9, 10, 11}; printf("%d\n", array1[-1]); return 0; } Podczas kompilacji i uruchamiania nie otrzymuję żadnych błędów ani ostrzeżeń. Jak powiedział mój wykładowca, …
Myślę, że jestem dość zdezorientowany tym, co nazywa się rachunkiem różniczkowym i językiem programowania. Zwykle myślę, i można było powiedzieć, że rachunek różniczkowy jest formalnym systemem rozumowania na temat równoważności programów. Programy mają semantykę operacyjną określoną przez maszynę, która powinna (myślę?) Być deterministyczna. W ten sposób (poprawny) rachunek różniczkowy dla …
Ciągle słyszę o tym, jak należy nauczyć się teorii kategorii, aby naprawdę zrozumieć teorię języka programowania. Do tej pory nauczyłem się sporo PL bez wchodzenia w sferę kategorii. Uznałem jednak, że nadszedł czas, aby zrobić krok, aby zobaczyć, co straciłem. Niestety, żadne ze źródeł, które mogę znaleźć, nie wydają się …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.