Thread overview
D.ershane Diziler
Mar 30, 2011
erdem
Mar 30, 2011
erdem
Mar 30, 2011
erdem
March 30, 2011
   double [5] sayılar;
   assert (sayılar[1] !is double.nan);

Aslında bu kod parçacığında eğer dizi elemanları tanımlandığı zaman 'double.nan' değeri alıyorsa yukarıdaki assert ifadesinin de 'is' olmasını beklemezmiyiz.

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

March 30, 2011

İngilizce yazma özürlü olduğum için benim açmadığım çok iyi olmuş :)

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

March 31, 2011

Alıntı (acehreli):

>

Bakıyorum:

http://digitalmars.com/d/2.0/expression.html

Orada "Equality Expressions" altında:

Alıntı:

>

If either or both operands are NAN, then both the == returns false and != returns true. (Cümle bozukluğu var: "both the" olmamalı.)

Yani "Eğer değerlerden birisi veya ikisi NAN ise; == false döndürür, != true döndürür."

Aslında sol taraftaki açıklamalara bakınca :

'nan:' [nan], "not a number"

**'.nan '**bir değerin sayılarla karşılaştırılamaması mantıklı görünüyor. Demek ki kısaltmaların açılımını okumak gerekiyormuş :)

Alıntı (acehreli):

>

Senin !is kullandığının farkındayım ama aynı yerde "Identity Expressions" başlığında söylendiği gibi; sınıf, yapı veya dizi olmayan türler için "identity is defined as being the same as equality" diyor: "kimlik, eşitlikle aynıdır".

Standartta bu şekilde tanımlandığını anlıyorum. Ama bence yaptıkları kulağını ters eliyle tutmak gibi bir şey olmuş :-)

Alıntı (acehreli):

>

Peki o zaman bir double'ın ilk değerinden bu yana değerinin değişip değişmediğini anlayamayacak mıyız?

İşte benim de aklıma takılan asıl soru buydu. Bahsettiğiniz 'isnan()' sanırım tam da bu işi yapıyor.

Açıklamalar için teşekkürler!

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

March 30, 2011

Derleyici hatası...

Aslında sen bulduğun için hata raporunu senin açman daha doğru olurdu ama zaman kazanmak için ben şunu açtım:

http://d.puremagic.com/issues/show_bug.cgi?id=5800

Ali

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

March 30, 2011

Ben de biraz erken davranmışım. Oraya yapılan bir yorum, .NAN'ın eşitlik karşılaştırmalarında kullanılmasının doğru olmadığını hatırlatıyor. Bakıyorum:

http://digitalmars.com/d/2.0/expression.html

Orada "Equality Expressions" altında:

Alıntı:

>

If either or both operands are NAN, then both the == returns false and != returns true. (Cümle bozukluğu var: "both the" olmamalı.)

Yani "Eğer değerlerden birisi veya ikisi NAN ise; == false döndürür, != true döndürür."

Senin !is kullandığının farkındayım ama aynı yerde "Identity Expressions" başlığında söylendiği gibi; sınıf, yapı veya dizi olmayan türler için "identity is defined as being the same as equality" diyor: "kimlik, eşitlikle aynıdır".

O zaman haklılar: double.NAN'ı böyle bir eşitlikte kullanınca garip sonucu kabul etmeliyiz. Peki o zaman bir double'ın ilk değerinden bu yana değerinin değişip değişmediğini anlayamayacak mıyız? Herhalde .NAN yerine kendimiz başka özel bir değer kullanmalıyız.

Ali

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

March 30, 2011

Bunu benim bilmem gerekiyormuş! :)

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

Orada "Problemler"den hemen önceki tabloda "En Az Birisi .nan ise" diye bir sütun var ama açık olmadığını kabul ediyorum. :-/

Ali

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

March 30, 2011

Az önce birden bire aklıma geldi: zaten bu yüzden 'isnan()' var ve daha önce benim de başıma gelmiş:

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

import std.math;

void main()
{
   double [5] sayılar;
   assert (isnan(sayılar[1]));
}

Oh! Rahatladım... :)

Ali

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