yavsc/Yavsc.Abstract/IT/ICode.cs

22 lines
552 B
C#
Raw Normal View History

2017-01-20 00:51:02 +01:00
using System.Collections.Generic;
2017-05-27 16:22:58 +02:00
namespace Yavsc
2017-01-20 00:51:02 +01:00
{
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);
}
2017-05-27 16:22:58 +02:00
}