|
|
|
@ -0,0 +1,389 @@
|
|
|
|
|
# Nasıl Haskell Öğrenirim - Kılavuz
|
|
|
|
|
|
|
|
|
|
Başkalarına yardım ederek deneyimlenmiş, Haskell öğrenmek için önerilen yöntemdir. [Haskell Book](http://haskellbook.com) kitabının yazarlarından birine ait önerilerin listesidir.
|
|
|
|
|
|
|
|
|
|
## Türkçe Bilmeyenler İçin
|
|
|
|
|
|
|
|
|
|
- [In English](README.md)
|
|
|
|
|
|
|
|
|
|
- [Auf Deutsch](guide-de.md)
|
|
|
|
|
|
|
|
|
|
- [En Español](guide-es.md)
|
|
|
|
|
|
|
|
|
|
- [En Français](guide-fr.md)
|
|
|
|
|
|
|
|
|
|
- [In Italiano](guide-it.md)
|
|
|
|
|
|
|
|
|
|
- [Em Português](guide-pt.md)
|
|
|
|
|
|
|
|
|
|
- [În Română](guide-ro.md)
|
|
|
|
|
|
|
|
|
|
- [繁體中文](guide-zh_tw.md)
|
|
|
|
|
|
|
|
|
|
- [简体中文](guide-zh_CN.md)
|
|
|
|
|
|
|
|
|
|
- [По-русски](guide-ru.md)
|
|
|
|
|
|
|
|
|
|
- [Українською](guide-ua.md)
|
|
|
|
|
|
|
|
|
|
- [Bahasa Indonesia](guide-id.md)
|
|
|
|
|
|
|
|
|
|
- [Srpski](guide-sr.md)
|
|
|
|
|
|
|
|
|
|
- [Sa Tagalog](guide-tl.md)
|
|
|
|
|
|
|
|
|
|
- [한국어](guide-ko.md)
|
|
|
|
|
|
|
|
|
|
#### _Anlamadığın şeyleri hemen başına dert etme_. Devam et!
|
|
|
|
|
|
|
|
|
|
## Topluluk
|
|
|
|
|
|
|
|
|
|
İ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](http://webchat.freenode.net/).
|
|
|
|
|
|
|
|
|
|
Haskell [e-posta listesi](https://wiki.haskell.org/Mailing_lists).
|
|
|
|
|
|
|
|
|
|
### Topluluk Kuralları
|
|
|
|
|
|
|
|
|
|
[Chris Done'ın eğitim hakkındaki gönderisine göz atın](http://chrisdone.com/posts/teaching)
|
|
|
|
|
|
|
|
|
|
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](http://chrisdone.com/posts/teaching).
|
|
|
|
|
|
|
|
|
|
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](https://www.recurse.com/manual) 'ın yayınladığı kılavuzdan alınmıştır. Recurse Center'a yayınladığı için teşekkürler!
|
|
|
|
|
|
|
|
|
|
# What are Haskell, GHC, and Cabal?
|
|
|
|
|
|
|
|
|
|
Haskell raporlarda belirtildiği üzere bir programlama dilidir, son sürümü 2010 yılında çıkmıştır. Rapora
|
|
|
|
|
[buradan](http://www.haskell.org/onlinereport/haskell2010/) ulaşabilirsiniz.
|
|
|
|
|
|
|
|
|
|
## GHC
|
|
|
|
|
|
|
|
|
|
[GHC](http://www.haskell.org/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
|
|
|
|
|
|
|
|
|
|
[Cabal](https://www.haskell.org/cabal/download.html) 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.
|
|
|
|
|
|
|
|
|
|
# Haskell Kurulum Rehberi
|
|
|
|
|
|
|
|
|
|
## Haskell'e başlamak için Stack kullanın
|
|
|
|
|
|
|
|
|
|
GHC indirmek ve projelerinizi oluşturmak için [Stack'ı edinin](http://haskellstack.org) .
|
|
|
|
|
|
|
|
|
|
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](https://www.youtube.com/watch?v=sRonIB8ZStw) ulaşabilirsiniz.
|
|
|
|
|
|
|
|
|
|
## HASKELL PLATFORM İNDİRMEYİN
|
|
|
|
|
|
|
|
|
|
Haskell.org'da bulunan yönergeyi izlemek yerine Stack edinin.
|
|
|
|
|
|
|
|
|
|
### Neden Haskell Platform kullanmıyoruz?
|
|
|
|
|
|
|
|
|
|
https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html
|
|
|
|
|
|
|
|
|
|
# Aşağıdaki yönergeler artık kullanılmamaktadır
|
|
|
|
|
|
|
|
|
|
Aşağıdaki yönergeleri izlemek yerine [Stack](http://haskellstack.org) edinmenizi öneriyoruz, fakat asgari düzeyde kurulum yapmak isteyenler için yönergeler muhafaza edilmektedir.
|
|
|
|
|
|
|
|
|
|
# GHC & Cabal Kurulumu
|
|
|
|
|
|
|
|
|
|
## Ubuntu
|
|
|
|
|
|
|
|
|
|
[Bu arşiv (PPA)](http://launchpad.net/~hvr/+archive/ghc) mükemmel ve tüm Linux makinelerimde bunu kullanıyorum.
|
|
|
|
|
|
|
|
|
|
Yani:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ 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.
|
|
|
|
|
|
|
|
|
|
## Debian
|
|
|
|
|
|
|
|
|
|
### Ubuntu PPA kullanarak
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ 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.
|
|
|
|
|
|
|
|
|
|
### Manuel compilation
|
|
|
|
|
|
|
|
|
|
Mac OS X için yazılmış olan
|
|
|
|
|
[buradaki](http://www.davesquared.net/2014/05/platformless-haskell.html) kılavuzu
|
|
|
|
|
kullanabilirsiniz:
|
|
|
|
|
|
|
|
|
|
Not:
|
|
|
|
|
|
|
|
|
|
- GHC'yi yapılandırırken ön eklerinizi (prefix) de düzenleyin.
|
|
|
|
|
- `cabal-install` dosyası yerine, kaynağı indirin ve
|
|
|
|
|
`bootstrap.sh` komut dizisini çalıştırın.
|
|
|
|
|
|
|
|
|
|
## Fedora 21
|
|
|
|
|
|
|
|
|
|
Haskell 7.8.4 sürümünü resmi olmayan repodan kurmak istiyorsanız (Fedora 22+ resmi sürümü
|
|
|
|
|
içerir):
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ 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](https://copr.fedoraproject.org/coprs/petersen/ghc-7.8.4/) 'de bahsedildiği gibi
|
|
|
|
|
bu ghc, Fedora/EPEL ghc ile birlikte kurulamaz.
|
|
|
|
|
|
|
|
|
|
## Arch Linux
|
|
|
|
|
|
|
|
|
|
Haskell'i Arch Linux'ün resmi reposundan indirip kurmak için
|
|
|
|
|
aşağıdaki komutu çalıştırın:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ sudo pacman -S cabal-install ghc happy alex haddock
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Gentoo
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ 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.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ \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:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ cabal install alex happy
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Tebrikler! Şu anda çalışan bir Haskell kurulumuna sahipsin!
|
|
|
|
|
|
|
|
|
|
## Mac OS X
|
|
|
|
|
|
|
|
|
|
### 10.9
|
|
|
|
|
|
|
|
|
|
GHC ve Cabal içeren [GHC for Mac OS X](http://ghcformacosx.github.io/) 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.
|
|
|
|
|
|
|
|
|
|
### 10.6-10.8
|
|
|
|
|
|
|
|
|
|
[Buradaki tar dosyasını](https://www.haskell.org/platform/download/2014.2.0.0/ghc-7.8.3-x86_64-apple-darwin-r3.tar.bz2) indirip kurulumu gerçekleştirin.
|
|
|
|
|
|
|
|
|
|
## Windows
|
|
|
|
|
|
|
|
|
|
- [Minimum GHC Installer](https://github.com/fpco/minghc#using-the-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](https://github.com/fpco/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)
|
|
|
|
|
|
|
|
|
|
## Diğer Linux Kullanıcıları
|
|
|
|
|
|
|
|
|
|
Cabal and ghc'nin son sürümlerini aşağıdaki linklerden indirebilirsiniz:
|
|
|
|
|
|
|
|
|
|
- [GHC](http://www.haskell.org/ghc/).
|
|
|
|
|
|
|
|
|
|
- [Cabal](https://www.haskell.org/cabal/download.html).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Diğer Unix-benzeri Sistem Kullanıcıları
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ cabal update
|
|
|
|
|
$ cabal install cabal-install alex happy
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# Nasıl Haskell öğrenmeliyim?
|
|
|
|
|
|
|
|
|
|
Ana tavsiyemiz, cis194 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.
|
|
|
|
|
|
|
|
|
|
## "Haskell Programming from First Principles" - Kitap.
|
|
|
|
|
|
|
|
|
|
[@dmvianna](https://github.com/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!](http://haskellbook.com) kitabını içtenlikle öneririz. Herhangi bir sebepten ötürü kitabın ücretini karşılayamıyorsanız, lütfen [destek sayfamızdaki](http://haskellbook.com/support.html) iletişim bilgilerini kullanarak bize mail atın.
|
|
|
|
|
|
|
|
|
|
### "Haskell Book" Kitabı burada önerilen birincil kaynakların hepsini içerir.
|
|
|
|
|
|
|
|
|
|
## Yorgey'in cis194 kursu
|
|
|
|
|
|
|
|
|
|
> _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](http://www.seas.upenn.edu/~cis194/spring13/lectures.html).
|
|
|
|
|
|
|
|
|
|
[Brent Yorgey](https://byorgey.wordpress.com)'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 cis194
|
|
|
|
|
kursuyla başlamanızı tavsiye etmiyoruz. Bu durumda
|
|
|
|
|
[Simon Thompson'ın kitabıyla](http://www.haskellcraft.com/craft3e/Home.html) başlayıp
|
|
|
|
|
daha sonra cis194 kursuna geçin.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## İşlevsel Programlama Kursu
|
|
|
|
|
|
|
|
|
|
> Bu kursu Yorgey'in cis194 kursunu tamamladıktan sonra öneriyoruz.
|
|
|
|
|
|
|
|
|
|
Kursa github üzerinden erişmek için [tıklayınız](https://github.com/bitemyapp/fp-course).
|
|
|
|
|
|
|
|
|
|
Bu kurs cis194 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. cis194 ve ardından İşlevsel Programlama
|
|
|
|
|
kursunu tamamlamak benim tavsiyelerimin özünü oluşturuyor ve biz herkese Haskell'i
|
|
|
|
|
bu şekilde öğretiyoruz.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Tamamlayıcı Kurs - cis194 ve İşlevsel Programlama kursundan sonra
|
|
|
|
|
|
|
|
|
|
> Orta seviye konularda daha fazla materyal içerir
|
|
|
|
|
|
|
|
|
|
cs240h kursuna çevrimiçi olarak aşağıdaki linklerden erişebilirsiniz:
|
|
|
|
|
|
|
|
|
|
- [Spring 14](http://www.scs.stanford.edu/14sp-cs240h/)
|
|
|
|
|
- [Winter 16](http://www.scs.stanford.edu/16wi-cs240h/)
|
|
|
|
|
|
|
|
|
|
Bu kurs [Bryan O'Sullivan](https://github.com/bos) 'ı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.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Haskell'deki Belirli Konular için Kaynaklar
|
|
|
|
|
|
|
|
|
|
Bu kaynaklar cis194 and IP kurslarının aksine test edilmemiştir, yine de [konu listesi](specific_topics.md)'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.
|
|
|
|
|
|
|
|
|
|
# Araçlar
|
|
|
|
|
|
|
|
|
|
## Eğer acemiyseniz ghc-mod indirmeyin ve kullanmaya çalışmayın
|
|
|
|
|
|
|
|
|
|
Biraz kırılgan ve daha yavaştır, çaba sarfetmeye değmez.
|
|
|
|
|
|
|
|
|
|
## Text Editors
|
|
|
|
|
|
|
|
|
|
- Emacs
|
|
|
|
|
- [haskell-mode yükleyin](https://github.com/bitemyapp/dotfiles/blob/master/.emacs#L31)
|
|
|
|
|
- [flycheck yükleyin](https://github.com/bitemyapp/dotfiles/blob/master/.emacs#L29)
|
|
|
|
|
- Haskell'i etkinleştirin ve ayarlayın, diğer şeyleri önemsemiyorsanız `(require 'haskell)` modülünü gerektirir.
|
|
|
|
|
- [flycheck'i etkinleştirin](https://github.com/bitemyapp/dotfiles/blob/master/.emacs#L97)
|
|
|
|
|
- Stack'in `/usr/bin` dizinine kısayol bağlantısını yapın veya flycheck'in onu görebildiğinden emin olun.
|
|
|
|
|
- [dunzo.](https://twitter.com/bitemyapp/status/693621160571985920)
|
|
|
|
|
|
|
|
|
|
- Vim
|
|
|
|
|
- Biz [Stephen Diehl'in vim yönergesini](http://www.stephendiehl.com/posts/vim_2016.html) ö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
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- [Sublime Text](https://github.com/SublimeHaskell/SublimeHaskell)
|
|
|
|
|
|
|
|
|
|
- [Atom](https://atom.io/packages/ide-haskell)
|
|
|
|
|
|
|
|
|
|
- [IntelliJ](https://github.com/carymrobbins/intellij-haskforce)
|
|
|
|
|
|
|
|
|
|
- Notepad++, Haskell destekler.
|
|
|
|
|
|
|
|
|
|
- gedit, Haskell destekler.
|
|
|
|
|
|
|
|
|
|
## Other
|
|
|
|
|
|
|
|
|
|
- Haskell For Mac
|
|
|
|
|
|
|
|
|
|
## Diyaloglar
|
|
|
|
|
|
|
|
|
|
> [Burada](dialogues.md) muhafaza edilmektedir.
|
|
|
|
|
|
|
|
|
|
Bu diyaloglar aslında çok önemli ve öğreticidir. Birçok konuda derin sohbetler
|
|
|
|
|
için buraya bakabilirsiniz.
|