Forum: Projeler Rhodeus Script RSS
Sentaks önerileri
Sayfa:  1  2  sonraki 
Avatar
zekeriyadurmus #1
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Sentaks önerileri
RhS nin 2.0 sürümü için sentaksta değişiklikler olsun diyorum.

Bunları listeleyecek olursak;

  • RhS taglarını (<| |>) kaldıralım. Template sistemi getirelim.
  • { } özel karakterlerini kaldıralım. Yerine basicdeki end i getirelim. Bu anlamda ruby çok hoş :)
  • Kitaplıklar için özel karakteri { yerine [ kullanalım. (D dilindeki gibi)

Bu değişiklikler hakkında ne diyorsunuz?

Eğer sizlerin de önerileri varsa yazabilir misiniz? Sentaksı mümkün olduğunca basitleştirmek hoş olur :)

Zekeriya
Bilgi meraktan gelir...
Avatar
Salih Dinçer #2
Üye Ock 2012 tarihinden beri · 1881 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Başka öneriler getirilebilir, dilerseniz bunu Ceviz Forum'a yavaş yavaş açalım. Sonuçta orada daha çok ses/cevap gelecektir...

Listelenen önerilerden biri dışında çoğuna itirazım yok. İlk maddede kullandığımız Pipe simgesinin bir telifi yoksa kullanma taraftarıyım. Malum bunu keşfeden ünlü bi amcaydı tam hatırlayamadım şimdi. Herhalde asterix (*)'i bulan amcayla aynı mıydı emin değilim..:)

Şimdi neden kullanalım diyorum bence çok hoş ve anlamlı. Bazı dillerde iki dizge(string) arasına giren başka bir değer (dizge üreten bir işlev veya sabit) konulurken veya uç uca eklenen dizgelerde bu işlem (concatenation) yapılır.

Peki biz, HTML kod regenerate olurken, yani istemciye ulaşmadan evvel kodlarımızın ürettiği sonucu oraya (araya) yerleştirmiyor muyuz?

Görüntüsü de çok hoş: <| .... |>

İşte bu...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
zekeriyadurmus #3
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Başka öneriler getirilebilir, dilerseniz bunu Ceviz Forum'a yavaş yavaş açalım. Sonuçta orada daha çok ses/cevap gelecektir...
Ceviz üyeliğim yok benim şu an :) Rica etsem siz açabilir misiniz?

Hocam aslında kaldırmayı bende pek istemiyorum ama php de template için smarty kullanılıyor. Biz de buna gerek kalmadan aynı .net teki gibi RhS kodları aydı dosyada html kodları ayrı dosyada olsa template sistemi için ek eklentiye gerek olmasa nasıl olur? Ya da tagları kaldırmayız template sistemine de imkan sağlarız olmaz mı? :)

Not:
<|
@template = "dosya.html";
|>
gibi bir kullanım sunarız

yada
<@RhS template = "dosya.html" @> böyle birşey olur :)

Zekeriya
Bilgi meraktan gelir...
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1881 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Smarty'i hatırlıyorum, bir dönem e-ticaret yazılımımızda kullanıldığı için öğrenmek zorunda kalmıştım. Ama aklımda hiç bir özelliği kalmamış. Sadece daha iyi çatılar olduğunu söyleyenleri hatırlıyorum...

Ancak şu var, PHP'nin temelinde bile bir şablonu eklemek istediğimizde oraya include(...) şeklinde sanki bir işlev gibi yazmamız yeterli değil miydi? Sanırım PHP'yi de unutmuşum...:)

Ceviz Forumu'na bu konuda yazacağım...
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: 2013-03-11, 13:02.
Avatar
zekeriyadurmus #5
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Salih hocam Ruby'i inceliyorum bu aralar ve hoşuma giden çok özelliği var bunlardan birisi de

class Numeric
  def topla(x)
    self.+(x)
  end
end
 
y = 5.topla 6
# y'nin değeri 11 oldu. 
Hatta burada def topla yerine def + - / ? gibi özel karakterler de kullanabiliyoruz :) mesela
nesne.boşmu?
şu anda türkçe karakter desteği var zaten RhS nin bunun gibi yazımı hoş kılan şeyleri de ekleyebiliriz ne dersiniz?

Hatta hocam şu adreste oldukça güzel özelliklerine değinilmiş :)

http://www.ruby-lang.org/tr/documentation/ruby-from-other-…

