Jump to page: 1 2
Thread overview
inout parametreler
Apr 04, 2012
mert
Apr 04, 2012
zafer
Apr 04, 2012
zafer
Apr 04, 2012
mert
Apr 04, 2012
zafer
Apr 04, 2012
mert
Apr 06, 2012
Salih Dinçer
Apr 07, 2012
mert
Apr 08, 2012
Salih Dinçer
Apr 08, 2012
mert
Apr 08, 2012
Salih Dinçer
Apr 05, 2012
zafer
March 28, 2012

Şu bölüme inout parametreleri ekledim:

http://ddili.org/ders/d/islev_parametreleri.html

scope ve shared'den de kısaca bahsettim.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 04, 2012

Hocam merhaba,
Eklemeler için teşekkür ederim, içerik daha da zenginleşmiş.
Yeni baştan çıktı alıp üzerinden geçmem gereken konular da birikmiş.
Bir süre buralardayım galiba yine,
Hoşbulduk ))

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 04, 2012

Alıntı:

>

Bir süre buralardayım galiba yine,

Mert, hoşgeldin özledik seni, umarım bu sefer daha uzun kalırsın. Çalışmalar nasıl gidiyor?

import std.stdio;

int[] kırpılmışı(int[] dilim)
{
   if (dilim.length) {
       --dilim.length;               // sondan kırp

       if (dilim.length) {
           dilim = dilim[1 .. $];    // baştan kırp
       }
   }

   return dilim;
}

void main()
{
   int[] sayılar = [ 5, 6, 7, 8, 9 ];
   writeln(kırpılmışı(sayılar));
}

Alıntı:

>

... Dikkat ederseniz dilimin kendisinin değiştirilmesinde bir sakınca yoktur çünkü değiştirilen dilim işlevin çağrıldığı yerdeki dilim değil, onun kopyasıdır ...

Diziler (yada dilim) metotlara referans olarak geçiriliyorlar diye biliyordum. Göremediğim bir noktamı var?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 04, 2012

Bu dilimler gerçekten karışık :)

Şimdi benim anladığım a ve b'nin bellkete iki ayrı koltuğu var, ve a 1,2,3 nolu kuzuların bulunduğu bir ovaya bakıyor. a = b dediğimiz zaman aslında b koltuğundan a koltuğuna bak demiyoruz sende a'nın baktığı ovaya bak diyoruz. Dolayısıyla b ovadaki kuzulardan birini kaybettiğinde a bundan hemen haberdar oluyor.

Diğer durumda ise yani şu yapısal değşiklik durumunda aslında biz b koltuğuna direk müdahale ediyoruz. Dolayısyla a bundan etkilenmiyor. Biraz atmasyon oldu ama dilimler karışık ben onu anladım :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Merhaba Zafer,
Projem başarılı sonuçlar üretiyor üretmesine de tamamen fonksiyonel programlama halinde. Bunun başlıca nedeni elimdeki bilgisayarların kapasitelerinin yetersiz oluşuydu.
Örneğin; bir dosyada yaklaşık 6000 elemanı olan iki boyutlu dizilerim var. Program eş zamanlı olarak bu dizilerin (1000 adet 6 elemanlı dizi diye düşünelim) her bir elemanı için belrli işlemleri yaparak ikinci adımda çalışacak olan bir üretece (ki bu üreteç 17 milyon adet 6 elemanlı dizi oluşturuyor) veri yapısının analizi yapılmış ve uygun değer olarak işaretlenmiş biçimde olup olmadığını denetleyecek. Eldeki olanaksızlıklardan dolayı otomatik yapılmasıgeeken işlemlerin çoğunu elle hazırlayarak sisteme veriyordum. Program bu haliyle bile 56 dakikalk çalışma zamanına ihtiyaç duyuyordu.
Hem bu işlemleri otomatikleştirmek, hem de çalışma zamanından tasarruf edebilmek için xeon işlemcili (6 çekirdek 24 gb) bir makine satın aldım.
Bu noktada ifade emem gereken Projem için D'yi seçmem oldukça isabetli bir karar olmuş. milyar kere mlyar kere milyar kere milyar adet işlemler dizisini binlerce satır koduyla daha f9'a basar basmaz derleyebilen bir program dili ne gördüm ne işittim. D bunu yaptığı gibi, bunca işin üstesinden kolaylıkla gelebiliyor. Hem tasarım, hem işleyiş açısından bana sağladığı olanakları burada anlatamam.

Dizilerle çalışıyorum. O yüzden dizilerle ilgili yanlış yere konmuş bir virgül bile beni çok ilgilendiyor.
Aman Zafer, değer türleri ile referans türleri arasındaki farka mumkun oldugunca hakim olmaya çalışalım. Dilin en önemli ayrıntısı abana göre burada bulunmakta. Dün Ali hocamın eklediği derslerin her birinin çıktısını alıp çalışmaya başladım.

