PasteRack.org
Paste # 85472
2016-07-24 05:53:39

Fork as a new paste.

Paste viewed 100 times.


Embed:

confused about match app vs ?

  1. #lang racket
  2.  
  3. (let ([s "UPPER"])
  4.   (match s
  5.     [(? (lambda (v) (equal? s (string-upcase v)))) 'good]
  6.     [_ 'bad]))
  7.  
  8. (let ([s "lower"])
  9.   (match s
  10.     [(? (lambda (v) (equal? s (string-upcase v)))) 'bad]
  11.     [_ 'good]))
  12.  
  13. (let ([s "DUNNO"])
  14.   (match s
  15.     [(app string-upcase s) 'doubtful]
  16.     [_ 'bad]))
  17.  
  18. (let ([s "lower"])
  19.   (match s
  20.     [(app string-upcase s) 'bad]
  21.     [_ 'good]))
  22.  
  23. (let ([s "lower"])
  24.   (match s
  25.     [(app string-upcase "lower") 'confused]
  26.     [_ 'good]))

=>

'good

'good

'doubtful

'bad

'good