Değişken Dizileri ile Kavram Öğretelim

CEYD dilinde dizi tanımı aşağıdaki format kullanılarak yapılabilir.

{!SET dizi[deger]=deger2!}

Bir örnek gerekirse:

{!SET baba[mehmet]=ahmet!}{!SET baba[ahmet]=mustafa!}

gibi bir tanımda mehmetin babasının ahmet olduğunu, ahmetin babasının ise mustafa olduğunu belirtmek mümkün.

Şimdi büyükbaba kavramını CEYD-A ya öğretelim. Yeni komut olarak aşağıdakileri tanımlayalım

KOMUT 1
SORU ŞABLONU: (.*)(in|ın|un|ün) büyükbabası kimdir.*
SORU KELİMELERİ: büyükbabası kimdir,15|
CEVAP: $1 kişisinin büyükbabası {!GET baba[{!GET baba[$1]!}]!}dır.

Eğer kişilerin babalarını tanımlarsak CEYD-A ya mehmetin büyükbabası kimdir dediğimizde mustafa cevabını verebilecektir.

Şimdi baba tanımlarını yapan komutu hazırlayalım:

KOMUT 2
SORU ŞABLONU: (.*)(in|ın|un|ün) babası (.*)(dir|dır|dur|dür|tir).*
SORU KELİMELERİ: babası,2|
CEVAP: {!SET baba[$1]=$3!} $3 ile $1 arasında baba ilişkisini oluşturdum|

Bu iki komutu tanımladıktan sonra CEYD-A yı tekrar açtığımızda

Sinemin babası Sezgindir
Sezginin babası Sinandır
Sinemin büyükbabası kimdir
dediğimizde bize

Sinemin büyükbabası Sinandır
diyecektir.

Sizin isminiz Mehmet diyelim. Babanızın ismi de Ahmet.

Mehmetin babası Ahmettir
diyelim. Bu şekilde sizin babanızın ismini de öğretmiş olduk. Yazının sonunda bu özelliği ilginç bir şekilde kullanacağız.

Şimdi. baba kavramını söylemesini de öğretelim:

KOMUT 3
SORU ŞABLONU: (.*)(in|ın|un|ün) babası kimdir.*
SORU KELİMELERİ: babası kimdir,15|
CEVAP: $1 kişisinin babası {!GET baba[$1]!}dir|

CEYD-A yı tekrar açtığımızda

Sinemin babası kimdir
dediğimizde bize:

Sinem kişisinin babası Sezgindir
diyecektir.

Buraya kadar yararlı bir kavram öğretim olmasına rağmen son olarak daha ilgi çekici bir komut oluşturalım.

KOMUT 4
SORU KELİMELERİ: babamı ara,15
İŞLEM: {!GET baba[$SAHİBİNADI]!} ARA

komutunu oluşturduğumuzda artık:

babamı ara dediğinizde telefon rehberinde babanızın kendi ismiyle kaydedildiğini varsayarsak, babanızı telefonla arayacaktır.

 

 

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.