Beiträge von metazip

    Hallo,


    ich habe eine App für einen Pointfree-Interpreter in Kotlin erstellt.

    Sie soll wie ein Taschenrechner mit funktionaler Programmiermöglichkeit über die Tastatur bedienbar sein.


    Der Screenshot sieht in etwa so aus:

    1289-pixel2image-png


    Jede Eingabezeile wird mit CALC ausgeführt und das Ergebnis wird dann unterhalb der Buttonzeile angezeigt.

    Die anderen Buttons sind nach CALC - Komposition - Runde Klammern - Eckige Klammern -

    Ergebnis oben einfügen - Schritt nach Links - Schritt nach Rechts

    Im Menü gibt es noch den Punkt <Clear>, um auf den Initialisierungszustand zurück zu stellen.


    Die Pointfree-Sprache hat eine ungewöhnliche Syntax und wird in der Regel von Rechts-nach-Links verarbeitet.

    Es ist praktisch alles Infix-Notation mit Funktionen oder Klammern dazwischen.

    Ein Quickinfo.pdf zeigt grob die Datentypen und Funktionen/Operatoren der Sprache.


    Als Technologien habe ich Kotlin-IDE-Community als Implementierungssprache verwendet

    und Android-Studio (Kotlin) für die App/APK.


    ---------------------------------------------------------------------- * ---------------------------------------------------------------------

    Zur Pointfree-Interpreter-Technologie gebe ich ein paar Beispiele


    Mit name == funktionsterm wird einem Funktionsterm eine Bezeichnung gegeben z.B:

    Code
    sum == (+ \)
    -->  "sum == (+ \) _s"

    und mit dem CALC-Button nimmt der Calculator die Definition an und zeigt das Kompilat als String an.

    <neue Zeile>

    Code
    iota ° 10
    -->  (1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10 ;)

    iota erzeugt mit dem Argument 10 eine Liste von Realzahlen.

    Die Komposition ist der Operator.

    Code
    ((id * id) aa) ° iota ° 10
    -->  (1 ; 4 ; 9 ; 16 ; 25 ; 36 ; 49 ; 64 ; 81 ; 100 ;)

    der aa-Operator berechnet zu jedem Element der Liste hier das Quadrat.

    id ist die Identitätsfunktion.

    Code
    sum ° ((id * id) aa) ° iota ° 10
    -->  385

    mit der Summe der Quadrate haben wir jetzt eine schöne Pipeline programmiert.

    ---------------------------------------------------------------------- * ---------------------------------------------------------------------


    Download-Möglichkeiten gibt es über heise-Download in der Abteilung Android. (Virengeprüft i.A. von heise)

    Oder über Github (APK), der Source-Code zur App liegt auch auf Github: pointfrip/calculator



    Viele Grüße und viel Spaß mit der App wünscht

    metazip


    pointfrip-homepage