LINUX.ORG.RU

Функции, типы данных и прочее.


0

0

Здравствуйте. Может быть бред, может велосипед, но любопытство берет верх. Стало интересно реализована ли в каких-либо языках (может есть в качестве фичи) такая возможность: область значений функции, удовлетворяющих некому предикату? Область значений - данные, могут быть как однородными так и гетерогенными.



Последнее исправление: smap (всего исправлений: 1)

Если я тебя правильно понял, то речь идёт о динамической типизации + контрактах, например, в PLT Scheme есть.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Возможно, хожу по ссылкам, читаю. :)

smap
() автор топика

область значений функции, удовлетворяющих некому предикату

проверка постусловия, есть в любом языке с design by contract - Eiffel, D, etc

могут быть как однородными так и гетерогенными

можно пример?

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Говоришь о примере т.д.? Первое что приходит на ум: к примеру, простые числа и списки( как lisp'овские ).

smap
() автор топика
Ответ на: комментарий от smap

к примеру, простые числа и списки( как lisp'овские ).

ничего не понял. пример функции можно? с контрактом на область «однородных или гетерогенных» значений

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Нет, нельзя. Попросту не знаю как выразить это кодом. (Вообще, мне возможно кажется, но ты увидел какую-то неточность в формулировке вопроса или ошибке в терминологии).

smap
() автор топика
Ответ на: комментарий от smap

увидел какую-то неточность в формулировке вопроса или ошибке в терминологии

да нет, просто задача непонятна

не знаю как выразить это кодом

вырази псевдокодом. или словами

jtootf ★★★★★
()

Ты так написал, что вообще ничего непонятно. Аналитики будут плакать, читая эту тему.

ttnl ★★★★★
()

Вам просто проверка на нужный интервал не подходит?

Что будет если предикат нарушен, exception? Если да, то зачем встраивать в язык, так и пишите

vertexua ★★★★★
()
Ответ на: комментарий от anonymous

Мне все подходит. Я так и не могу понять что хотел автор

vertexua ★★★★★
()
Ответ на: комментарий от dave

> ассерты

ассёрты это и есть контракты для бедных

Sphinx ★★☆☆
()
Ответ на: комментарий от jtootf

> напротив

В общем случае это непрактично. Вот, различать целые от вещественных - это да. Можно еще определить фиксированную дельту или диапазон как в аде, но я не знаю, насколько это используется на практике. Почему-то в других известных мне языках аналогов таких адавских фич нет.

dave ★★★★★
()
Ответ на: комментарий от dave

Почему-то в других известных мне языках аналогов таких адавских фич нет.

и потому в них это приходится делать вручную

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.