Forum: Duyurular RSS
ÖNERİ: Ana Sayfadaki 'Hello World'ü değiştirelim...
Ama çok da karmaşıklaştırmayalım tabi...:)
Avatar
Salih Dinçer #1
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: ÖNERİ: Ana Sayfadaki 'Hello World'ü değiştirelim...
Bilmiyorum çok mu karmaşık oldu veya dile ilk başlayanları ürkütür mü?

Ama Ana Sayfa'daki en değerli bölümleri her dilde standart olan bir ifadeyle doldurmak ne derece doğru! Bence şunun gibi dilimli, UFCS'li, foreach'li ve de UTF desteğini az da olsa belirten bir örnek daha hoş olmaz mı?
import std.stdio;
 
void main() {
    string str = "Hello World";     // bir string(dizge) ve/veya dizi
    auto slice = str[0..5];         // dizinin bir bölümünü gösteren dilim
    
    slice.writeln("< kaç harf,");   // dilimi ekrana UFCS ile basan işlev
    "World".writeln("  olabilir?"); // doğrudan ekrana yazan aynı işlev
    
    auto world = str[6..$];         // bize "World" sözcüğünü gösteren dilim
    foreach(i, c; slice) {          // daha önce yazdığımızı yukarıdan aşağıya
        writef("%d, %s (", i+1, c); // sayan ve yazan harika bir döngü
        world[i].writeln(")");      // bu dünya, UTF destekli yuvarlık bir nokta...:)
    }
    writefln("Meğer ilk sözcük %d harf imiş"    /* burası önemsizdir  */  "\n"
             "tüm cümle ise: %d", slice.length  /* çünkü hepsi birdir */
                                , str.length);
}
Çıktısı:
Hello< kaç harf,
World  olabilir?
1, H (W)
2, e (o)
3, l (r)
4, l (l)
5, o (d)

Bu örnek bana kalırsa basit bir ekrana yazma olayına göre daha etkileyici. En azından UFCS ve doğrudan yazabilme gibi özellikleri belirtmeliyiz. Belirtelim ki artık bu dil ülkemizde de yaygınlaşsın.

Dip Not: Açıklamalardaki yuvarlak bir noktadan kastım, Carl Sagan'nın Soluk Mavi Nokta betimlemesine gönderme yapmaktı. İşte biz bu dünyaya merhaba demekteyiz:

[Resim: http://upload.wikimedia.org/wikipedia/commons/thumb/7/71/PaleBlueDot.jpg/350px-PaleBlueDot.jpg]

Teşekkürler...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj 4 defa değişti; son değiştiren: Salih Dinçer; zaman: 2012-07-15, 10:30.
Avatar
huseyin #2
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Valla ben ürktüm :D
Huseyin
Avatar
Salih Dinçer #3
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ürkülecek ne var yahu...:)

Altı üstü İngilizce "Merhaba Dünya" yazmaktayız. Ama yazarken doğrudan yazmak yerine önce dilimi kullanarak "Hello", sonra benim de yeni öğrendiğim tırnağı dışarıya alıp (dikkat bu bir nesne değil ama derleyici nesne gibi görmekte!) yine UFCS ile (yani nesneler arasında nokta koyarak soldan sağa birbirleriyle irtibatlandırma) ekrana yazma.

En son da sorduğumuz soruyu (her sözcük kaç harf?) doğrudan yazdırmak yerine dolaylı bir biçimde saydırıp ekrana yukarıdan aşağıya yazdırıyoruz. <--- offf ifade etmesi bile uzun sürdü...:)

Tamam, kabül ediyorum belki de sadece foreach ile bir dilimi yazdırsaydık ve UFCS kullansaydık yeterli olabilirdi...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
huseyin #4
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Bence standart writeln() kullanalım ama bunu kod örneklerine ekleyelim D yi öğrenme hevesi ile gelen birisi bunu görse şok olabilir ilk önce basit bir görüntü iyidir tabiki bu benim düşüncem kişiye göre değişecek elbette
Huseyin
Kadir Can #5
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ben bu konuda Salih'e katılıyorum; dilin olanaklarını tamamen göstermeliyiz.
Bence bu noktada std.algorithm olanaklarını da bolca kullanabiliriz. Buradaki olanaklar C++, Python ve belki de diğer birçok dilde de bulunduğu için etkili olabilir.
Aslında dlang.org'da olduğu gibi birçok kodun arasından rastgele kod seçip göstersek çok iyi olur, böyle bir şey yapabilir miyiz?
Avatar
huseyin #6
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Aklıma bir fikir daha geliyor ama dlang.org taki rdmd ile olan online derleme ve çalıştırma işleminin benzerini yaparsak gayet ilgi çekecektir diye düşünüyorum
Huseyin
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Evet, hepsi güzel fikirler.  Zamanla... :)

Ali
Avatar
mert #8
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Başlangıçlar her zaman basit ferah ve kolay kavranılabilir olabilmeli.
Eski dillere aşinalığı olmayanların gözünde bu kodlar; "uçurumunun kenarından belirsizliğe paraşütsüz düştün düşeceksin aman dikkat!" uyarısı gibi de görünmemeli.
İlahi Salih; Beni bile titrettin oturduğum yerde yazdığın kodlar ile :-)
mert
Avatar
Salih Dinçer #9
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yeni başlık açmak istemedim ve Rhodeus ile ilgili de bir duyuru başlığı bulamadım...:)

Talha Zekeriya Durmuş'un önderliğinde geliştirilen Rhodeus Script, D dilinde yazılmıştır. O yüzden projeyi sahiplenip bol bol denemeler yapmayı görev edindim. Aşağıdakini daha önce yapmıştım ama bir Hello World örneği olduğu için burada nakletmek istedim:

Örneğin 2 özelliği var:
1.'si baştaki basit tek karakterli bir dizi ile HTML belgeler içinde kolaylıkla makro oluşturulması,
2.'si shift ve reverse gibi verileri kolay işleme olanaklarının gösterilmesi!
<|
_ = ["&nbsp;", "<br />", "<p>", "<hr>"]
|>
<html>
  <head>
    <title>Rhodeus Script</title>
  </head>
<body>
  <h2 style="color: #c0c0c0">Rhodeus Script</h2>
  <|
    //Rhodeus Script kodları…
    version = 0.4
    print("Rhodeus Script ", version)
 
    print(_[1], "Veri Kaynağı: ") // satır başı
 
    veriler = ["H", "e", "l", "l", "o", " ",
               "W", "o", "r", "l", "d"]
    print(veriler)
 
    print(_[3]) // çizgi koyar
 
    foreach(veri; veriler) { print(veri) }
    print(_[1]) // satır başı
 
    veriler.shift;
    foreach(veri; veriler) { print(veri) }
    
    print(_[1]) // satır başı
    
    veriler.reverse;
    foreach(veri; veriler) { print(veri) } 
  |>
</body></html>
Ekran Görüntüsü:
Rhodeus Script

Rhodeus Script 0.4
Veri Kaynağı: [H, e, l, l, o, , W, o, r, l, d]
Hello World
ello World
dlroW olle
HTML Kaynak Kodu:
<html>
<head>
<title>Rhodeus Script</title>
</head>
<body>
<h2 style="color: #c0c0c0">Rhodeus Script</h2>
Rhodeus Script 0.4<br />Veri Kaynağı: [H, e, l, l, o,  , W, o, r, l, d]<hr>Hello World<br />ello World<br />dlroW olle
</body></html>

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 03:56:27 (UTC -08:00)