January 12

Merhaba,

Yanılmıyorsam (v2.087'den beri) çok uzun süredir bir if() içinde değişken tanımlıyor ve bunu sadece aynı kapsamda (else scope'unda değil) kullanabiliyorduk. D'de bunu (sanırım bazı dillerde de) while() içinde de yapabiliyorsunuz...

Ancak bunların tamamını göstermek ve kullanmak aşağıdaki koda kadar nasip olmadı. Yani demek ki çok ihtiyaç duyulmuyor hatta bazen kapsam dışında tanımlamak avantajlı olabiliyor. Ancak yine de güzel değil mi?

>

test
obeb.d

İlginizi çekerse diğer örneğe da burada değineceğim. Kod çıktısı sadece 'OBEB = 83'dür ve aslında yapı içermeyen hatta recursive olanları sürümlerini de mevctur. Burada Ortak Bölenlerin En Büyüğü'nü bulan açık ve net bir algoritma yapmak istedim. Bence mükemmel ve leziz!

SDB@79

January 14

On Friday, 12 January 2024 at 19:34:58 UTC, Salih Dincer wrote:

>

İlginizi çekerse diğer örneğe da burada değineceğim. Kod çıktısı sadece 'OBEB = 83'dür ve aslında yapı içermeyen hatta recursive olanları sürümlerini de mevctur.

Rosetta sayfasında öz yinelemeli bir örnek var.

import std.stdio, std.numeric;

long obeb(in long ilk, in long ikinci) pure nothrow @nogc
{
    if (ikinci == 0)
        return ilk;
    return obeb(ikinci, ilk % ikinci);
}

void main()
{
    obeb(15, 10).writeln;
    obeb(521483382396998375, 119929244861828206).writeln;
}

Erdem