Last active
August 29, 2015 14:10
-
-
Save sumnulu/7055c6b7d00583b6c5e6 to your computer and use it in GitHub Desktop.
Dect kata mini tutor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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