反内射型家庭

时间:2016-08-14 08:07:48

标签: haskell type-families

假设我有一个内射型家庭T

type family T a = b | b -> a

我的第一个问题是有一种写作方式:

type family T' = the inverse of T

无需重复T的所有实例,但反过来。

这样:T (X1 a (T' a)) = a

似乎这应该有用,因为TT'都是单射的,一方面它是机械的来解决另一方。

无论如何写T'

1 个答案:

答案 0 :(得分:7)

使用合适的扩展名,可以写:

from collections import Counter
import re

print('Input your string')
regex = re.compile('[^a-zA-Z]')
inStr = input()
newString = regex.sub('', inStr).lower()

letterTable = Counter(newString)

for k in sorted(letterTable):
    print((k, letterTable[k]))

例如,这是一个示例,显示您至少获得与此类型同义词的基本类型兼容性:

type T' b = forall a. T a ~ b => a