Thursday 16 November 2017

Scala parser combinator opcje binarne


Jego pierwszy raz używam kombinatorów parsera skalarnego. Mam taką sytuację, gdy mam listę typów i mogą one rozszerzać inne typy, lub nie. Jeśli tak, po prostu utworzę mapę między typem a typem nadrzędnym. Jeśli nie, po prostu zamapuję typ na obiekt. (Typy są tylko nazwami łańcuchów) Są napisane w ten sposób: w takim przypadku będą domyślnie - obiektem, który próbowałem zaimplementować w następujący sposób, ale nie kompiluje. Mówiąc, że wymaga ListString Option, String i znalazł a, b. Mówi też, że nie może znaleźć nazw wartości w pierwszym dla zrozumienia, podczas gdy w rzeczywistości jest to określone w dopasowaniu wzorca sprawy. Trochę zdezorientowany, co się teraz dzieje. Właściwie po prostu chcę to zwrócić MapString, String. jeśli brakuje rodzicielstwa, domyślnie powinien być obiekt. Jak najlepiej się do tego podejść? Oto kilka rzeczy. Po pierwsze pierwszeństwo i. oznacza, że ​​zamiast łączenia (name), które jest ParserListString z (- parenttype), który jest ParserOptionString, faktycznie pakujesz całą rzecz w. i tak otrzymujesz ListString ParserOption, String jeśli to ma sens. Najłatwiejszym rozwiązaniem jest użycie dodatkowego zestawu nawiasów. A więc na początek: W funkcji mapowania otrzymasz ListString, OptionString z listą nazw i opcjonalnym rodzicielstwem. Pod względem dopasowania do wzorca zawsze otrzymujesz nazwę rodzica, gdzie jest to OptionString. Więc zasadniczo twój drugi wzór jest nieważny. Więc możesz to zrobić: Lub możesz uprościć to do: To jest dokumentacja dla standardowej biblioteki Scala. Struktura pakietu Pakiet scala zawiera podstawowe typy, takie jak Int. Pływak. Array lub Option, które są dostępne we wszystkich jednostkach kompilacji Scala bez wyraźnej kwalifikacji lub importu. Znane pakiety obejmują: Inne pakiety istnieją. Zobacz pełną listę po prawej stronie. Dodatkowe części standardowej biblioteki są wysyłane jako oddzielne biblioteki. Należą do nich: scala. reflect - Scalas reflection API (scala-reflect. jar) scala. xml - parsowanie, manipulowanie i serializacja XML (scala-xml. jar) scala. swing - Wygodne otakiwanie w obrębie interfejsu JavaScript GUI o nazwie Swing (scala - swing. jar) scala. util. parsing - Kombinatory parserów. w tym przykładowa implementacja parsera JSON (scala-parser-combinators. jar) Automatyczne importowanie Identyfikatory w pakiecie scala i scala. Predef są zawsze domyślnie w zasięgu. Niektóre z tych identyfikatorów to aliasy typu dostarczane jako skróty do często używanych klas. Na przykład List jest aliasem dla scala. collection. immutable. List. Inne pseudonimy odnoszą się do klas zapewnionych przez platformę bazową. Na przykład w JVM String jest aliasem dla java. lang. String. Typy Core Scala. Typy Core Scala. Są one zawsze dostępne bez wyraźnego importu. root root root root To jest dokumentacja dla standardowej biblioteki Scala. Struktura pakietu Pakiet scala zawiera podstawowe typy, takie jak Int. Pływak. Array lub Option, które są dostępne we wszystkich jednostkach kompilacji Scala bez wyraźnej kwalifikacji lub importu. Znane pakiety obejmują: Inne pakiety istnieją. Zobacz pełną listę po prawej stronie. Dodatkowe części standardowej biblioteki są wysyłane jako oddzielne biblioteki. Należą do nich: scala. reflect - Scalas reflection API (scala-reflect. jar) scala. xml - parsowanie, manipulowanie i serializacja XML (scala-xml. jar) scala. swing - Wygodne otakiwanie w obrębie interfejsu JavaScript GUI o nazwie Swing (scala - swing. jar) scala. util. parsing - Kombinatory parserów. w tym przykładowa implementacja parsera JSON (scala-parser-combinators. jar) Automatyczne importowanie Identyfikatory w pakiecie scala i scala. Predef są zawsze domyślnie w zasięgu. Niektóre z tych identyfikatorów to aliasy typu dostarczane jako skróty do często używanych klas. Na przykład List jest aliasem dla scala. collection. immutable. List. Inne pseudonimy odnoszą się do klas zapewnionych przez platformę bazową. Na przykład w JVM String jest aliasem dla java. lang. String. Ustawianie akka w playframework, jak skonfigurować i zdobyć ActorSystem Im próbuje utworzyć prostą konfigurację akka w mojej aplikacji gry. Czytałem, że powinienem stworzyć mój ActorSystem w wersji globalnej, ale czy powinienem tworzyć singleton, aby zachować referencję Mam prosty punkt końcowy json w mojej aplikacji gry, więc za każdym razem, gdy ten punkt końcowy api zostanie wywołany, chcę przekazać wiadomość do mojego akka aktor. Zasadniczo tworzę system akka zbudowany wokół gry, dzięki czemu można przesyłać wiadomości przez http. Uwaga: Nie chcę używać domyślnego systemu akka w grze, muszę stworzyć swój własny w application. conf Jak powinienem stworzyć mój ActorSystem w mojej metodzie onStart w Global. scala i jak mam to uwzględnić w moim kontrolerze? czy istnieje przykładowa konfiguracja application. conf do gry 2.2.3 Najlepsze Jak: Po pierwsze, możesz zdefiniować swój Global. scala wewnątrz wspólnego pakietu w następujący sposób (nie może być w domyślnym pakiecie, ponieważ nie byłbyś w stanie uzyskać dostępu do tej klasy) : Następnie możesz użyć tego systemu w kontrolerach, jak w: Na koniec, musisz zmodyfikować plik application. conf i określić, że Twoja witryna Global. scala znajduje się poza domyślną lokalizacją: Chociaż nie jestem bardzo pewny, czy w Play 2.2.x być może będziesz musiał napisać: Prawdopodobnie wciąż używasz routingu w stylu starszym. Z dokumentacji: generator Injected routes Domyślnie Play wygeneruje router statyczny, który zakłada, że ​​wszystkie akcje są metodami statycznymi. Konfigurując Play, aby używał generatora tras wtryskowych, możesz pobrać Play, aby wygenerować router, który zadeklaruje wszystkie. czysty dla list zip powtarza tę wartość na zawsze, więc nie jest możliwe zdefiniowanie zippy aplikacyjnej instancji dla Scalas List (lub jakiejkolwiek innej listy). Scalaz dostarcza tag Zip dla Stream i odpowiednią instancję aplikacji zippy, ale o ile mi wiadomo, jest wciąż całkiem zepsuty. Aby wymusić hibernację, aby rozpocząć nową transakcję w ramce odtwarzającej, a tym samym zapewnić nowy menedżer encji, który zwróci obiekt taki, jaki jest w bazie danych, a nie odwołanie do niego, należy zwrócić się do struktury gry, aby rozpocząć nową transakcję przez. Twoje pytanie jest niejasne, ale zignorowałem. Aby przejść od: val x Array (a, x, y, b) do a: x, y: b Możesz użyć mkString: x. mkString (:). triangleCount zlicza liczbę trójkątów na wierzchołek i zwraca GraphInt, Int, więc musisz wyodrębnić wierzchołki: scalagt graph. triangleCount (). vertices. collect () res0: Array (org. apache. spark. graphx. VertexId, Int) Array ( (1,1), (3,1), (2,1)). Zamierzam tylko komentować na findStart na teraz. Z findStart są dwie rzeczy: funkcja findStart jest wywoływana rekursywnie w każdej sąsiedniej komórce. Niestety sąsiadującą komórką sąsiada jest sama komórka. Funkcja nigdy nie sprawdza, czy faktycznie możesz chodzić na danej komórce (Przypuszczam, możesz wywołać flatMap z funkcją tożsamości, aby spłaszczyć strukturę twojego RDD, rdd. flatMap (tożsamość).Tak, dużo problemów. Robią to, co robi się w konstruktorze książki, i są przerobione dla każdej instancji Twoja główna metoda Thats jest kompilowana do metody instancji Book, a nie statycznej, więc nie obsługuje punktu wejścia dla pliku wykonywalnego. a. po jego prawej stronie ma odwrócone operandy, a inni operatorzy używają tego do (nie myślę o żadnych przykładach z mojej głowy).

No comments:

Post a Comment