Действительно ли возможно изменить размер шага встроенной функции диапазона haskell или литерала?

Если вы используете алгоритм шунтирующего двора для построения своего AST, всякий раз, когда вы вставляете левую часть в стек операторов после оператора умножения - это ваш сигнал для распределения и расширения выражения. [ 112]

Для предоставленного изображения оператор сложения перемещается в качестве корневого узла, а его дочерние элементы являются копиями вашего текущего дерева, за исключением того, что узел добавления заменяется его собственными дочерними элементами.

Надеюсь, что это помогает с созданием решения.

AST before and after distributive property

10
задан Paul Wicks 9 February 2009 в 19:52
поделиться

3 ответа

[1,1.5..5]
21
ответ дан 3 December 2019 в 13:35
поделиться

Необходимо быть осторожными с арифметикой с плавающей точкой. Это не может представить 1.1 точно, поэтому если Вы пробуете

Prelude> [0,0.1 .. 1]
[0.0,0.1,0.2,0.30000000000000004,0.4,0.5,0.6,0.7,0.7999999999999999,0.8999999999999999,0.9999999999999999]

Лучший способ больше похож:

Prelude> map (/10) [0..10]
[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
18
ответ дан 3 December 2019 в 13:35
поделиться

На самом деле, [1..5] синтаксический сахар для

enumFromTo 1 5 

и [1,1.5..5] для

enumFromThenTo 1 1.5 5

Для получения дополнительной информации см. http://en.wikibooks.org/wiki/Haskell/Syntactic_sugar

6
ответ дан 3 December 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: