Forum: Duyurular RSS
Fuzuli Programlama Dili
Sayfa:  önceki  1  2  3  sonraki 
Avatar
Salih Dinçer #16
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 6949
Tekrar baktım da Hakan hoca bir cevap daha yazmış ve takıldığım diğer algoritmayı uyarlamış:

kodunu şöyle değiştirdim:
(function ASAL_MI(params p)
  (block
   (if (< p 2)
         (return 0)
   )
   (if (and (!= p 2) (= 0 (% p 2)))
         (return 0)
   )
   (for (let n 3) (<= (* n n) p) (let n (+ n 2))
         (if (= 0 (% p n ))
               (return 0)
         )
   )
   (return 1)
 )
)
 
(let a (: 2 10))
(let say 0)
(foreach i in a
    (if (= (ASAL_MI i) 1)
        (block
            (print i "\n")
            (++say)
        )
    )
)
(print "Toplam: " say "\n")
burada şu değişiklikler yapıldı:
1) function içindeki kodlar (block) içinde yazılmalı. yani fonksiyon gövdesi her zaman bir blocktur.
2) for döngüsünde (+ n 2) n'e iki ekler ama sonucu havaya atar. (let n (+ n 2)) demek lazım modifikasyon için.

kodun çıktısı şöyle:

2
3
5
7
Toplam: 4

buraya kadar her şey doğru görünüyor.

ancak yazdığın algoritma 605 'in de asal sayı olduğunu söylüyor. halbuki bu sayı 5 'e kalansız bölünür.

Mehmet Hakan Satman
http://www.mhsatman.com
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Kadir Can #17
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ben de şimdi gönderiyordum. :)
Malesef şu an için Fuzuli çok yavaş, ama ileride çok daha iyi olacağına eminim.
Blokların foreach için de kullanılması gerekli diye biliyorum, zira örnekte de öyle yapılmış. Bizim küme parantezli kapsamlarımız yerine geçiyor.
Bu arada konusu açılmışken söyleyeyim, Fuzuli'nin Türkçe çevirilerine başlandı ve gömülü(built-in) pakedi bitirildi.
Avatar
Salih Dinçer #18
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Meğer TinyCore dağıtımı içinde, QEMU'yu kullanarak Fuzuli uygulamaları geliştirebiliyormuşuz. Gerçi Windows harici her ortamda parçalama hatası alıyorum ama böyle bir olanağını olması güzel bir şey. Bir benzerini de D için yapmak istemiştim. Tabi benim dağıtımım bir CD'ye yakın olacaktı...:)

[Resim: http://desmond.imageshack.us/Himg708/scaled.php?server=708&filename=fuzuli.png&res=crop]
Büyüğü için üzerine tıklayınız...


Sistem görüntüsü (image) için tıklayın... (~ 64 MB.)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
jbytecode #19
Üye Tem 2012 tarihinden beri · 12 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 6948
Merhaba Salih,

foreach 'den sonra konulan block ifadesinin kafa karıştırması normal. Fuzuli 'de block ifadesinin kullanılmasının zorunlu olduğu tek yer fonksiyonlar. örneğin

(function myFunc (params a b)
   (block
      ..
      ..
      (return ...)
   )
)

for, while, foreach gibi ifadelerde kullanılmasına gerek yok. isteğe bağlı. ancak bir if ifadesinde eğer birden fazla iş yapılacaksa block zorunlu oluyor. Mesela aşağıdaki kod içinde block ifadesine gerek yok:

(if (= a 3)
   (print "eşit") 
)

Ancak koşulun doğru olması durumunda birden fazla iş yapılacaksa, block kullanılmalı. Mesela:

(if (= a 3)
   (block
      ....
      ....
   )
)

çünkü if iki farklı yapıda kullanılıyor. birinci if-then, ikincisi if-then-else. bu yapıların birbirine karışmaması için birden fazla satır için block kullanıldı.

Ayrıca bugün itibariyle Fuzuli 'nin artık toplama mekanizmasında büyük gelişmeler meydana geldi. Size verdiğim online interpreter üzerinden (henüz herkesin kullanımına açık değil) hızını test edebilirsiniz. Ayrıca artık toplama ile ilgili yazı (tabiki fuzulinin artık toplama mekanizması) http://stdioe.blogspot.com/2012/07/garbage-collection-mech… adresinde yer alıyor.

sevgiler.
Avatar
Salih Dinçer #20
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Açıklamalar için çok teşekkürler...

Şimdi taşlar, yerine daha çok oturuyor. En kısa zamanda yeni sürümü denemek için (özellikle Linux ortamında) can atıyorum. Sanırım Temmuz başı güncelleme yapılmıştı. Bu durumda bir kaç gün sonra (Ağustos'un üçü gibi?) bir güncelleme söz konusu olabilir mi?

jbytecode:
Ayrıca bugün itibariyle Fuzuli 'nin artık toplama mekanizmasında büyük gelişmeler meydana geldi. Size verdiğim online interpreter üzerinden (henüz herkesin kullanımına açık değil) hızını test edebilirsiniz. Ayrıca artık toplama ile ilgili yazı (tabiki fuzulinin artık toplama mekanizması) http://stdioe.blogspot.com/2012/07/garbage-collection-mech… adresinde yer alıyor.
Oooov, işte bu harika oldu! Özellikle GC'nin kapatılıp açılması çok hoş. Hocam bilgilendirme için de teşekkürler, hemen denemeliyim...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
jbytecode #21
Üye Tem 2012 tarihinden beri · 12 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Linux paketlerini idogan hazırlıyor. Artık ne zaman bu işe ayıracak vakti olursa o zaman çıkaracağız. Paketlerle ilgili gecikme yaşamamak için online interpreter 'ı kullanıma sunmayı düşünüyoruz. Online interpreter ile kodda bir değişiklik olduğu anda insanlara sunma imkanımız oluyor. Paketler ise daha stabil sürümler oluyor ve mutlaka bir gecikme içermek zorunda.
Avatar
Salih Dinçer #22
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Unutmuşum Hakan Hocam, aramıza hoş geldiniz... :blush:

Eminim D dili de ilginizi çekiyor olmalı? Hatta oradaki bir takım kabül gören olanakları Fuzuli'ye taşımak isteyebilirsiniz. Sizinle D dili hakkında da sohbet etmek isteriz.

Sevgiler, saygılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj Salih Dinçer tarafından değiştirildi; zaman: 2012-07-31, 05:44.
jbytecode #23
Üye Tem 2012 tarihinden beri · 12 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
hoş bulduk.

evet D dilini biraz inceledim. D dilinden kolaylıkla dinamik kütüphane çağırıldığını da gördüm. Aslında D dilinde yazılmış kütüphanelerin Fuzuli 'ye entegrasyonu üzerine çalışılabilir. Sanırım D derleyicisi object kod üretebiliyor. Eğer öyleyse D ve C object kodlar birlikte derlenebilir demektir. Bu da D 'de bir şekilde Fuzuli için kütüphane yazılabileceğini gösterir. Böylelikle harici olarak da D 'de yazdıklarınızı Fuzuli'ye bağlayabiliriz.
acehreli (Moderatör) #24
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Hoşgeldin jbytecode! :)

Evet, D object code üretiyor ama sanırım Windows ortamında ayrıntılarını hatırlayamadığım eski bir object code düzenini kullanıyormuş. Windows programcıları "bu devirde ne bu ilkellik" gibi şikayetlerde bulunuyorlar. :)