Zekeriya
Bilgi meraktan gelir...
Bu mesaj zekeriyadurmus tarafından değiştirildi; zaman: 2013-03-23, 00:20.
Avatar
zekeriyadurmus #6
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Fonksiyonlarda değişiklik;
Rust dilinde gördüğüm ve çok hoşuma giden Function kelimesinin kısaltılmış hali Fn ve Ruby dilinin return yazmadan son işlenen verinin fonksiyondan geri döndürülmesi özelliklerini ekledim.
Fn test(){
    "me"
}
print(test() + "tin")

Not: Sınavlardan vakit bulamıyorum pek, daha ilk sınavlarım bitmeden ikinciler başladı şimdi. Sanırım 2.0'ı yapmam biraz vakit alacak.

Zekeriya
Bilgi meraktan gelir...
Avatar
Salih Dinçer #7
Üye Ock 2012 tarihinden beri · 1881 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Sınavlar daha önemli, boş ver RhS'yi...:)

Sonuçta sınav kaçar ama kodlar durur yerinde. Bu arada bir ara Scala'ya bak. Özellikle foreach döngüsündeki pratikliğe. Belki hoşuna gidecek...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
zekeriyadurmus #8
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Sınavlar daha önemli, boş ver RhS'yi...
Haklısınız hocam ama kafam buraya takıldı mı başka bir şeye bakamıyorum maalesef :S
Bazı karşılaştığım sorunları çözdüm ve fonksiyon yapısını baştan yaparken aklıma şu soru takıldı.

Fonksiyon tanımlarken isteğe bağlı olarak tür kontrollerine de izin verelim mi?

Fn karekök((int) sayı){
  
}
karekök(20)//Başarılı
karekök("deneme")//Başarısız 

Fonksiyonlarla ilgili görüş ve düşüncelerinizi bekliyorum :)

Bu arada hocam Scala'yı inceliyorum çok hoşuma gitti ve bir şeyi fark ettim o kadar çok çeşit programlama dili var ki standartlardan çok kopuyoruz artık belki de ileride ortak evrensel bir programlama dili çıkar da herkes rahatlar.

Zekeriya
Bilgi meraktan gelir...
Avatar
Salih Dinçer #9
Üye Ock 2012 tarihinden beri · 1881 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
zekeriyadurmus:
Fonksiyon tanımlarken isteğe bağlı olarak tür kontrollerine de izin verelim mi?
Fn karekök((int) sayı){
  
}
karekök(20)//Başarılı
karekök("deneme")//Başarısız 
Fonksiyonlarla ilgili görüş ve düşüncelerinizi bekliyorum :)
Bence türler, sadece hız/verimlilik gibi sebeplerden dolayı yok. Güvenlik için de varlar...

Yani biz, sayısal bir türe alfasayısal (aslında bu örnekte aynı zamanda bir dizi) bir değişken gönderirsek doğal olarak hata almalıyız. Hata almadığımız durumlarda; eğer istemediğimiz bir sonuçla karşılaşırsak, biz bu sorunun nereden kaynaklandığını tam olarak bilemeyiz. Bu da zamanla dili bizden uzaklaştırır/bizi ondan soğutur.

O yüzden yasal olmayan bir eşitleme gerçekleştiğinde kesinlikle hata kodu döndürmesi gerekir diye düşünüyorum...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
huseyin #10
Üye Haz 2012 tarihinden beri · 355 mesaj · Konum: Isparta
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
bence değişken tipleri olmalı
Huseyin
Avatar
zekeriyadurmus #11
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #9
Salih hocam demek istediğinizi tam olarak anlayamadım ama 2.işlev çağırmada aşağıdaki gibi bir hata verecektir
'karekök' işlevi çağrılırken hata.
Sayı parametresi sadece int veri türünde veri kabul ediyor.
Tabi isterse kullanıcı şöyle bir şey yapar.
Fn karekök(sayı){
  if(sayı.typid != int)
//veya
  if(sayı.typid != 10.typid)
  fail!("sayı parametresi int veri türünde olmalıdır.")
 
}
Bu şekilde de yazabilecek.

Ayrıca değişken tanımlamalarında ! ve ? işaretlerini en sona koymak gibi bir imkan sunmayı düşünüyorum.
Mesela
veriVarMı?() gibi bir ifade soru sorduğu için sonuna soru işareti koymak çok hoş duruyor :)
ayrıca uyarı!("Yanlış yoldan gidiyorsun arkadaş") gibi de ! işaretini kullansak çok hoş olur diye düşündüm :)

Ve sanırsam fonksiyon tanımlama, çağırma aynı şekilde sınıf oluşturma, çağırma işlemleri 1.0 a göre oldukça hızlanacak.

