私はCourseraのクラスに参加していて、宿題をしようとしています。
カードのリスト(スーツとランクによって特徴付けられる)を取り、それらがすべて同じ色である場合はtrueを返し、そうでない場合はfalseを返すSMLプログラムを作成する必要があります。
これが私のコードです(なぜそれが間違っているのか理解できませんが、プログラミングの初心者をやめています):
datatype suit = Clubs | Diamonds | Hearts | Spades
datatype rank = Jack | Queen | King | Ace | Num of int
type card = suit * rank
datatype color = Red | Black
datatype move = Discard of card | Draw
fun card_color (c) = case c of
(Hearts,_) => Red
|(Diamonds,_) => Red
|(_,_) => Black
fun all_same_color (cs) = case cs of
[] => false
|x::[] => true
|x::y::[] => if card_color (x) = card_color (y) then true
|x::y::xs => if card_color(x)=card_color(y) then all_same_color(xs)
else false