Cheryl's birthday: Difference between revisions
Content deleted Content added
m →{{header|Factor}}: dupd tuck is equivalent to 2dup |
|||
Line 1,737: | Line 1,737: | ||
End Sub</lang>{{out}} |
End Sub</lang>{{out}} |
||
<pre>July 16</pre> |
<pre>July 16</pre> |
||
=={{header|Visual Basic .NET}}== |
|||
{{trans|C#}} |
|||
<lang vbnet>Module Module1 |
|||
Structure MonDay |
|||
Dim month As String |
|||
Dim day As Integer |
|||
Sub New(m As String, d As Integer) |
|||
month = m |
|||
day = d |
|||
End Sub |
|||
Public Overrides Function ToString() As String |
|||
Return String.Format("({0}, {1})", month, day) |
|||
End Function |
|||
End Structure |
|||
Sub Main() |
|||
Dim dates = New HashSet(Of MonDay) From { |
|||
New MonDay("May", 15), |
|||
New MonDay("May", 16), |
|||
New MonDay("May", 19), |
|||
New MonDay("June", 17), |
|||
New MonDay("June", 18), |
|||
New MonDay("July", 14), |
|||
New MonDay("July", 16), |
|||
New MonDay("August", 14), |
|||
New MonDay("August", 15), |
|||
New MonDay("August", 17) |
|||
} |
|||
Console.WriteLine("{0} remaining.", dates.Count) |
|||
' The month cannot have a unique day. |
|||
Dim monthsWithUniqueDays = dates.GroupBy(Function(d) d.day).Where(Function(g) g.Count() = 1).Select(Function(g) g.First().month).ToHashSet() |
|||
dates.RemoveWhere(Function(d) monthsWithUniqueDays.Contains(d.month)) |
|||
Console.WriteLine("{0} remaining.", dates.Count) |
|||
' The day must now be unique. |
|||
dates.IntersectWith(dates.GroupBy(Function(d) d.day).Where(Function(g) g.Count() = 1).Select(Function(g) g.First())) |
|||
Console.WriteLine("{0} remaining.", dates.Count) |
|||
' The month must now be unique. |
|||
dates.IntersectWith(dates.GroupBy(Function(d) d.month).Where(Function(g) g.Count() = 1).Select(Function(g) g.First())) |
|||
Console.WriteLine(dates.Single()) |
|||
End Sub |
|||
End Module</lang> |
|||
{{out}} |
|||
<pre>10 remaining. |
|||
5 remaining. |
|||
3 remaining. |
|||
(July, 16)</pre> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |
||
<lang zkl>dates:=T(T("May", 15), T("May", 16), T("May", 19), |
<lang zkl>dates:=T(T("May", 15), T("May", 16), T("May", 19), |