Zekeriya
Bilgi meraktan gelir...
Avatar
Salih Dinçer #12
Üye Ock 2012 tarihinden beri · 1881 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Belki ben seni yanlış anlamışımdır...:)

Biz burada Java Script veya Matlab'de olduğu gibi değişkenin türünü belirtmeden kullanabilmekten (sanırım otomatik çıkarsama yapabilmesinden) mi bahsediyoruz? Eğer öyleyse duruma göre kullanım kolaylığı var tabii ki...

Bu arada ünlem ve soru işareti kullanımı hoş görünüyor. Ben de bazen kodlama yaparken o soru işaretini koymayı çok istiyorum. Ama uzun vadede ve çok geniş bir vizyon ile olaya bakmalıyız. Bu işaretlerin kullanımını yasal kılmak ileride başımızı ağrıtır mı? Malumunuz, soru işareti üçlü işleçte, ünlem ise değil (1 ise 0 algıla veya tersi) manasında kullanılmakta.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
zekeriyadurmus #13
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Biz burada Java Script veya Matlab'de olduğu gibi değişkenin türünü belirtmeden kullanabilmekten (sanırım otomatik çıkarsama yapabilmesinden) mi bahsediyoruz? Eğer öyleyse duruma göre kullanım kolaylığı var tabii ki...
Şimdi de ben anlayamadım :) Burada değişken türü tanımlama sadece fonksiyon çağırıldığında o türe uyup uymadığını kontrol ediyor ve uymuyorsa hata vermesini sağlıyor başka hiçbir işlevi yok :)
Fn x(){
  a = 10
  b = 5
  return if a == b true else false
// isterse şöyle yazar
  return if (a == b) true else false
}
Gibi bir kullanım olacak yani ? ile üçlü işleç olmayacak :)

Zekeriya
Bilgi meraktan gelir...
Avatar
Salih Dinçer #14
Üye Ock 2012 tarihinden beri · 1881 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
:)

Şöyle yapalım:

En son bahsettiğim iki konu var ve üçlü işleç diğerine ait. Yani ünlem ve soru işareti ile karışıp karışmaması ile alakalıydı...

İlk konu ise sanırım çok önemli değil. Kimse bir şey anlamadı...:)

Şimdi ise üçüncü bir konuya girelim...

İç içe sınıflar (nested class) imkanımız var mı, düşünüyor musun? Örneğin:
  class outer {
    inner sample;
    
    this() {
      this.sample = new inner();
    }
    class inner {
      static test = 2013;
    }
  }
  
  unittest {
    alias outer.inner.test test;
    assert(test == 2013);
    assert(typeid(int) == typeid(test));
  
    auto deneme = new outer();
         deneme.sample.test--;
 
    assert(test == 2012);
  }
Bu örneği az önce D'de denedim. Normalde burada bir programcının görmesi gereken sadece bir adet değişken var; hepsi bu. Çünkü statik bir üye var ve unittest dahil her şey bunun farklı bir yansıması. Aslında aynısı ve bir şey de öğrendim! Başına static ifadesi geldiği anda tür otomatik çıkarsanıyor. Bunu istersen "ikibinonüç" olarak eşitleyin. Derleyici bunu sizin yerinize inference yapıyor!

Bu benim ilk 'stress test'im olsun...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
zekeriyadurmus #15
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet buna imkan olacak Salih hocam. Bazen ihtiyacım oluyor benim de. RhS de de olması iyi olur :) Tabi 2.0 da yapabilirsem :)

Şimdilik takıldığım 1 nokta var.

Herhangi bir türün içerisindeki bir metoddan operand code işletimi yapılamıyor. Bu ne demek derseniz eğer.

//RhClassC sınıfı içerisindeki kod.
/*
class x ...
print(x())
yazıldığında toString metodu çağırılır ve burada x sınıfı içerisindeki toString işlevi çağırılır tabi buradaki kodlar opcode halinde RhS kodudur artık. Ve aşağıdaki metod üzerinden o opcode leri işletmek gerekecek.
*/
    override string toString(){
        return codes["toString"].call(parameters).toString();
    }

Anlatamadığımı biliyorum o yüzden bir cevap beklemiyorum :)
Ben biraz kafa dinleyeyim çok yoruldum bu gün. Aklıma elbet gelir bir şeyler :)
Çözersem eğer, çözüm yöntemimi anlatırım :)
Zekeriya
Bilgi meraktan gelir...
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:  1  2  sonraki 
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-05-27, 12:15:24 (UTC -07:00)