Skip to content

Instantly share code, notes, and snippets.

@sumnulu
Last active August 29, 2015 14:10
Show Gist options
  • Save sumnulu/7055c6b7d00583b6c5e6 to your computer and use it in GitHub Desktop.
Save sumnulu/7055c6b7d00583b6c5e6 to your computer and use it in GitHub Desktop.
Dect kata mini tutor
import util.Random
val xs = List("a","b","c","d")
val ys = 1 to 13
//her xs in her ys ni al ve birleştir ve 52 elemanlık desteyi oluştur
val deck = for(x <-xs; y<-ys ) yield x+y
//Sirasiyla:
//1- desteyi rastgele dağıtalım
//2- 13'lü gruplara bölelim
//3- her 13'lü gurup'u print edelim yada üzerinde başka bir işlem yapalım
// not: sadece print ettiğimiz için return value'suna gerek duymadığımiz için,
// map yerine foreach daha doğru olur
(Random shuffle deck grouped 13 toList) map println
/* Çıktı :
List(d3, a12, b3, b4, d13, b13, a13, c11, d10, b9, a2, b5, c8)
List(c6, d12, b7, c4, a1, a3, a7, d11, a6, b8, c5, c13, a9)
List(a10, d5, b12, d1, d7, d8, c1, d6, c7, b6, d4, c10, c12)
List(b2, c3, c9, a5, a11, b10, a8, b11, b1, c2, d9, a4, d2)
*/
//#### BONUS BÖLÜM....
//2. kez ayni fonksiyonu cağırdığımızda bütün collectionlar immutable olduğu için hata vermeden çalışacak
//orjinal dect listesinin içeriği değişmiyor
// yukaridaki fonsiyonun sentetik şekersiz syntax'ı
Random.shuffle(deck).grouped(13).toList().map(println(_))
//daha da uzun hali
Random.shuffle(deck).grouped(13).toList().map(x => println(x))
// type inferience değişken typelarını kendisini hesaplıyor
// daha da çirkinleştirmek için type'ı elle yazalim
Random.shuffle(deck).grouped(13).toList().map(x:List[String] => println(x))
// Random nesnesinden shuffle 'i import edebiliriz
// kodun ortasinda yada scope a özel import yapila biliniyor
import Random.shuffle
shuffle(deck).grouped(13).toList().map(x:List[String] => println(x))
//yukaridaki import a denk
import scala.util.Random.shuffle
//yada Random daki herşeyi import edelim javada ki * a benziyor
import scala.util.Random._
//FIN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment