şükela:  tümü | bugün
  • degisken, sabit deger, parametre, fonksiyon donus degeri gibi bir dil ogesinin tipini kod icindeki kullanimindan cikarma teknigidir. bunu ocaml ve haliyle f# dibine kadar hayvanlar gibi yapar.

    variant veya dynamic type'lardan farki bu tip derleme esnasinda belirlenir sonra da degistirilemez.

    f#'tan ornek verecek olursak:

    let x = 3

    size "int" donduren bir fonksiyon (aslinda bu haliyle fonksiyon degil value binding oluyor, yani const int x = 3 gibi) tanimlarken

    let x = 3.0

    size "float" donduren bir fonksiyon tanimlar. bu kadar basit degil tabi mesela

    let a = 2.0
    let x = (a + b) / c + 3

    dediginizde f# derleyicisi a'ya bakar a float dondurdugunu gorunce x'in de float dondurmesine karar verir.

    c# da 3.0 surumunden itibaren bunu var keyword'uyle sadece degisken tanimlarinda olsa da saglayabilmekte hayatimizi kolaylastirabilmektedir.
  • scala'nin canavar gibi yaptigi bir mevzu. programming languages and semantics alaninda yapilan arastirmalarin gunluk yasama yansimis guzel bir urunudur. bu trendi typescript de takip etti, cok da guzel oldu.
  • ben bu işi çözemedim arkadaş, bu işin kralını 20 yıldır yapan php yi loose typed olduğu için gömenler, biz strict typed diller kullanıyoruz paşam diye atarlananlar nerede şimdi?
    c# , scala vs. ne yaparsa doğrusu o mudur yani. herşeyi objelere boğmaktan da vazgeçerlerlerse şaşırmamak lazım.

    neyse ben şu ara dart takılıyorum, onda böyle tercihe bırakılmış durumda ki bence zaten sorun yoktu. yazılımcı kendi seçsin duruma göre istediği şekilde kullansın, derleyici düşünsün mq herşeyi bizden beklemesin yani.

    dartta herşey obje , php deki gibi multidimentional mixed array olsa derdim kalmayacak gereksiz yere obje tanımlamaktan helak oldum.
    hayır objenin propertylerini listelemek için bile reflection dı mirror dı taklalar atmak çok mu mantıklı, ben mi tembelim bilemedim.