Я в форте разбираюсь совсем слабо, поэтому прошу местных его любителей оценить такую бредовую идею:
Форт в котором:
1. Все слова имеют constant stack effect
2. Все строго типизировано (Возможно даже Hindley-Milner)
3. Стек работает типизированно, т.е. слово с опред. типом будет брать из стека не, например, значение в вершине, а наиболее высокое значение опр. типа.
Будет ли этот бред жизнеспособен? Почти уверен, что идея не нова, но не могу найти папиры.
Вот небольшие примеры из фп (точнее -- из хаскеля):
: map(Cons) uncons apply map cons ;
: map(Nil) ; -- как быть с pattern matching я еще не придумал, поэтому в такой условной форме.
: foldl(Cons) uncons apply foldl ;
: foldl(Nil) ;
Занимательно то, что простыми арифметическими действиями -- просто проверяя условия underflow стека -- можно вывести типы и того, и другого. (Я к сожалению не знаю как работает вывод типов в hindley-milner, поэтому заранее извините за такое примитивное понимание).
Форум —
Development