Jump to page: 1 2
Thread overview
Python fonksiyon zincirlemesine biraz eleştiri
Jun 06, 2020
kerdemdemir
Jun 06, 2020
fugur
Jun 07, 2020
kerdemdemir
Jun 07, 2020
cos00kun
Jun 07, 2020
kerdemdemir
Jun 08, 2020
cos00kun
Jun 08, 2020
kerdemdemir
Jun 09, 2020
cos00kun
Jun 09, 2020
kerdemdemir
Jun 10, 2020
kerdemdemir
June 06, 2020

Hep D'yi eleştiriyormuş gibi oluyordum birazda Python'a laf atayım dedim.

Benim D'de çalışan alış-veriş botum çalışmayınca datamı diske yazıp Python'da okumaya karar verdim. Böylece scikit veya tensor flow'u kullanıp makine öğrenmesi yöntemlerini deneyeceğim.

Neyse şu anda şöyle bir şeye ihtiyacım oldu:

Diyelimki bir liste var a = [1,2,3,4,5] ben bunu [1,2,3],[2,3,4],[3,4,5] 'e cevirmek istiyorum.
D'de bu iş şu kadar kolay. a.slide(3); diyelim ki sonra sadece tekil sayı ile bitenleri almak isiyorum.
D'de bu iş yine çok kolay a.slide(3).filter!(a => isOdd(a.back());

Kafamdan yazdığım için kodlar biraz yanlış olabilir.

Şimdi gelelim python'a ben slide fonksiyonu bulamadım onu için

map(lambda x: a[x:x+3],range(3) ) yapmak zorunda kaldım.

Dahada kötüsü pyhton'ın "zincirleri" çok kötü bence. Böyle D'deki gibi tren gibi eklenmiyorum. Bu sonu tekil sayıları pyhton'da yapınca çok çirkin oluyor.

Örneğin :

arbitrary_numbers = map(lambda num: num ** 3, filter(lambda num: num % 3 == 0, range(1, 21)))

Böyle iç içe giriyor map,filter komutları hiç güzel gözük müyor bence.

Öyle bir yazıyım dedim belki ben pyhton'ı yanlış kullanıyorumdur.

Erdem

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

June 06, 2020

Tren gibi eklemek aslında bir önce çağırılan işlevin işlem yaptığı nesnenin referansını döndürebilmenin ortaya çıkardığı bir etki değil mi? Yabancıların (bize yabancılar) "syntactic sugar" dediği şey.

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

June 06, 2020

Ben de Pyton'u senin yazdığından daha fazla bilmiyorum. Ama D'nin zincirleme işlemleri gerçekten çok kullanışlı.

Ali

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

June 06, 2020

Evet, D'deki de syntactic sugar ama UFCS'e (universal function call syntax) bağlı bir durum. Çoğunlukla aralık algoritmalarıyla kullanılıyor.

Örneğin, filter, kendisine verilen aralık üzerinde süzme işlemi gerçekleştirecek olan bir nesne döndürüyor. Yani kendisi süzle işlemini hemen yapmıyor; dolayısıyla "tembel" (lazy). Aynı biçimde, map, kendisine verilen aralığın elemanlarına uygulanacak olan işlemi barındıran bir nesne döndürüyor. Bu nesne de işlemi hemen uygulamıyor; yani bu da tembel.

import std.stdio;
import std.algorithm;
import std.range;

void main(string[] args) {
 writeln("Baş harfi 'a' olan parametrelerin uzunlukları:",
         args
         .filter!(a => a.front == 'a')
         .map!walkLength);
}

Programı şöyle işletiyorum:
'
$ ./deneme ankara bursa aydın
Baş harfi 'a' olan parametrelerin uzunlukları:[6, 5]
'
Yani, "ankara" için 6 ve "aydın" için 5...

(Not: 'map!walkLength' yerine 'map!(a => a.length))' kullanmak yanlış olurdu çünkü o zaman UTF-8 kodlarının sayısını döndürürdüğünde örneğin "aydın" için 5 yerine 6 olurdu.)

Bu yöntemin bir güzelliği, elemanların teker teker işlenmeleridir.

Diğer güzellik bu işlevleri kendimiz de kolaylıkla yazabiliyoruz. Burada tekrar örnek bulmaya gerek yok. Umarım şu bölüm yararlıdır: :)

http://ddili.org/ders/d/ufcs.html#ix_ufcs.UFCS

En sonunda başka bölümlere bağlantılar da var.

Ali

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

June 07, 2020

Alıntı:

>

Tren gibi eklemek aslında bir önce çağırılan işlevin işlem yaptığı nesnenin referansını döndürebilmenin ortaya çıkardığı bir etki değil mi? Yabancıların (bize yabancılar) "syntactic sugar" dediği şey.

Tembel çalışma olayı olmasa bile benim çok işime yarıyor düzenli gözükmesi. D dilinin kurucusu Walter Britght'da diyordu D konferanslarından birisinde iyi performans için en önemli şeylerden biri okunabilirlik diye ben katılıyorum.

