2016-08-12 9 views

Odpowiedz

5

Load i require są czysto wykonawczymi działaniami proceduralnymi. Load akceptuje argument łańcuchowy i ładuje plik o tej nazwie (który może być źródłem lub skompilowanym kodem) do uruchomionego Schematu, aby wszystko, co definiuje, stało się dostępne. Require robi to samo, ale sprawdza, czy plik został już załadowany, sprawdzając, czy zostało wywołane dostarczenie o tej samej nazwie (zazwyczaj przez załadowany plik). Są one stosunkowo rzadkie w programowaniu Schematu, co odpowiada wtyczkom w innych językach, gdzie kod nieznany w czasie kompilacji musi być załadowany. Więcej informacji można znaleźć na stronie podręcznika jednostki eval.

dotyczy modułów, a nie plików. Wyszukuje nazwany moduł, który musiał już zostać załadowany, i sprawia, że ​​nazwy wyeksportowane z tego modułu są widoczne w bieżącym kontekście. Aby pomyślnie zaimportować moduł, musi istnieć do niego biblioteka importu. Jest to składnia, więc nazwa modułu musi jawnie pojawić się w wywołaniu i nie może być obliczona w czasie wykonywania. Więcej szczegółów znajduje się na stronie podręcznika modułów.

Require-library ma prawo ładować kod. Jeśli kod jest już częścią działającego Schematu, albo dlatego, że jest wbudowany w Kurczaka, nie robi nic. W przeciwnym razie załaduje rdzenną jednostkę biblioteczną, jeśli taka istnieje, lub zadzwoni pod numer require w ostateczności. Podczas kompilacji robi to analogicznie, aby upewnić się, że środowisko będzie poprawne w czasie wykonywania. Więcej szczegółów znajduje się na stronie "Niestandardowe makra i formularze specjalne" w podręczniku.

wykonuje require-library, a następnie import na tę samą nazwę. Jest to najczęstszy sposób na dodanie funkcjonalności do programu Chicken. Jednakże piszemy (import scheme) i (import chicken), ponieważ funkcjonalność tych modułów jest już załadowana. Require-extension jest dokładnym synonimem dla use, przewidzianym dla zgodności z SRFI 55. W trybie R7RS, import jest również synonimem dla use.

+0

Niesamowite, dziękuję. –

+1

To również zostanie uproszczone w CHICKEN 5: 'use',' require-extension' i 'import' wszystkie zachowują się w zasadzie tak samo. W końcu prawdopodobnie pozbędziemy się jednego lub dwóch z nich. – sjamaan

Powiązane problemy