Ważne informacje o języku programowania Haskell

Spisie treści:

Anonim

Haskell Programming Language - Być może czytałeś o wielu językach. Ale kiedy słyszysz o Haskell, pierwszą rzeczą, która przychodzi na myśl, jest „Oto inny tak zwany język niedoszłych”. Pierwsze pytanie, które przychodzi na myśl, to; DLACZEGO? Dlaczego potrzeba tak wielu języków? Dlaczego to musi być takie trudne? Dlaczego Python lub Ruby jest tak łatwy w porównaniu do C lub Java? A co do cholery jest Haskell?

Nie martw się Jestem tu dzisiaj, aby odpowiedzieć na wszystkie pytania. Ale po pierwsze, czym jest Haskell? Zwykle nie byłoby wielu ludzi uczących się lub rozmawiających o tym języku. Ponieważ Haskell nie jest tak prosty jak C czy Python. TAK! Powiedziałem C. Jestem programistą w C od ostatnich 4 lat i uważam to za bardzo interesujące. Ale to nie to samo w przypadku Haskell.

Nauczyłem się Haskell, ponieważ uważam, że jest to bardzo trudne w przeciwieństwie do C lub Pythona. Python jest niesamowitym językiem i bardzo elastycznym. Dzięki temu możesz prawie zrobić wszystko, co chcesz. Twoja wyobraźnia jest tylko granicą w Pythonie. Teraz zamiast się chwalić Pythonem, zacznijmy od Haskella. Ponieważ po to tu jesteśmy, prawda?

Ale zanim przejdziesz dalej, pozwól, że cię ostrzegę. Ten język nie jest dla początkujących; przynajmniej nie dla absolutnie początkujących. Jeśli nie masz wcześniejszego doświadczenia w programowaniu, Haskell da ci poczucie ROCKET SCIENCE. I to jest pogrubione. Programiści to zrozumieją.

Język programowania Haskell jest językiem czysto funkcjonalnym. Albo właściwym terminem byłoby matematyka. Każda osoba, która lubi matematykę, będzie wyjątkowo wygodna w programowaniu dynamicznym Haskell, szczególnie z twierdzeniami.

Ale czym jest programowanie funkcjonalne?

Mówiąc ściślej, w funkcjonalnym języku programowania oryginalną metodą obliczeń jest wprowadzenie funkcji do argumentów. Oprócz innych funkcji, jakie zapewniają te typy języków, programowanie funkcjonalne oferuje ekstremalnie małą i kompaktową metodę kodowania programów, w tym duże metody abstrakcji do ich uporządkowania, i potrzebuje sposobu myślenia, który umie sformułować na drodze matematyki, który obsługuje rozumowanie programów, nieco podobny do twierdzeń.

Tego rodzaju języki wiodą w rozwoju projektowania języków programowania. Wszystkie inne języki programowania, takie jak PHP, Basic, C ++, Java Python, Ruby, JavaScript i Scala; wszystkie są programami wysokiego poziomu, które wyrażają wyrażenia lambda lub zamknięcia.

Czysto funkcjonalne języki wprowadzają w pełni niezmienne struktury, a funkcje te nie mają żadnych skutków ubocznych. Ta funkcja bierze wszystkie niezmienne struktury razem jako pewnego rodzaju dane wejściowe, a następnie tworzy nową podobną strukturę jak dane wyjściowe.

Przykłady dodawania liczb całkowitych w:

Pyton:

>>>a=2

>>>b=3

>>>a+b

>>>5

C ++:

template

struct add (

static constexpr int value = x + y;

);

int main() (

auto z = add::value;

std::cout << z << std::endl;

return 0;

)

Haskell:

add :: Int -> Int -> Int

add de = d + e

main :: IO ()

main = do

let f = add 1 2

putStrLn $ show f

