Başkalarına yardım ederek deneyimlenmiş, Haskell öğrenmek için önerilen yöntemdir. Haskell Book kitabının yazarlarından birine ait önerilerin listesidir.
İnternet söyleşi kanalımıza Freenode üzerinden #haskell-beginners
etiketi ile ulaşabilirsiniz.
İnternet söyleşi kanalımızın ağ istemcisi için.
Haskell e-posta listesi.
Chris Done'ın eğitim hakkındaki gönderisine göz atın
Nazik ve kibar olun. Kabalık ve edepsizlik insanları korkutur ve onları iletişime katkı yapmalarını engeller.
Yapıcı olmayan eleştiriler sadece söyleyene yarar sağlar, dinleyene değil.
Olayları "çok basit" veya "önemsiz" olarak nitelendirmeyin. Bu şekilde insanlar sıkı çalışmaları gerektiğinde kötü hissederler. Yavaş öğrenen kişiler genellikle titizlerdir ve bu övülmesi gereken bir şeydir!
Şaşırmış gibi yapmayın. Birisi size bir şeyi bilmediğini söylediğinde şaşırmış numarası yapmayın. Bu durumda karşınızdaki berbat hisseder ve siz de kendinizi uyanık hissetmekten başka hiçbir şey elde etmezsiniz.
"Aslında..." cümlesini kurmayın. Biri, çoğunluğu doğru olan - fakat tamamı değil - bir şey söylediğinde, siz de, "Aslında…" diyip küçük bir düzeltme yaparsınız. Bu özellikle yapılan düzeltme ana konuyla alakasız bir şey olduğu zaman irite edici olabilir. Ayrıca bu durum #haskell-beginners kanalının doğruluğa ve kusursuz olmaya önem vermeyen bir kanal olduğu anlamına gelmez. "Aslında ..." diye başlayan cümlelerin çoğu gösterişle alakalıdır, doğruluğa ulaşmakla alakalı değildir.
Üzerinize vazife olmayan konularda akıl vermeyin. Bir problemi çözmeye çalışan kişiler gördüğünüzde hemen araya kendi tavsiyelerinizi sıkıştırmaya çalışmayın. Biri yardım isteyene kadar onları çalışmalarıyla başbaşa bırakın. Birbirinin sözünü kesmeden konuşmak #haskell-beginners kanalının kuruluş amaçlarından biridir.
Irkçılık, seksistlik, homofobi, transfobi, veya herhangi bir önyargı ya da nefret söylemi hoş karşılanmayacak ve kesinlikle müsamaha gösterilmeyecektir.
İlkeler Recurse Center 'ın yayınladığı kılavuzdan alınmıştır. Recurse Center'a yayınladığı için teşekkürler!
Haskell raporlarda belirtildiği üzere bir programlama dilidir, son sürümü 2010 yılında çıkmıştır. Rapora buradan ulaşabilirsiniz.
GHC , Haskell çalışmak için en yaygın yoldur. Derleyicinin yanında, REPL (yorumlayıcı - "interpreter"), paket yöneticisi, ve diğer yararlı şeyleri kapsar.
Cabal proje yönetimini ve bağımlılık çözümünü yapar. Cabal ile projeleri oluşturabilir ve genellikle kendi yalıtılmış ortamına ("sandbox") indirebilirsiniz.
Cabal Ruby'deki Bundler, Python'daki pip, Node'daki NPM ve Maven'e eş değerdir. GHC paketleri yönetir, Cabal hangi sürümlerin kurulacağına karar verir.
GHC indirmek ve projelerinizi oluşturmak için Stack'ı edinin .
Eğer Stack hakkında hiçbir bilginiz yoksa ve genel bir tanıtıma ihtiyacınız varsa, kapsamlı Stack video eğitimine buradan ulaşabilirsiniz.
Haskell.org'da bulunan yönergeyi izlemek yerine Stack edinin.
https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html
Aşağıdaki yönergeleri izlemek yerine Stack edinmenizi öneriyoruz, fakat asgari düzeyde kurulum yapmak isteyenler için yönergeler muhafaza edilmektedir.
Bu arşiv (PPA) mükemmel ve tüm Linux makinelerimde bunu kullanıyorum.
Yani:
$ sudo apt-get update
$ sudo apt-get install python-software-properties # v12.04 and below
$ sudo apt-get install software-properties-common # v12.10 and above
$ sudo add-apt-repository -y ppa:hvr/ghc
$ sudo apt-get update
$ sudo apt-get install cabal-install-1.24 ghc-7.10.3 happy-1.19.5 alex-3.1.4
Ardından aşağıdakini $PATH
değişkeninize ekleyin (bash_profile, zshrc, bashrc, etc):
export PATH=~/.cabal/bin:/opt/cabal/1.24/bin:/opt/ghc/7.10.3/bin:/opt/happy/1.19.5/bin:/opt/alex/3.1.4/bin:$PATH
Opsiyonel: Path değişkeninize .cabal-sandbox/bin
de ekleyebilirsiniz. Geliştirdiğiniz
koda komut satırından erişebilirsiniz. Bu sadece şu anda çalıştığınız dizin Cabal sandbox ise çalışır.
Eğer stabil sürümü kullanmıyorsanız, Ubuntu'daki adımları olduğu gibi yapabilirsiniz, fakat ekstradan
bir komut daha çalıştırmanız gerekecek.
sudo add-apt-repository -y ppa:hvr/ghc
çalıştırıldıktan hemen sonra aşağıdaki kodu çalıştırın:
$ sudo sed -i s/jessie/trusty/g /etc/apt/sources.list.d/hvr-ghc-jessie.list
Diğer Debian sürümleri için, yukarda gördüğünüz komuttaki
bütün jessie
'leri kendi sürümünüzün adıyla değiştirin.
Herhangi bir sebepten ötürü, /etc/apt/sources.list.d/hvr-ghc-jessie.list
dosyası
yoksa, /etc/apt/sources.list
dosyası aşağıdaki gibi bir satır içermelidir:
deb http://ppa.launchpad.net/hvr/ghc/ubuntu jessie main
Bu satırda jessie
yerine trusty
yazın.
Mac OS X için yazılmış olan buradaki kılavuzu kullanabilirsiniz:
Not:
- GHC'yi yapılandırırken ön eklerinizi (prefix) de düzenleyin.
cabal-install
dosyası yerine, kaynağı indirin vebootstrap.sh
komut dizisini çalıştırın.
Haskell 7.8.4 sürümünü resmi olmayan repodan kurmak istiyorsanız (Fedora 22+ resmi sürümü içerir):
$ sudo yum-config-manager --add-repo \
> https://copr.fedoraproject.org/coprs/petersen/ghc-7.8.4/repo/fedora-21/petersen-ghc-7.8.4-fedora-21.repo
$ sudo yum install ghc cabal-install
petersen/ghc-7.8.4 copr page 'de bahsedildiği gibi bu ghc, Fedora/EPEL ghc ile birlikte kurulamaz.
Haskell'i Arch Linux'ün resmi reposundan indirip kurmak için aşağıdaki komutu çalıştırın:
$ sudo pacman -S cabal-install ghc happy alex haddock
Gentoo'da, Haskell Platform'un parçalarını Portage aracılığı ile ayrı ayrı
kurabilirsiniz. Eğer ACCEPT_KEYWORDS=arch
kullanırsanız (
ACCEPT_KEYWORDS=~arch
yerine) Portage, Haskell'deki eski bazı şeyleri de kuracaktır.
Bunu göz önünde bulundurarak, sadece ve sadece ACCEPT_KEYWORDS=arch
kullanacaksanız, aşağıdaki
satırları /etc/portage/package.keywords
dosyasına ekleyin.
dev-haskell/cabal-install
dev-lang/ghc
Bunu tamamladıktan sonra aşağıdaki komutları çalıştırın:
$ emerge -jav dev-lang/ghc dev-haskell/cabal-install
Gentoo cabal-install
'ın "stabil" (diğer bir tabirle: eski) bir sürümünü Portage
ağacında tutar. Eğer cabal-install
'ın daha yeni bir sürümü kullanmak istiyorsanız
aşağıdaki komutları çalıştırın. Burada "" işaretlerinin gerekli olduğuna dikkat edin.
$ \cabal update # Ters eğik çizgiler
$ \cabal install cabal-install # gereklidir.
Şu anda Cabal'ı Portage kullanarak global şekilde ve cabal-install
kullanarak
ana dizininize kurdunuz. Sonraki adım terminalde cabal
çalıştırdığınızda
shell'in ana dizininizdeki güncel sürümü çalıştırdığından emin olmak
Bunu da aşağıdaki satırları shell'in konfigürasyon dosyası ekleyerek yapabilirsiniz:
PATH=$PATH:$HOME/.cabal/bin
alias cabal="$HOME/.cabal/bin/cabal"
Shell'in ne olduğunu bilmiyorsanız, büyük bir ihtimalle,shell Bash olarak geçmektedir.
Eğer Bash kullanıyorsanız, düzenleyeceğiniz dosya ~/.bashrc
olmalı. Eğer Z-shell kullanıyorsanız,
dosyanın ismi ~/.zshrc
. Kullandığınız shell'in ne olduğunu öğrenmek için aşağıdaki komutları
çalıştırabilirsiniz.
echo $SHELL | xargs basename
Örneğin ben zsh kullanıyorum, bu yüzden komutu çalıştırdığımda zsh
yanıtını aldım.
Bunların hepsini yaptıktan sonra, ek araçlar olarak alex
ve happy
kurun. Bunun için:
$ cabal install alex happy
Tebrikler! Şu anda çalışan bir Haskell kurulumuna sahipsin!
GHC ve Cabal içeren GHC for Mac OS X uygulamasını kurun.
Uygulamada, .app
dosyasını bir yere koyduktan sonra GHC ve Cabal'ı
path değişkenine nasıl ekleyeceğinizi anlatan yönergeleri de bulabilirsiniz.
Buradaki tar dosyasını indirip kurulumu gerçekleştirin.
- Minimum GHC Installer
network
kütüphanesini ve diğer kütüphaneleri derleyebilmektedir. Minimal GHC ortamının ("environment") yanında Cabal ve MSYS'yi (network
gibi kütüphaneleri indirmenize yarayan derleyici ortamı) de içerir.
minghc web sayfasında birkaç detaya rastlayabilirsiniz, fakat normal olanın tüm sistem dizini yerine sadece local AppData dizinine kurmanız olduğunu unutmayın. (C:\Users<kullaniciadi>\AppData\Local\Programs)
Cabal and ghc'nin son sürümlerini aşağıdaki linklerden indirebilirsiniz:
Paket yükleyicinizden GHC ve Cabal'i indirip kurun, sonra $PATH
değişkeninize ~/.cabal/bin
dizinini atayın. Son olarak cabal
'ı güncelleyin ve alex
ve happy
'i kurun.
$ cabal update
$ cabal install cabal-install alex happy
Ana tavsiyemiz, cis1940 kursunun Bahar'13 versiyonundaki ve İşlevsel Programlama kursundaki dersleri okumanız ve tüm alıştırma/ödevleri tamamlamanızdır. İkisini de aşağıda bulabilirsiniz. Bunlar dışındaki her şey opsiyoneldir ve size nereye bakmanız gerektiğiyle ilgili fikir vermek için bahsedilmiştir.
@dmvianna size tavsiye edilen kaynaklardan sadece ücretsiz olanlarının aşağıda olduğunu hatırlatmamı istedi. Eğer bir kitap incelemek istiyorsanız, kendimize ait Haskell Book! kitabını içtenlikle öneririz. Herhangi bir sebepten ötürü kitabın ücretini karşılayamıyorsanız, lütfen destek sayfamızdaki iletişim bilgilerini kullanarak bize mail atın.
Bununla başlayın; Eğer "Haskell Book" kitabını almayı düşünmüyorsanız bu kurs Haskell'e giriş için en iyi ücretsiz kaynak.
Çevrimiçi erişim.
Brent Yorgey'in kursu şu ana kadar bulabildiğim en iyi kurs. Bu kurs sadece Haskell yazmayı öğretmekle kalmayıp üstüne "Parser Combinator"ler hakkında bilgi sahibi olmanızı sağladığından dolayı çok değerli bir kaynak. Eğer bilgisayar programcısı değilseniz veya yeterince deneyminiz yoksa cis1940 kursuyla başlamanızı tavsiye etmiyoruz. Bu durumda Simon Thompson'ın kitabıyla başlayıp daha sonra cis1940 kursuna geçin.
Bu kursu Yorgey'in cis1940 kursunu tamamladıktan sonra öneriyoruz.
Kursa github üzerinden erişmek için tıklayınız.
Bu kurs cis1940 kursunda bahsedilen kavramları uygulayarak size deneyim katacak ve Haskell'deki Functor/Applicative/Monad/vb. kavramlarını rahatça kullanmanıza kritik düzeyde katkı sağlayacak bir kurs. cis1940 ve ardından İşlevsel Programlama kursunu tamamlamak benim tavsiyelerimin özünü oluşturuyor ve biz herkese Haskell'i bu şekilde öğretiyoruz.
Orta seviye konularda daha fazla materyal içerir
cs240h kursuna çevrimiçi olarak aşağıdaki linklerden erişebilirsiniz:
Bu kurs Bryan O'Sullivan 'ın Standford'da verdiği derslerin online derlenmiş hali. Eğer kendisinin kim olduğunu bilmiyorsanız, herhangi bir Haskell uygulamasının kütüphanelerine göz atın. En az yarısında ismine rastlayacaksınızdır. Eğer Yorgey'in kursunu tamamladıysanız phantom types, bilgi akışı kontrolü, dil eklentileri, concurrency, pipes, ve lenses hakkındaki modüller ilginizi çekebilir.
Bu kaynaklar cis1940 and IP kurslarının aksine test edilmemiştir, yine de konu listesi'den nereden başlamanız gerektiğine dair bilgi alabilirsiniz. Belgede orta/ileri düzeydeki konseptleri ve "işleme" ve "metin editörleri" gibi konuları bulabilirsiniz.
Biraz kırılgan ve daha yavaştır, çaba sarfetmeye değmez.
-
Emacs
- haskell-mode yükleyin
- flycheck yükleyin
- Haskell'i etkinleştirin ve ayarlayın, diğer şeyleri önemsemiyorsanız
(require 'haskell)
modülünü gerektirir. - flycheck'i etkinleştirin
- Stack'in
/usr/bin
dizinine kısayol bağlantısını yapın veya flycheck'in onu görebildiğinden emin olun. - dunzo.
-
Vim
- Biz Stephen Diehl'in vim yönergesini öneriyoruz fakat şimdilik ghc-mod'u aşağıdaki satırlarla değiştirin.
- Vim'de type hatalarını eksiksiz biçimde almak için (ghc-mod yerine)
autocmd FileType haskell setlocal makeprg=stack\ build
autocmd FileType haskell setlocal errorformat=%f:%l:%v:%m
-
Notepad++, Haskell destekler.
-
gedit, Haskell destekler.
- Haskell For Mac
Burada muhafaza edilmektedir.
Bu diyaloglar aslında çok önemli ve öğreticidir. Birçok konuda derin sohbetler için buraya bakabilirsiniz.