Birde bu "syntactic sugar"(kusura bakmayın ben Türkçesini bilmiyorum :blush: ) dediğimiz şeyler büyüyüp bambaşka bir noktaya gelebiliyor. Örneğin auto dönüş değeri olan fonksiyonlar. İlk başta tamamen "syntactic sugar" gibi gözüksede bir bakmışız voldermort types dediğimiz bir dünya açıyor karşımıza(https://www.digitalmars.com/articles/b79.html). Ve C++ lambda'larda bunun gibi olabilir sadece functorların kısaltılmış hali gibi gözüksede fonksiyonel programlamanın öncüsü hale gelebiliyor.

Bu tren gibi eklenmekde bu iki örnek gibi bence. C++ 'da biraz D'den gördükten sonra Range kütüphanesini standartlaştırdı

Erdem

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

June 07, 2020

Erdem Anladığım kadarıyla konu Pyton olsa bile D yi sizde kullanıyorsunuz ve seviyorsunuz :-)
ben daha konuların başında sayılırım ama D gerçekten olanaklarıyla çok iyi görünüyor. Pyton dilini geçenlerde nedir ne değildir diye biraz araştırmıştım. Kafaya oynar bir dile olmuş kendi alanında. Bir gün bu diller arasında boğulacağız :-D

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

June 08, 2020

Ya ben assembly , C sonra C++ ekolunden geldigim icin bu Java, Python bana bazen o kadar acayip geliyor ki. Ama D'yi genelde yabancilamiyorum. Hatta tam tersi sekilde D'de bir seyleri gondukten sonra C++ yabanciladigim daha sik oluyor.

Ama artik is ilanlarina baktigimda Python genelde karsima cikiyor. Bu sebeple iyice ogrenmek istiyorum aslinda. Birde makine ogrenme konusunda pyhton'un scikit ve tensorflow kutuphaneleri basta olmak uzere cok kitap var. D makine ogrenme konusunda ne yazik ki bir ortam gelistirebilmis degil.

Ben yakin zamanda SVM(Support Vector Machine) algoritmasini yazmayi dusunuyorum D icin cunku baya kitap okudum bu algoritma hakkinda son zamanlarda umarim dedigimi yapabilirim.

Ben kendi kisisel bakis acimdan sunu soyleyebilirim: Pyhton bana Java'dan bir cok acidan daha iyi secimler yapmis gibi geldi. Ama cogu ihtimalle birazda C muhafazakarligimdan dolayi D ve C++ gonlumun birincileri.

Erdem

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

June 08, 2020

Erdem kardeşim ben programcı değilim ve bu işi hobi olarak, ordan burdan, boş vakitlerde, senelerce çok ileriye gitmeden belli boyutlarda öğrenen biriyim. Sadece şöyle bir geçmişim var seneler önce üniversitede yani 1990 lı yıllarda basic öğrendim sonra ne hikmetse sanki mükemml bir programlama biliyormuş gibi birkaç arkadaşı tanımamla birlikte Assambly diline heves ettim. işlemci mimarisi, hafıza, ram ve jmp ler arasında öyle birkaç yıl hobi olarak tersine mühendislik mantığını anlamak için çok çalışmalar yaptım ve bayağı bi yol aldım zamanında.

Nedense sonraları C++ ile tanıştım ve basic seviyesinde bu dili kullanmaya başladım sadece hobi olarak.. Çok gariptir ki jmp'lerle zıplayıp registerlar arasında dolaşmak bana daha basit geliyor hala.. Ama D birçok insanın aksine C++ den biraz daha zor geldi her ne kadar olanakları daha bol ve çözümleri daha çok olsa da. Sanırım temelin oturmasıyla ilgili bir durum bu. Bazan D dilinde çok basit bir konuyu anlamakta güçlük çekerken bazen daha zor konularda çok rahat kavrayabiliyorum.

Ne gariptir ki D dilinin bir çekiciliği var ve ben bunun farkındayım ama her zaman söylediğim gibi bunca olanak sadece doğru pazarlama(Dilin kendisini göstermesi ile ilgili) yapılamadığı için belkide tarihin tozlu sayfalarında D.. E.. F gibi diller arasında yerini alacak.. D Güçlü ve olanakları bol bir dil hem yapısal hem nesnesel programlamaya uygun.. Ama gel görki bir DSMFL kütüphanesini bile kurmakta takla atılıyor ve ilgilenen yok derecesi kadar az. Kızmıyorum.. Seviyorum.. ama üzülüyorum :-)

Muhabbet yerine çevirdim burayı ama bu da gerekiyor bazen.. ıssız adada yalnızız nasılsa :-) Isssız adaya 1 kişi daha gelirse okey'e dördüncü tamamdır :-p

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

June 09, 2020

Alıntı:

>

Muhabbet yerine çevirdim burayı ama bu da gerekiyor bazen.. ıssız adada yalnızız nasılsa :-) Isssız adaya 1 kişi daha gelirse okey'e dördüncü tamamdır :-p

Ben severim valla muhabbeti. Okey demisken DOkey imiz var 4'uncu yoksa :)

<
https://github.com/kerdemdemir/DOKEY/commits?author=kerdemdemir

>

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

June 09, 2020

Alıntı (kerdemdemir):

>

Ben severim valla muhabbeti. Okey demisken DOkey imiz var 4'uncu yoksa :)
<
https://github.com/kerdemdemir/DOKEY/commits?author=kerdemdemir

>

Ha Okey ha DOkey ;-)
Programı indirdim ancak 190.satırda hata veriyor sanırım 'this 'ile ilgili bir sıkıntı. (Windows ortamında derlemeye çalıştım)
Akşam evde mutlaka inceleyeceğim. Ayrıca madem 4. için gayret gösteriyoruz o halde king yada batak yaparız. :-D Ben biraz daha kendimi geliştireyim hele. King'e kafayı taktım. Üniversite yıllarından kaldı aklıma.. Bununla artık 6 ay uğraşırım. Ah birde şu DSFML kütüphanesini kurup çalıştırabileydim ..

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

« First   ‹ Prev
1 2