CEYD-A kurgularını, içinde kod parçacıkları olan hücreler olarak tanımlayabiliriz. Çoğu birbirleriyle etkileşim halinde olan yüz binlerce kurgu bulunmakta. Bu yazımızda komplike kurgu olarak nitelendirebileceğimiz örnekler sunacağız.
Kullanıcıların oluşturduğu kurgular onaylandıktan sonra tüm CEYD-A uygulamaları bu kurguları kendi bünyesine almaktadır. Onaylanmayan kurgular ise sadece kullanıcının uygulamasında devreye girecektir. Kurguları https://kodla.ceyd-a.com adresinden tanımlayabilirsiniz. Aşağıda örnekleri verilmiş kurgular, onaylanmış kurgulardır. Benzerlerine örnek olması adına bu yazımızda sunulmuştur.
Daha önceki yazılarımızda da belirtildiği gibi kurguları ister blok geliştirme ile ister CEYD kodu desteği ile oluşturmak mümkündür.
Öz yinelemeli (Recursive) kurgular
İç içe çağrılan kurgu, bir kurgunun içinde başka bir kurgunun çağrılabilmesidir. Öz yinelemeli kurgu ise kurgunun içinde aynı kurgunun tekrardan çağrılabilmesi başka değişle kendi kendini çağıran kurgu olabilmesidir. CEYD-A her iki çağırma yapısını desteklemektedir.
CEYD-A’ ya rakip uygulamalar, sahibi olduğu firmalarının kendi sunucuları üzerinde çalıştıklarından dolayı geliştiricilerin kaynak kullanımı istismarı riskini engelleyebilmek için bu yapıları desteklemeyebilir. Ancak CEYD-A yapısı geliştiricinin kendi cihazında çalıştığı için kontrol geliştiricinin insiyatifine bırakılmıştır. Bu şekilde düşünürsek CEYD-A’nın bu yapıları desteklemesi daha uygundur.
Örneğimizde ertesi gün sorusuna ait kurgu, eğer sorunun baş kısmında başka bir ertesi günü ifadesi içeriyorsa kendi kendini çağırmaktadır. Önce sorunun baş kısmı yeni bir kurgu gibi işlenmekte dönen değer kurgu içinde tekrar değerlendirilmektedir. Sorunun içinde ertesi gün ifadesi kalmayana kadar çağırma işlemi devam etmekte ve cmdnextday (TARİH) komutu çalıştırılarak kuyrukta bekleyen tüm ertesi gün kurguları peş peşe bu kurguyu çağırmaktadır.
CEYD-A, sonsuz bir döngü içinde bir kurgunun peş peşe çağrılmasına izin vermemek için bir limit tanımlamıştır. O limit geçilmedikçe bir soru içinde aynı ifadeleri arda arda sorup tek cümle içinde çok sayıda aynı kurguyu çağırabilmek mümkündür.
Bir diğer örnekte deprem verileri siteden satır satır alınmakta. Satır içindeki şiddet (magnitude), tarih bilgisi (datetime) ve yer (location) bilgileri tespit edilmekte ve magnitude değeri cmdshowquakes kurgusundaki parametreden daha fazla ise bu bilgiler gösterilmektedir. depremler kurgusu ise cmdshowquakes kurgusunu çağırmakta ve şablonda tespit edilen sayı değerini parametre olarak göndermektedir.
İstenilen alanları satırdan tespit eden regex ifadesi
Örnekleri denediğimizde aşağıdaki sonuçları CEYD-A uygulamasından almaktayız. Çok sayıda veri satırı olduğu için FOR döngüsü işlemi bekleme süresi sonrasında değerleri dönecektir. CEYD dili cihaz üzerinde çalıştığı için cihazın işlemci gücüne göre işlem süresi değişiklik göstermektedir.
Yazı hazırlandığı tarihte gündemde olan Elazığ depreminde hayatını kaybedenlere başsağlığı, yaralılara da acil şifalar dilerim.