Dizilere iki gözle bakmakta fayda var. Bu bir statik dizi mi? yani elemanlarıderleme anında biliniyor mu?
Yoksa bu bir dinamk dizi mi Yani dilim mi? elemanları çlışm zamanında mı belirginleşiyor? Gibi. Karışıkmış gibi görünüyor ama içine girdikçe karışık değil yararlı olanaklar oldukları çıkıyor ortaya

Öğrencilik güzel şey.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Alıntı (mert):

>

Projem başarılı sonuçlar üretiyor ...

Projenin belli bir başarıyı yakalamış olmasına sevindim. Diğer taraftan proje ile ilgili müthiş bir merak içinde olduğumuda eklemek isterim.

Alıntı:

>

Bu noktada ifade emem gereken Projem için D'yi seçmem oldukça isabetli bir karar olmuş. milyar kere mlyar kere milyar kere milyar adet işlemler dizisini binlerce satır koduyla daha f9'a basar basmaz derleyebilen bir program dili ne gördüm ne işittim. D bunu yaptığı gibi, bunca işin üstesinden kolaylıkla gelebiliyor. Hem tasarım, hem işleyiş açısından bana sağladığı olanakları burada anlatamam.

Bu tecrübelerini bizimle daha detaylı paylaşmanı arzu ederim Mert, bunlar çok güzel tecrübeler ve D dili ile yaşanmış bir deneyimin ürünü oldukları için çok değerliler.

Alıntı:

>

Aman Zafer, değer türleri ile referans türleri arasındaki farka mumkun oldugunca hakim olmaya çalışalım.

Kesinlikle haklısın Mert, hatta sadece bu konu değil diğer tüm olanaklara tam anlamıyla hakim olmak önemli bir konu.

Alıntı:

>

Öğrencilik güzel şey.

Öğrencilik güzel tabi ve ben daha güzelinin öğrendiklerini yeni öğrencilere aktarabilmek olduğunu düşünüyorum.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Yeniden merhaba Zafer,

Projem evrensel tasarımlarla ilgili. Model olarak da büyük sayılar yasası ve olasılık, istatistik bilimleriyle iç içe. Bir felsefi tartışmada 'evrende varlık aslında dahabaşlamadan bitmiştir yani yaşanmakta olanlar çoktan yaşanmış, olması gerekenler olmuş ve de bitmiştir' gibi bir önerme var. Bu tür konularda her zaman olduğu gibi iki taraf var, biri 'hayır efendim ne münasebet olur mu öyle şey yaşamı hiçe saymaktır bu' derken diğer taraf, 'yaşamın tamamen bir yansıma' olduğunu söylemekte.

Garip olan benim elde ettiğim veriler de iknici tarafın savunduklarını kanıtlar nitelikte.

Örneğin elimizde bir kase dolusu aynı özgül ağırlıkta, birbirinin aynı olan bir kase dolusu para olsun. (para örneğini özellikle veriyorum ki iki belirteci yazı ve tura ile veri elde edebilelim) biz bu kaseyi her defasında aynı yön ve aynı hızla(kuvvetler aynı) defalarca karıştırıp paraların geldiği yazı tura konumlarını incelersek, ilk karıştırmamızda paraların bir kısmının yazı, diğerlerinin tura olduğunu görürüz. Şimdi bu noktada yazı gelen paralar işaretleyip karıştırma işlemine devam ederek hangi paraların yazı hangilerinin tura olduklarını inceleme devam edebiliriz. İlk 300 -350 karıştırma boyunca sayımlarımızdan elde edeceğimiz sonuçlar oldukça karmaşık olacaktır. Ancak bu karmaşık değil kaotik bir yapıdır ve yine göreceğimiz gibi işaretlemiş olduğumuz yazı gelen paralaran birkaçı sürekli yazı gelmekte tura gelenlerin de bir kaçı sürekli tura gelmekte. ancak diğerleri %50 oranına yazı aynı oranda tura gelmekteler. deneyimizi üç haneli rakamlara doğru ilerlettikçe bu yazı-tura gelme durumunun değişmez bir sıralamayı takip ettiğini görürüz. Bu doğrultuda gözlemlediğimiz yazı tura gelme durumu düzenine bakarak sonraki adımlarda hangi paraların yazı, hangilerinin tura gelebileceğini az bir yanılma payıyla bulabiliriz. İşin sırrı şurada, deney adımları arttıkça kesinlik artıyor daha net sonuçlara ulaşabiliyoruz. Bin defa tekrarlanan düzen ile üç yüz bin defa tekrarlanan düzen arasında ciddi döngüsel farklar olabiliyor.

projem aslında bu tür incelemelerle yani rasgelelik kavramıyla ilgili deneysel bir çalışma. Bunu da bir hikayenin altyapısı olarak inceliyorum ki hikayeyi doğru ve samimi biçimde anlatabileyim, vs vs.

Evet örnekler sunacağım, ancak bu çalışmada kullandığım analiz teknikleri özgün olduklarından tekniğin kendisini açıklamak ve ne işe yaradığını anlatmak uzun bir süreç. Bunun yerine daha basit yaklaşımla işi yapabilen kod parçalarını yalın örneklerle açıklamayı başarabildikçe paylaşacağımı belrtmek isterim.

