Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,41 @@
Imports System.Runtime.CompilerServices
Module Module1
<Extension()>
Iterator Function Loopy(Of T)(seq As IEnumerable(Of T)) As IEnumerable(Of T)
While True
For Each element In seq
Yield element
Next
End While
End Function
Iterator Function TurnWheels(ParamArray wheels As (name As Char, values As String)()) As IEnumerable(Of Char)
Dim data = wheels.ToDictionary(Function(wheel) wheel.name, Function(wheel) wheel.values.Loopy.GetEnumerator)
Dim primary = data(wheels(0).name)
Dim Turn As Func(Of IEnumerator(Of Char), Char) = Function(sequence As IEnumerator(Of Char))
sequence.MoveNext()
Dim c = sequence.Current
Return If(Char.IsDigit(c), c, Turn(data(c)))
End Function
While True
Yield Turn(primary)
End While
End Function
<Extension()>
Sub Print(sequence As IEnumerable(Of Char))
Console.WriteLine(String.Join(" ", sequence))
End Sub
Sub Main()
TurnWheels(("A", "123")).Take(20).Print()
TurnWheels(("A", "1B2"), ("B", "34")).Take(20).Print()
TurnWheels(("A", "1DD"), ("D", "678")).Take(20).Print()
TurnWheels(("A", "1BC"), ("B", "34"), ("C", "5B")).Take(20).Print()
End Sub
End Module