Skip to content

Instantly share code, notes, and snippets.

@ayato-p
Last active December 12, 2016 10:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ayato-p/5862978 to your computer and use it in GitHub Desktop.
Save ayato-p/5862978 to your computer and use it in GitHub Desktop.
(define (prisoner strtegy-1 strtegy-2)
(cond [(and strtegy-1 strtegy-2) (values -6 -6)]
[(or strtegy-1 strtegy-2)
(if strtegy-1 (values -0 -9) (values -9 -0))]
[(and (not strtegy-1) (not strtegy-2)) (values -1 -1)]))
(prisoner #t #t)
(prisoner #f #t)
(prisoner #t #f)
(prisoner #f #f)
;;パターンマッチ
(use util.match)
(define (prisoner . strtegies)
(match strtegies
[(#t #t) '(-6 -6)]
[(#t #f) '(-0 -9)]
[(#f #t) '(-9 -0)]
[(#f #f) '(-1 -1)]))
(prisoner #t #t)
(prisoner #f #t)
(prisoner #t #f)
(prisoner #f #f)
;;パターンマッチ2
(use util.match)
(define (prisoner strtegy-1 strtegy-2)
(match (list strtegy-1 strtegy-2)
[("m" "m") `((payoff-1 . 6) (payoff-2 . 6))]
[("m" "f") `((payoff-1 . 0) (payoff-2 . 9))]
[("f" "m") `((payoff-1 . 9) (payoff-2 . 0))]
[("f" "f") `((payoff-1 . 1) (payoff-2 . 1))]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment