yavsc/YavscLib/IT/ICode.cs

22 lines
554 B
C#

using System.Collections.Generic;
namespace YavscLib
{
public interface ILetter<T> : IEqualityComparer<T> {
}
public interface IWord<TLetter> where TLetter : ILetter<TLetter>
{
IWord<TLetter> Aggregate(TLetter other);
}
public interface ICode<TLetter> : IEnumerable<TLetter> where TLetter : ILetter<TLetter>
{
/// <summary>
/// Checks that (b!=c) => a.b != a.c
/// </summary>
/// <returns></returns>
bool Validate();
IWord<TLetter> CreateWord(TLetter letter);
}
}