Haskell to funkcjonalny język programowania z silnym typowaniem statycznym, leniwą oceną, szeroką obsługą równoległości i współbieżności oraz unikalnymi możliwościami abstrakcyjnymi.
Próbuję zaimplementować architekturę sieci neuronowej w Haskell i używać jej na MNIST. Używam hmatrixpakietu do algebry liniowej. Moja struktura szkoleniowa jest zbudowana przy użyciupipes pakietu. Mój kod kompiluje się i nie ulega awarii. Ale problem polega na tym, że pewne kombinacje rozmiaru warstwy (powiedzmy, 1000), rozmiaru minibatchu i szybkości uczenia …
Oto scenariusz: napisałem trochę kodu z podpisem typu, a skargi GHC nie mogły wydedukować x ~ y dla niektórych xi y. Zwykle możesz rzucić GHC kość i po prostu dodać izomorfizm do ograniczeń funkcji, ale jest to zły pomysł z kilku powodów: Nie podkreśla zrozumienia kodu. Możesz skończyć z 5 …
Zaczynam rozumieć, w jaki sposób forallsłowo kluczowe jest używane w tak zwanych „typach egzystencjalnych”, takich jak: data ShowBox = forall s. Show s => SB s Jest to jednak tylko podzbiór tego, w jaki sposób foralljest używany i po prostu nie mogę skupić się na jego użyciu w takich rzeczach: …
Co oznacza postać normalna słaba głowa (WHNF)? Co oznaczają Forma normalna głowy (HNF) i Forma normalna (NF)? Real World Haskell stwierdza: Znajoma funkcja seq ocenia wyrażenie do tego, co nazywamy formą głowy normalną (w skrócie HNF). Zatrzymuje się, gdy dotrze do najbardziej zewnętrznego konstruktora („głowy”). Różni się to od postaci …
Wyrażenie „algebraiczne” dla typów danych algebraicznych wygląda bardzo sugestywnie dla kogoś z doświadczeniem w matematyce. Pozwól mi wyjaśnić, co mam na myśli. Po zdefiniowaniu podstawowych typów Produkt • Unia + Singel X Jednostka 1 i używając skrótów X²dla X•Xi 2Xdla X+Xet cetera, możemy następnie zdefiniować wyrażenia algebraiczne dla np. list …
Chcę uczyć się FRP w Haskell, ale wybór biblioteki jest nieco trudny. Wiele z nich wydaje się nieudanymi próbami, niektóre zostały wskrzeszone (np. Niedawna aktywność na Yampie). Z tego, co przeczytałem, wydaje się, że istnieją dwa „rodzaje” FRP: push-pull FRP (jak w Reactive-banana) z jednej strony i FRP (jak w …
Natrafiłem na następującą definicję, próbując nauczyć się Haskell, używając prawdziwego projektu do jej prowadzenia. Nie rozumiem, co oznacza wykrzyknik przed każdym argumentem, a moje książki chyba o tym nie wspominały. data MidiMessage = MidiMessage !Int !MidiMessage
Czy szablon Haskell może znaleźć nazwy i / lub deklaracje powiązanych synonimów typów zadeklarowanych w klasie typu? Spodziewałem się, reifyże zrobię to, co chcę, ale wydaje się, że nie zawiera wszystkich niezbędnych informacji. Działa w celu uzyskania podpisów typów funkcji: % ghci GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help ... …
Wygląda na to, że szablon Haskell jest często postrzegany przez społeczność Haskell jako niefortunna wygoda. Trudno wyrazić słowami dokładnie to, co zaobserwowałem w tym względzie, ale rozważ kilka przykładów Szablon Haskell wymieniony w sekcji „Brzydki (ale konieczny)” w odpowiedzi na pytanie Których rozszerzeń Haskell (GHC) powinni używać / których powinni …
Haskell (z GHCkompilatorem) jest znacznie szybszy, niż można się spodziewać . Używana poprawnie, może być zbliżona do języków niskiego poziomu. (Ulubioną rzeczą dla Haskellerów jest próba uzyskania do 5% C (lub nawet pokonania go, ale to oznacza, że używasz nieefektywnego programu C, ponieważ GHC kompiluje Haskell do C).) Moje pytanie …
Dwie frameworki internetowe Haskell w wiadomościach to ostatnio Yesod (w wersji 0,8) i Snap (w wersji 0,4). To oczywiste, że Yesod obsługuje obecnie o wiele więcej funkcji niż Snap. Jednak nie mogę znieść składni, której używa Yesod w swoich HTML, CSS i JavaScript. Tak więc chciałbym zrozumieć, czego bym przegapił, …
Uczę się Haskell i czytam kilka artykułów dotyczących różnic w wydajności list Haskell i tablic (wstaw swój język). Będąc uczniem, oczywiście po prostu używam list, nawet nie myśląc o różnicy w wydajności. Niedawno rozpocząłem badanie i znalazłem wiele bibliotek struktur danych dostępnych w Haskell. Czy ktoś może wyjaśnić różnicę między …
Wierzę, że społeczność Erlang nie jest zazdrosna o Node.js, ponieważ natywnie blokuje operacje we / wy i ma sposoby na łatwe skalowanie wdrożeń na więcej niż jednym procesorze (coś, co nie jest nawet wbudowane w Node.js). Więcej informacji na http://journal.dedasys.com/2010/04/29/erlang-vs-node-js i Node.js lub Erlang Co z Haskellem? Czy Haskell może …
Uwaga: Jest to rozszerzenie wątku uruchomionego na / r / haskell Zacznijmy od faktów: Android to niesamowity system operacyjny Haskell to najlepszy język programowania na świecie Dlatego ich połączenie sprawiłoby, że rozwój Androida byłby znacznie lepszy. Zasadniczo chciałbym tylko wiedzieć, jak pisać programy Haskell dla systemu operacyjnego Android. Moje pytanie …
Niedawno opublikowałem pytanie dotyczące syntactic-2.0 dotyczące definicji share. Pracowałem w GHC 7.6 : {-# LANGUAGE GADTs, TypeOperators, FlexibleContexts #-} import Data.Syntactic import Data.Syntactic.Sugar.BindingT data Let a where Let :: Let (a :-> (a -> b) :-> Full b) share :: (Let :<: sup, sup ~ Domain b, sup ~ Domain …
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.