Haskell to w rzeczywistości niesamowity język programowania. Matematyka jest niezwykle skomplikowana i od razu do rzeczy, w przeciwieństwie do innych, gdzie nie można udowodnić, że programy są poprawne, aw większości przypadków tutaj, w Haskell, mogą, a jeśli się skompilują, będą działać bez żadnych problemów. To jednak wprowadza nowe wyzwania.

Powiedzmy, że na przykład nie możesz zmienić nawet jednego var tutaj (var oznacza zmienną). Rekurencja jest kluczem do wszystkiego tutaj. Ale nie musisz się martwić. Gdy już to zrozumiesz, poczujesz się jak w domu w piśmie do pisania w Haskell. Jedyną częścią, w której powinieneś się martwić, jest to, kiedy powiedziałem „Jeśli się skompilują”. Hehehe…, to najtrudniejsza część Haskell: „Kompilacja”.

Polecane kursy

  • Szkolenia XML
  • Szkolenia egzaminacyjne CCNA
  • Kurs systemu operacyjnego UNIX i Linux
  • Kurs HTML 5 online

Dlaczego język programowania Haskell?

Jeśli chodzi o powyższe pytanie, pytam: „Dlaczego nie?” Haskell jest w zasadzie dobrym językiem do nauki. Tutaj twój kod jest prosty i samodzielny. Nie ma tu żadnych kłopotów ani niepotrzebnych wcięć. Haskell Programming Language działa również dobrze z pomysłami. Przy przyzwoitym doświadczeniu możesz pisać programy w formatach wysokiego i niskiego poziomu.

W jednym miejscu, gdzie Haskell jest świetnym sposobem na naukę matematyki, z drugiej strony, jest również potężny do programowania równoległego w haskell, co daje dobrą kontrolę nad kawałkami algorytmów w zakresie struktury typów w pamięci . Przez większość czasu ludzie pozbawiają zaawansowanego języka programowania Haskell, ponieważ wygląda on na zbyt niski poziom, ale jeśli przyjrzysz się jego pozytywnej nucie, oznacza to, że programowanie funkcjonalne Haskell ma skalowalne funkcje niskiego i wysokiego poziomu.

Haskell to dobry początek jako pierwszy język. Wiele przeszkód, jakie napotykają ludzie podczas nauki języka Haskell, ponieważ są zbyt przyzwyczajeni do innych języków wysokiego poziomu, takich jak Python lub Ruby, ale rzecz w tym, że język programowania Haskell jest zbyt odmienny od nich. Zatem jeśli w ogóle nie wiesz nic o programowaniu, nie będziesz miał problemu z nauką go jako pierwszego języka.

O wiele łatwiej jest przejść od Haskella do nauki czegoś innego niż na odwrót. Teraz możesz myśleć, że na początku powiedziałem, że ten język nie jest dla początkujących. Tak, powiedziałem to, ponieważ chciałem mieć pewność, że nie zmarnujesz 30 minut na czytanie tego. Jeśli zainwestowałeś już tyle czasu w czytanie o Haskell, oznacza to, że musisz się mocno nauczyć. I właśnie tego potrzebujesz, aby nauczyć się tego języka.

Wady

Haskell to świetny język, ale jak każdy inny język, Haskell Programming Langauge ma swój własny zestaw cech. Na przykład oprzyrządowanie, komunikaty o błędach i sposób budowy systemu są bardziej złożone, niż muszą. Jeśli pracujesz w GHCi, z pewnością zauważysz, że komunikaty o błędach nie są tutaj tak pomocne, jak w Pythonie, Golang lub Scali.

Nie wspominając już o tym, że niektóre z nich są obecnie opracowywane. Platforma Haskell jest niewielka i łatwa w instalacji. Z drugiej strony Haskell oferuje bardziej stabilną obsługę REPL. Zarządzanie pakietami ma ostatnio sporo zmian i wciąż się poprawiają. Nawet Emacs wkrótce otrzymają sporo ulepszeń i nowych funkcji.

