diff options
| author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-11-12 14:33:30 +1300 |
|---|---|---|
| committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-11-12 14:33:30 +1300 |
| commit | 9ae0a7e7c5d7669a81fe9eba13ff9c6224635efe (patch) | |
| tree | 4d215d59f770adad06741807efce147aed68d4f1 /test | |
| parent | 90a7dec41ac4f68c4c9a99eb77ebf340a36e536e (diff) | |
Recursive portions of prelude
Diffstat (limited to 'test')
| -rw-r--r-- | test/membero.adb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/membero.adb b/test/membero.adb new file mode 100644 index 0000000..694410d --- /dev/null +++ b/test/membero.adb @@ -0,0 +1,53 @@ + + +-- Programmed by Jedidiah Barber +-- Licensed under the Sunset License v1.0 + +-- See license.txt for further details + + +with + + Ada.Strings.Unbounded, + Ada.Text_IO, + Kompsos.Prelude, + Kompsos.Pretty_Print; + + +procedure Membero is + + package SU renames Ada.Strings.Unbounded; + package TIO renames Ada.Text_IO; + + function "+" + (Item : in String) + return SU.Unbounded_String + renames SU.To_Unbounded_String; + + + package InKomp is new Kompsos (SU.Unbounded_String); + use InKomp; + + package Prelude is new InKomp.Prelude; + package Printer is new InKomp.Pretty_Print (SU.To_String); + + Verse : World := Empty_World; + + Test_Item : constant Term := T (T (+"one") & T (+"two") & T (+"three") & T (+"four")); + +begin + + TIO.Put_Line ("Test program to check if membero, and hence recursion, is working."); + TIO.Put_Line ("Not currently designed to check for infinite recursion."); + TIO.New_Line; + TIO.Put_Line ("Should find all possible members of (one two three four)"); + + TIO.New_Line; + + Prelude.Member (Verse, T (Verse.Fresh ("result")), Test_Item); + + TIO.Put_Line (Printer.Image (Verse)); + +end Membero; + + |
