Pointfrip Calculator für Android

  • 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

  • Ich hab keine Ahnung, wofür das gut ist, ich bin in Mathe eine wandelnde 5. Aber ich find es geil! Auch wenn ich es nicht verstehe. :)

  • Hallo,

    habe das Design etwas angepasst und zuletzt auch eine try-Struktur hinzugefügt.

    Ich hoffe der Funktionsgehalt ist jetzt ausreichend.

    Viele Grüße,

    metazip

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!