В принципе, поскольку [10..1]
переведен на enumFromTo 10 1
, который сам имеет семантику для создания списка, беря все элементы меньше 1
, которые являются результатом подсчета вверх (с шагом +1
) из ( в том числе) 10
.
В то время как [10, 9..1]
переведен на enumFromToThen 10 9 1
, который явно устанавливает размер шага счета как 9-10
, т.е. -1
(который жестко закодирован до +1
для enumFromTo
)
Более точная спецификация может быть найдена в отчете Haskell (6.3.4 Класс Enum):
enumFrom :: a -> [a] -- [n..]
enumFromThen :: a -> a -> [a] -- [n,n'..]
enumFromTo :: a -> a -> [a] -- [n..m]
enumFromThenTo :: a -> a -> a -> [a] -- [n,n'..m]
Для типов
Int
] иInteger
, функции перечисления имеют следующее значение:blockquote>
- Последовательность
enumFrom e1
представляет собой список[e1,e1+1,e1+2,...]
.- Последовательность
enumFromThen e1 e2
является list[e1,e1+i,e1+2i,...]
, где приращение i является e2-e1. Инкремент может быть нулем или отрицательным. Если приращение равно нулю, все элементы списка одинаковы.- Последовательность
enumFromTo e1 e3
- это список[e1,e1+1,e1+2,...e3]
. Список пуст, еслиe1 > e3
.- Последовательность
enumFromThenTo e1 e2 e3
- это список[e1,e1+i,e1+2i,...e3]
, где приращениеi
равноe2-e1
. Если приращение положительное или нулевое, список заканчивается, когда следующий элемент будет больше, чемe3
; список пуст, еслиe1 > e3
. Если приращение отрицательное, список заканчивается, когда следующий элемент будет меньшеe3
; список пуст, еслиe1 < e3
.
Он берет ширину родительского элемента и устанавливает ширину текущего элемента равной 100% от него.
Однако вы могли столкнуться с ошибкой блочной модели IE (которая все еще присутствует в «Quirks Mode»).
В частности, в режиме совместимости IE включает заполнение в пределах области, определяемой параметром «width», в то время как блочная модель W3C этого не делает - и отступы, и поля добавляются к ширине.
Вы можете обратиться к ЭТОЙ странице для получения более подробной информации.