Chociaż Haskell brzmi zbyt ostro jako język dla początkujących, ale gdy masz odpowiednie podstawy, możesz go łatwo przenieść na języki niskiego poziomu lub języki wysokiego poziomu ze względu na jego wysoce elastyczne cechy, w przeciwieństwie do języków takich jak Python lub Perlu, jeśli się tego nauczysz, prawdopodobnie nigdy nie pomyślisz o nauce języków niskiego poziomu z powodu jego wyobcowanej struktury kodu.

Haskell, to dość duży język do nauki w szczegółach. Ogólnie rzecz biorąc, powiedziałbym, że Haskell to świetny pierwszy język do nauki. Jedyną częścią, o którą warto się martwić, jest to, że może wymagać więcej wysiłku, aby rozpocząć i kontynuować pracę ze względu na problemy z jej narzędziami, szczególnie jeśli chcesz zbudować interesujący program.

Gdybym chciał uczyć ludzi języka programowania Haskell, włożyłbym więcej wysiłku, aby procedura instalacji była bardziej bezbolesna. Trzeba mieć odpowiedni zestaw modułów, odpowiednią wersję zainstalowaną, aby poprawnie skonfigurowali GHCi do kompilacji problemów.

Nauka języka programowania Haskell oznacza, że ​​musisz myśleć w sposób funkcjonalny. Wiele nowych języków programowania pozwala na funkcjonalny styl programowania, ale większość programistów nie wykorzystuje w pełni tych funkcji, ponieważ myślą bardziej zorientowaną obiektowo, ponieważ ich tło pochodzi z nauki języka C lub C ++.

Najbardziej oczekiwane pytanie

Teraz najbardziej oczekiwane pytanie… Jakie są praktyczne zastosowania Haskell?

Haskell jest z pewnością często używany w branży, ale nie tak często, jak C # czy Java. Więc jeśli chcesz się tego nauczyć, aby uzyskać pomoc w programowaniu haskell, może to być strata czasu. Lepszym powodem do nauki Haskell jest zapoznanie się z funkcjonalnym podejściem do stylu. Stanie się to znacznie szybciej w przypadku Haskell niż w innym języku funkcjonalnym, takim jak F # lub Scala. Możesz również sprawdzić mój następny blog na Haskell vs Scala, aby poznać różnicę.

Powodem tego jest to, że jeśli zbytnio irytujesz się stylem funkcjonalnym, inne języki mają opcję przejścia na podejście obiektowe. Ale tak nie jest w przypadku Haskell. Haskell Programming Language ma konstrukcję, która zmusza do pisania tylko w funkcjonalnym stylu, ponieważ nie ma innego dostępnego podejścia. Ostatnią rzeczą, którą możesz zrobić, to zrezygnować z pisania aplikacji.

Wniosek

Punktem końcowym tego całego bloga jest, jeśli szukasz pracy w Haskell; poczekaj, aż NASA lub NSA zaczną zatrudniać początkujących programistów Haskell do pracy. Tak! Tak to jest rzadkie. Ale jeśli uczysz się, bo lubisz wyzwania, to Haskell jest właściwą drogą. Sprawi, że kodujesz znacznie lepiej w dowolnym języku.

Pomoże ci to zrozumieć problem w odpowiedni sposób, rozbić go na odpowiednie części i zmniejszyć potrzebę debugowania. Jeśli uczysz się Haskell i innych języków programowania, to Haskell jest dla Ciebie najlepszy. Ponieważ będzie to mądry programista.

Pierwsze źródło obrazu: pixabay.com

Powiązane artykuły:-

Oto kilka artykułów, które pomogą ci uzyskać więcej informacji na temat języka programowania Haskell, więc po prostu przejdź przez link.

  1. Korzyści ze schematu języka programowania
  2. Języki wysokiego poziomu a języki niskiego poziomu - jak się różnią
  3. Kompleksowy przewodnik po języku programowania schematów
  4. Najlepsze języki programowania do nauki algorytmów
  5. 10 interesujących rzeczy na temat języka programowania Java
  6. Kariera w programowaniu R.