Yer Bilgisini Kullanan Bir Komut Oluşturma
Geliştiriciler için yararlı olabilecek bu örnek ile parametre olarak kullanıcının belirttiği yer bilgisine ihtiyaç olan bir komut oluşturalım. Ayrıca, eğer parametre girilmemiş ise o anki yer bilgisini alıp parametre olarak kullanabilsin.
Örneğin HAVA KAÇTA KARARIYOR isminde bir komut oluşturalım. Sonuç olarak bize o an bulunduğumuz şehrin akşam namazı vaktini versin. Eğer bir şehir soruyorsak ise örneğin ANKARADA HAVA KAÇTA KARARIYOR, o zaman Ankara nın akşam namazı vaktini versin. Yani parametre olarak il bilgine ihtiyacımız var . Eğer ili söylemezsek o anki konumun şehrini bulup sorgulamalı.
Önce komut girişi ekranına girelim https://kodla.ceyd-a.com. Buradan kendi bilgilerimizle giriş yaptıktan sonra YENİ KOMUT oluşturalım.
Toplam 3 alanı dolduracağız SORU ŞABLONU, SORU KELİMELERİ ve CEVAP ALANI ve sonrasında Güncelle tuşuna basacağız.
Şimdi alanlara bakalım:
Parametreleri bildiğiniz gibi SORU ŞABLONU bölümüne çoğu geliştiricinin bileceği üzere Regex formatında giriyoruz.
(.*?)(de |da |te |ta |için )*hava kaçta kararıyor.*
Ankara için hava kaçta kararıyor, İstanbulda hava kaçta kararıyor, Samsun hava kaçta kararıyor, Rizede hava kaçta kararıyor gibi cümleler bu formata uyuyor ve buradaki şehir isimleri (.*?) ifadesi ile yani 1.grup parametresi ile örtüşüyor. O halde CEVAP alanımızda $1 parametresini kullanırsak bu yukarıdaki cümlelerdeki şehir ne ise cevaba o şehir yansıyacaktır.
SORU KELİMELERİ olarak
hava kaçta kararıyor,15
yazalım
CEVAP ALANINA ise
{!SET sehir={!IF $1== ?{!RET hangi şehirdeyim!}:$1!}!}{!RET {!GET sehir!} için akşam vakti!}
yazalım.
ÖRNEK İLE ANALİZ:
Şimdi kümeler içindeki ifadelerin ne anlama geldiğine örnek vererek kısaca bakalım. Ankarada hava kaçta kararıyor dediğimizi varsayalım. İçiçe kümelerde önce en alt kümenin işlendiğini biliyoruz. En alttaki küme
{!RET hangi şehirdeyim!}
bu ifade size bulunduğunuz şehri döner. Diyelim İstanbul’dasınız o zaman bu kümenin değeri İstanbul olacak ve CEVAP alanındaki ifade şu şekile derlenecek
{!SET sehir={!IF $1== ?İstanbul:$1!}!}{!RET {!GET sehir!} için akşam vakti!}
Dönüşen ifadenin yeni haline baktığımızda sonraki işlenecek küme ise IF alt kümesi:
{!IF $1== ?İstanbul:$1!}
Burada $1 parametresi boş olsaydı (YANİ Ankarada hava ne zaman kararıyor yerine şehir kullanmadan Hava ne zaman kararıyor deseydik) o an bulunduğumuz şehir yani İstanbul değeri dönecekti.
Ancak Ankarada hava kaçta kararıyor dediğimiz için $1 parametresi Ankara olacak ve bu kümenin değeri olarak Ankara dönecektir.
İfadenin yeni hali ise şu şekile dönüşüyor:
{!SET sehir=Ankara!}{!RET {!GET sehir!} için akşam vakti!}
Yorumlayıcı sistem bundan sonra {!SET sehir=Ankara!} yı işliyor. Bu da sehir değişkenine Ankara yı atıyor.
Tüm ifadenin yeni hali ise daha da basitleşiyor:
{!RET {!GET sehir!} için akşam vakti!}
Burada içte bir küme bulunmakta {!GET sehir!} .Sistem bu kümeyi işliyor. sehir değişkenindeki değeri yani Ankara yı dönüyor. İfadenin yeni hali:
{!RET Ankara için akşam vakti!}
Artık sadece yorumlanacak bir küme bulunmakta. Sistem Ankara için akşam vakti komutunu çağırıyor ve namaz vaktini dönüyor.
Artık CEYD-A ya hava kaçta kararıyor dediğimizde bulunduğunuz ilin akşam vaktini, eğer şehir ismini sorarak hava kaçta kararıyor dediğimizde o şehrin akşam vaktini söyleyecektir.
Not: Oluşturulan komutlar bir sonraki CEYD-A yı açtığınız zaman devreye girer.
evet sonunda genensy yani skynet termınatorler yaklastı