2016-12-26 1 views
1

Ich habe vor kurzem die Aufgabe, ein Programm zu erstellen, das eines erfordert, um ein Menü zu verwenden. Ich habe jedoch keine Ahnung, wie man ein Fenster erstellt und es so anzeigt, dass mit einem bestimmten Schlüssel interagiert werden kann, sagen wir die "Enter" -Taste. Hat jemand Hinweise, wie man das macht?Wie erstellen Sie ein interaktives Menü in Schema

Antwort

1

Scheme-Berichte haben keine GUI-Unterstützung, daher wäre das einzige tragbare Gerät eine CLI-Schnittstelle. Dies ist ein sehr einfaches Programm, das nur diese Teile hat.

#!r6rs 
(import (rnrs)) 

(define *stdin* (current-input-port)) 
(define (readline) 
    (get-line *stdin*)) 

;;; displays a textual menu 
(define (menu) 
    (display "Menu\n1. read input\n2. print data\n3. empty input\n")) 

;; read until we got the value between 1 and 3 from user 
(define (read-command) 
    (display "Enter choice [1-3] >") 
    (let* ((in (readline)) 
     (n (string->number in))) 
    (cond ((<= 1 n 3) n) 
      (else 
      (display "Invalid choice \"") 
      (display in) 
      (display "\"\n") 
      (read-command))))) 


(define (driver data) 
    (menu) 
    (let ((choice (read-command))) 
    (cond ((= choice 1) (display "Enter text >") 
         (driver (cons (readline) data))) 
      ((= choice 2) (display "Data:\n") 
         (display data) 
         (newline) 
         (driver data)) 
      (else (display "Emptied\n") 
       (driver '()))))) 

(driver '()) 

Natürlich haben individuelle Implementierungen GUI-Unterstützung. Z.B. Racket hat eine Möglichkeit, Desktop-Anwendungen zu erstellen, bei denen das Menü Schaltflächen sein kann, auf die Sie klicken.

Verwandte Themen