Simplified pattern matching with match expander
This commit is contained in:
		
							parent
							
								
									c54b8a0d6b
								
							
						
					
					
						commit
						6274772069
					
				| @ -304,35 +304,19 @@ | |||||||
|   (define (args-ref number) |   (define (args-ref number) | ||||||
|     (vector-ref vectorof-args number)) |     (vector-ref vectorof-args number)) | ||||||
|   (match vectorof-args |   (match vectorof-args | ||||||
|     [(vector a) |     [(or (vector (== help-command-1)) | ||||||
|      (cond |          (vector (== help-command-2)) | ||||||
|        [(ormap (lambda (x) (equal? a x)) |          (vector (== help-command-3))) (help)] | ||||||
|                (list help-command-1 |     [(vector (== ls-command))          (ls)] | ||||||
|                      help-command-2 |     [(vector (== init-command))        (init)] | ||||||
|                      help-command-3)) |     [(vector (== add-command) _)       (add (args-ref 1))] | ||||||
|         (help)] |     [(vector (== rm-command)  _)       (rm  (args-ref 1))] | ||||||
| 
 |  | ||||||
|        [(equal? a ls-command) |  | ||||||
|         (ls)] |  | ||||||
| 
 |  | ||||||
|        [(equal? a init-command) |  | ||||||
|         (init)] |  | ||||||
| 
 |  | ||||||
|        [else (displayln-messages-ref 'error-incorrect-usage)])] |  | ||||||
| 
 |  | ||||||
|     [(vector a _) |  | ||||||
|      (cond |  | ||||||
|        [(equal? a add-command) |  | ||||||
|         (add (args-ref 1))] |  | ||||||
| 
 |  | ||||||
|        [(equal? a rm-command) |  | ||||||
|         (rm (args-ref 1))] |  | ||||||
| 
 |  | ||||||
|        [else (displayln-messages-ref 'error-incorrect-usage)])] |  | ||||||
| 
 |  | ||||||
|     [(vector _ _ _ ...) |     [(vector _ _ _ ...) | ||||||
|      (displayln-messages-ref 'error-too-many-arguments)] |      (displayln-messages-ref 'error-too-many-arguments)] | ||||||
| 
 |     [(vector _ _) | ||||||
|  |      (displayln-messages-ref 'error-incorrect-usage)] | ||||||
|  |     [(vector _) | ||||||
|  |      (displayln-messages-ref 'error-incorrect-usage)] | ||||||
|     [_ (random-message)])) |     [_ (random-message)])) | ||||||
| 
 | 
 | ||||||
| (define (main vectorof-args) | (define (main vectorof-args) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user