Ali
jbytecode #25
Üye Tem 2012 tarihinden beri · 12 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Merhabalar, hosbulduk!

D icin gnu compiler (gdc) yi denemistim. dmd yerine bu kullanildiginda sanirim linux icin uyumlu bir kod uretilir.
ancak gdc, dmd 'nin biraz gerisinden geliyor. yani d'nin 2 degil de 1.2 versiyonu implemente edilmis.

galiba Fuzuli icin paket yazmanin dogal yolu olan c++ 'ya devam etmeli.

ben programlama dillerini incelemekten keyif alirim. d dili de ilginc. ozellikle java yerine compile edilebilme ozelligi icin kullanolabilecek bir dil.

sicak karsilama icin tesekkurler.
erdem (Moderatör) #26
Üye Tem 2009 tarihinden beri · 978 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Merhaba, hoşgeldiniz :)
acehreli (Moderatör) #27
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #25
jbytecode:
D icin gnu compiler (gdc) yi denemistim. dmd yerine bu kullanildiginda sanirim linux icin uyumlu bir kod uretilir.

dmd de aynı: kaynak kod -c seçeneği ile derlendikten sonra oluşan .o dosyasını g++ satırına ekleyince de program oluşuyor. (Eskiden denemiştim.)

ancak gdc, dmd 'nin biraz gerisinden geliyor. yani d'nin 2 degil de 1.2 versiyonu implemente edilmis.

Ondan uzak durmak gerek. D1 bugünkü D'den çok geri kaldı ve ne yazık ki Linux dağıtımlarında çıkan gdc de o. gdc'nin 2.059'un karşılığı olanı da var ama henüz gcc'nin ana dağıtımının parçası değil.

Ben denemedim ama sanırım şu:

  http://freecode.com/projects/gdc/releases/344068

Ali
jbytecode #28
Üye Tem 2012 tarihinden beri · 12 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
az önce ubuntu 'nun resmi reposunda gdc-4.6 paketini gördüm ve açıklamasında "This compiler supports D language version 2." yazıyor. Bu sürümü test etmek isteyen arkadaşlar olabilir.

ben bir süre daha Fuzuli'yle meşgul olacağım sanırım :)
Avatar
Salih Dinçer #29
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Haber için teşekkürler...

Aslında bunu Duyurular bölümünde ayrı bir başlıkta paylaşmalı. Bilmiyorum Ali hocam ne diyecek? Eğer gerçekten denemediğimiz yeni bir şey ise bu konuda bir kaç deneme yapmak için her zaman ki sabırsızlanıyorum...:)

Ne güzel ya, bir tarafatan Fuzuli, diğer taraftan D'deki gelişmeler. İnsan geleceğe daha bir umutla bakıyor! Yoksa çok mu duygusal bakıyorum?

Sevgiler, saygılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
jbytecode #30
Üye Tem 2012 tarihinden beri · 12 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
arkadaşlar, Fuzuli için hazırladığımız online interpreter yayinlanmistir.

http://fuzuliproject.org/index.php?node=tryonline

ilginiz için teşekkürler.
Bu mesaj jbytecode tarafından değiştirildi; zaman: 2012-08-01, 12:56.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  önceki  1  2  3  sonraki 
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 09:34:23 (UTC -08:00)