Böylece aldığımız gibi verdiğimiz bilginin de faydasını görebiliriz diyeyim.
Kelimematik ne durumda peki?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 04, 2012

Alıntı (zafer):

>

Diziler (yada dilim) metotlara referans olarak geçiriliyorlar diye biliyordum.

Bundan ben de sorumluyum çünkü o sözü bir çok kere tekrarladım.

Dilim denen şey kendisi zaten eleman referansı. Bir dilim değişkeni kopyalandığında aynı elemanlara erişim sağlayan (veya o elemanların referansı olan) iki farklı dilim oluyor.

Dilimin birisinde uzunluğunu değiştirmek veya eleman eklemek gibi yapısal değişiklik yapmak diğerini etkilemiyor:

void main()
{
   int[] a = [ 1, 2, 3 ];
   int[] b = a;

   b[0] = 42;
   // a'nın elemanı da değişti çünkü dilimler eleman referansıdırlar
   assert(a[0] == 42);

   --b.length;
   // a değişmedi çünkü iki dilim farklıdırlar
   assert(a.length == 3);
}

İşleve gönderince de yukarıdaki a ve b gibi iki farklı dilim oluşuyor ama bu dilimler aynı elemanlara erişim sağlıyorlar. (Not: Eleman eklemek bu paylaşımlı erişimi sonlandırıyordu ama o ayrı konu.)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Alıntı (zafer):

>

Şimdi benim anladığım a ve b'nin bellkete iki ayrı koltuğu var, ve a 1,2,3 nolu kuzuların bulunduğu bir ovaya bakıyor. a = b dediğimiz zaman aslında b koltuğundan a koltuğuna bak demiyoruz sende a'nın baktığı ovaya bak diyoruz.

O çok güzel bir benzetme olmuş. Evet, a ve b aynı ovaya bakıyorlar ama birbirlerinden haberleri yok. O ikinci bölüm çok önemli: birbirlerinden haberli değiller.

Alıntı:

>

Dolayısıyla b ovadaki kuzulardan birini kaybettiğinde a bundan hemen haberdar oluyor.

O doğru olmadı. Göstediğim kodda da b'nin uzunluğu azaldığı halde a'nınki 3 olmaya devam etti.

Öte yandan, birisi beyaz kuzulardan birisinin yerine kara kuzu yerleştirse diğeri de bunu hemen görüyor. O da b'nin 42 yaptığı elemanı a'nın da 42 olarak görmesinden anlaşılıyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 05, 2012

Merhaba Mert,

İnsanı düşündüren derin ve farklı konular üzerinde çalışıyorsun anladığım kadarıyla, bunlar gerçekten hoş, tabi bir forum sayfasında böyle bir konuyu münazara etmemiz çok kolay olmaz. Umarım ileride bir sohbette bu konuları senden daha detaylı dinleme imkanı yakalarım.

Alıntı:

>

... Bunun yerine daha basit yaklaşımla işi yapabilen kod parçalarını yalın örneklerle açıklamayı başarabildikçe paylaşacağımı belrtmek isterim ...

Bu paylaşımları sabırsızlıkla bekliyor olacağım. Eminim çok faydalı olacaklar.

Alıntı:

>

Kelimematik ne durumda peki?

Aslında çok iyi demek isterdim ama sanırım ben senin kadar çalışkan değilim :( Aslında Ali'ninde büyük desteği ile KelimeMatik programına GtkD ile görsel bir arayüz hazırladık ve beta seviyesine kadar getirdik. Kullanıcı ekleme ve seçim ekranı ekledik, egzersiz mekanizmasını görsel arayüze taşıdık ama bir gün çalıştığım platfom Debian cevap vermedi. Bende bir süreliğine projeyi askıya aldım.

Bu vesile ile projeyi yeniden gözden geçirme imkanı buldum ve gördüm ki ben D olanaklarını tecrübe etmek için zamanımın %20'sini harcarken GtkD için zamanın %80'ini kullanıyorum. Oysa benim bu proje ile asıl amacım D olanaklarını tecrübe etmekti. Neyse bir süre iki arada gidip geldim ve geçenlerde KelimeMatik projesini sadece konsol arayüzü ve mümkün olduğunca D olanakları ile devam ettirmeye (yada yeniden başlatmaya) karar verdim.

Bu süreçte amaç deneyim ve öğrenme olunca veri saklamak için kullandığım xml sistemi yerine bir süredir ismini duyduğum json veri yapısını denemeye karar verdim. Son bir kaç gündür de json işlemleri ile boğuşuyoruz :) Durumlar böyle yani.

Alıntı:

>

Öte yandan, birisi beyaz kuzulardan birisinin yerine kara kuzu yerleştirse diğeri de bunu hemen görüyor. O da b'nin 42 yaptığı elemanı a'nın da 42 olarak görmesinden anlaşılıyor.

Teşekkürler Ali, olay anlaşıldı ama sanırım kavramak zaman istiyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

« First   ‹ Prev
1 2