2010-11-05 4 views
2

Что это значит, а также то, что количество элементов следующих типов, например:мощности типа

unit->int 

bool->(int->bool) 

ответ

1

Мощность такого типа является числом возможных допустимых значений, которые могут быть таким типа ,

С типами функций мы обычно хотим рассмотреть две функции, которые возвращают одно и то же значение для каждого входа, чтобы быть «той же функцией», по крайней мере для целей мощности (это называется «экстенсиональное равенство»).

Я предполагаю, что это проблема домашней работы, и я также предполагаю, что функции, которые не завершают или не дают неопределенные значения, не должны включаться (так как они действительно не включались бы в типичная математическая обработка).

Выражение мощности типов, которые могут иметь конечное число возможных значений, в принципе довольно просто, потому что вы можете просто указать число в качестве мощности. Однако с бесконечными мощностями технически существует различие между различными видами бесконечностей. Например, бесчисленная бесконечность «больше чем» счетная бесконечность. (Честно говоря, я не уверен, что вы ожидаете узнать об этом, или вы просто должны дать ответ «бесконечно» - проверьте свои примечания к курсу.) По этой причине, это хорошая идея указать, какая бесконечность вы говорите, например ссылаясь на мощность «более простого» типа.

Так мощность unit->int такая же, как мощности int (и то же самое для любого другого типа назначения, которые вы можете выбрать вместо int), так как значение типа unit->X обязательно должна быть постоянной функцией, которая " игнорирует его вход "и возвращает постоянное значение типа X.

Надеюсь, что этого неполного ответа достаточно, чтобы вы начали.

+0

@ Robin Green: большое спасибо, но как насчет второго, могу ли я предположить, что это 2 * 2 * # (int)? – rookie

+0

@Robin Green: это проблема, что в моих заметках у меня нет объяснений о бесконечности, в сети я не могу найти нужную информацию, я знаю, что int имеет 32 бит, поэтому он может получать значения от 2 до 32 ? так что о секунде? был ли я прав? – rookie

+1

@rookie: Нет, это не правильный ответ. Рассмотрим 'int-> bool', и давайте притворимся, что всего 10 целых чисел (ха-ха). Количество функций от int до bool, конечно, будет больше 20: на самом деле это будет 1024. Таким образом, это не просто умножение двух мощностей, когда у вас есть тип функции. –

Смежные вопросы