Bağımlı olarak yazılan programlamada, verileri ayrıştırmanın ve özyineleme yapmanın iki ana yolu vardır:
- Bağımlı örüntü eşleme : fonksiyon tanımları birden fazla cümle olarak verilir. Birleştirme, atlanan tüm vakaların imkansız olmasını sağlar ve harici bir çözücü, özyinelemenin sağlam temelini sağlar.
- Eliminators : Her endüktif veri tipi , bir indüksiyon prensibi olarak ve tipi değerleri ayrıştıran tekrarlayan fonksiyon olarak ilişkili bir sabit sahiptir . Bunlar daha ayrıntılıdır, ancak toplam olma (tüm vakalar tarafından ) ve inşaat ile sona erme avantajına sahiptir .
Eliminatörün temelde matematiksel indüksiyon olduğu gibi ortak veri tipleri için eliminatörleri veya eliminatörün temelde bir kat olduğu gördüm .
Bağımlı örüntü eşleştirmesi üzerine birkaç makale okudum ve birçoğu veri tiplerinin tanımlanabileceği ve teori tarafından eliminatörlerin sağlandığı tip teorilerini ifade ediyor. Örneğin, Bağımlı Patern Eşleştirmesinin Ortadan Kaldırılması , UTT'nin eliminatörlere nasıl dayandığını ve patern eşleşmesinin aksiyom varlığında eliminasyona nasıl dönüştürülebileceğini açıklar . Anladığım kadarıyla, bir veri türü tanımlandıktan sonra teori, eliminatörü sağlar.
Bulduğum (ya da en azından, eğer gördüysem tanımadığım), eliminatörleri, hem türlerini hem de anlamlarını nasıl türetebileceğinin iyi bir açıklamasıdır.
Birisi beni bir veri tipi tanımından nasıl bir eliminatör elde edebileceğini açıklayan bir referansa işaret edebilir mi?
fix
ve ve olarak tanımlanan bir eliminatör üretir match
. Elimde bir referans yok, ama bu eliminatörün nasıl üretildiği hakkında bir şeyler okuduğumu biliyorum. cs.stackexchange.com/questions/104/… ilgi çekici olabilir.
T
Coq, T_ind
bağımlı bir eliminatör olan bir indüksiyon prensibini tanımlar . Bu, özyineleme ve kalıp eşleşmesi açısından tanımlanır, ancak prensip olarak aynı türde (aynı anlamsallıkla) yeni bir sabit olarak kabul edebilirsiniz.