Вяз это что: Вяз | это… Что такое Вяз?

Вяз | это… Что такое Вяз?

У этого термина существуют и другие значения, см. Вяз (значения).

Вяз, или ильм (лат. Úlmus) — род деревьев семейства Вязовые (Ulmaceae).

Ильмы появились около 40 миллионов лет назад[4] и включают в себя несколько десятков видов. Некоторые виды более известны под названиями вяз, берест, карагач.

Содержание

  • 1 Распространение и экология
    • 1.1 Болезни и вредители
  • 2 Ботаническое описание
  • 3 Значение и применение
    • 3.1 Древесина
  • 4 Классификация
    • 4.1 Таксономия
    • 4.2 Виды
  • 5 Примечания
  • 6 Литература
  • 7 Ссылки

Распространение и экология

В виде примеси распространены, главным образом, в подзоне широколиственных лесов, также встречаются в южной и средней части подзоны еловых лесов. Чистые насаждения встречаются редко.

Успешно растут на плодородных почвах, особенно на аллювиальных. Некоторые виды выносят засолённые почвы и относительно сухие местообитания. Все виды довольно теневыносливы, особенно в молодости; при полном освещении растут вполне успешно и образуют мощную крону.

Болезни и вредители

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

[5].

Листья
(Вяз Давида)
Зелёные плоды
(Вяз гладкий)
Зрелая семянка на просвет
(Вяз шершавый)

Ботаническое описание

Преимущественно листопадные растения. Высота деревьев иногда достигает 40 м, при диаметре ствола 2 м, некоторые виды растут в виде кустарника. Крона от широко-цилиндрической с закруглённой вершиной до компактно-шаровидной. Ветвление симподиальное; побеги коленчатые. Ветви без колючек и шипов, с тонкими молодыми побегами на главных толстых ветвях. Кора бурая, у молодых деревьев гладкая, позже толстая и грубая, бороздчатая, с продольными трещинами. На ветвях многих южных видов образуются пробковые наросты. Корневая система обычно без стержневого корня, мощная, с отдельными, глубоко идущими корнями и многими боковыми поверхностными. На сильно подзолистых почвах корневая система поверхностная.

Почки сидячие, длиной 2—8 мм, овальные, яйцевидные, острые или тупые, опушенные или голые, с черепичато налегающими чешуями. Листорасположение очерёдное, двурядно-мозаичное, отчего крона почти не просвечивает и дает густую тень. Листья короткочерешковые, цельные, реже в верхней части лопастные, при основании неравнобокие, размерами от 4 до 20 см, двояко- или троякозубчатые, редко просто зубчатые, заострённые. Прилистники ланцетные, рано опадающие. Даже на одном побеге листья могут различаться размерами и очертаниями, образуя красивое кружево — так называемую вязь. До созревания плодов листья почти не развиваются и начинают быстро расти только после пожелтения плодов. Осенью перед листопадом пластинка листьев окрашивается в светло-жёлтый цвет или буреет; опадают листья раньше, чем у многих других древесных пород.

Цветки мелкие, невзрачные, собраны пучками, сидящими в пазухах листьев, обоеполые, снабжены простым колокольчатым пятираздельным, реже 4—8, околоцветником и таким же количеством тычинок. Завязь верхняя, одногнездая, с одной семяпочкой, сплющенная, переходит в столбик, разделенный на две ветви, представляющие собою два рыльца. Цветки ветроопыляемые, у большинства видов появляются раньше листьев. Цветут обычно до появления листьев, редко осенью (вяз мелколистный (Ulmus parvifolia)).

Плод сплющенный, тонкооболочечный, крылатый орешек, перепончатое крыло которого охватывает семя кругом. Семя чечевицеобразное, без эндосперма. Плоды созревают очень рано, в Санкт-Петербурге в июне, в Крыму и на Кавказе в апреле — мае; разносятся ветром, во влажной почве прорастают через несколько дней. Проросток с двумя обратно-яйцевидными, плоскими, толстоватыми семядолями, за которыми следует 2—3 пары супротивных просто зубчатых листьев. Южные виды (приземистый (

Ulmus pumila), крупноплодный (Ulmus macrocarpa) и другие), растущие на открытых местах, начинают плодоносить с 5—8 лет. Северные лесные виды (вяз шершавый (Ulmus glabra), гладкий (Ulmus laevis), лопастной (Ulmus laciniata) и другие) — с 20—40 лет. Плодоносят растения ежегодно и обильно, давая до 20—30 кг семян на 1 дерево.

Размножаются пнёвой порослью, корневыми отпрысками и семенами. В раннем возрасте растут быстро.

Продолжительность жизни 80—120 лет, доживают до 400 лет. В первый год всходы достигают высоты 10—15 см; затем ежегодный прирост в высоту составляет 30—40 см, и растения сильно ветвятся. В возрасте 40—60 лет годичный прирост около 20 см, позже прирост в высоту падает.

Ulmus procera
Бонсай
(Вяз малый)

Значение и применение

Молодые побеги служат веточным кормом скоту (листья и кора дерева).

Большую роль ильмы играют в озеленении городов и посёлков, широко используются для озеленения улиц, садов и парков, для обсадки дорог, а также в защитных лесонасаждениях. Являются основными парковыми породами Европы, Северной Америки и средних и южных районов Европейской части России. Хорошо переносят подрезку и долго сохраняют созданную форму, используются в стриженных сооружениях. Однако часто ильмовые насаждения в степях неустойчивы и сильно страдают от вредителей.

Луб, невысокого качества, используется на кровлю, короба и покрышку саней.

Кора — на дубление и получение красок.

Древесина

Свойство древесины вяза сопротивляться гниению при постоянной сырости использовалось в средневековой Европе, где из выдолбленных изнутри стволов вяза изготавливали водопроводные трубы. Древесина вяза использовалась также для постройки опор первого Лондонского моста. Однако эта устойчивость к гниению в воде теряется при контакте с почвой.[6]

Древесина вяза с тёмно-коричневым ядром и более светлой заболонью, кольцепоровая с характерным рисунком в виде параллельных или ломано-тангентальных полос; сердцевинные лучи узкие. Древесина крепкая, твёрдая, упругая, вязкая, трудно колется, хорошо поддаётся обработке. Плотность сухой древесины вяза колеблется в зависимости от вида и составляет в среднем 560 кг на м³[6]. Широко употребляется мебельной промышленности, столярном и машиностроительном производствах. Особенно ценится наплыв карагача, дающий красивый рисунок при распилке.

Дрова ильмовых пород обладают высокой теплотворной способностью, так же как и уголь.

Классификация

Таксономия

Род Вяз входит в семейство Вязовые (Ulmaceae) порядка Розоцветные (Proteales).

 ещё 8 семейств
(согласно Системе APG II)
 
   около 40 видов
 порядок Розоцветные  род Вяз 
 
     
 отдел Цветковые, или Покрытосеменные  семейство Розоцветные  
     
 ещё 44 порядка цветковых растений
(согласно Системе APG II)
 ещё около 9 родов 
   

Виды

Список видов создан на основе базы данных Germplasm Resources Information Network (GRIN)[7].

В квадратных скобках в конце строки — ссылка на страницу таксона на сайте GRIN.

Полужирным шрифтом выделены виды, произрастающие на территории России и сопредельных стран[8].

  • Ulmus alata Michx. [1]
  • Ulmus americana L. — Вяз американский [2]
  • Ulmus androssowii Litv. — Вяз Андросова [3]
  • Ulmus crassifolia Nutt. [4]
  • Ulmus davidiana Planch. [5]
  • Ulmus densa Litv. — Вяз густой [6]
  • Ulmus elliptica K.Koch — Вяз эллиптический [7]
  • Ulmus glabra Huds. — Вяз горный, или Вяз шершавый [8]
  • Ulmus harbinensis S.Q.Nie & G.Q.Huang [9]
  • Ulmus ×hollandica Mill. [10]
  • Ulmus laciniata (Trautv.) Mayr — Вяз лопастной [11]
  • Ulmus laevis Pall. — Вяз гладкий [12]
  • Ulmus macrocarpa Hance — Вяз крупноплодный [13]
  • Ulmus mexicana (Liebm.) Planch. [14]
  • Ulmus minor Mill. — Вяз малый, или Берест
    [15]
  • Ulmus parvifolia Jacq. — Вяз мелколистный [16]
  • Ulmus procera Salisb. [17]
  • Ulmus pumila L. — Вяз приземистый [18]
  • Ulmus rubra Muhl. [19]
  • Ulmus serotina Sarg. [20]
  • Ulmus szechuanica W.P.Fang [21]
  • Ulmus thomasii Sarg. [22]
  • Ulmus villosa Brandis ex Gamble [23]
  • Ulmus ×viminalis Lodd. ex Bean [24]
  • Ulmus wallichiana Planch. [25]

Примечания

  1. Используется также название Покрытосеменные.
  2. Об условности указания класса двудольных в качестве вышестоящего таксона для описываемой в данной статье группы растений см. раздел «Системы APG» статьи «Двудольные».
  3. По данным сайта GRIN (см. карточку растения).
  4. http://www.unisci.com/stories/20013/0828015.htm — University of Abertay Dundee. The Biochemist, August 2001
  5. http://www.ulmen-handbuch.de/handbuch/ulmus/gattung_ulmus.html «Das Handbuch der Ulmengewächse», Dr. Gordon Mackenthun
  6. 1 2 Elm. Архивировано из первоисточника 30 ноября 2012.. Niche Timbers. Проверено 19 августа 2009.
  7. GRIN Species Records of Ulmus. Архивировано из первоисточника 30 ноября 2012. (Проверено 18 января 2011)
  8. Ярмоленко А. В. Род 369. Ильм, Вяз или Берест — Ulmus L. // Флора СССР. В 30 т / Гл. ред. и ред. тома акад. В. Л. Комаров. — М.—Л.: Изд-во АН СССР, 1936. — Т. V. — С. 360—373. — 762 + XXVI с. — 5175 экз.

Литература

  • Род 1. Ulmus L. — Вяз, Ильм или Берест // Деревья и кустарники СССР. Дикорастущие, культивируемые и перспективные для интродукции. / Ред. тома С. Я. Соколов. — М.—Л.: Изд-во АН СССР, 1951. — Т. II. Покрытосеменные. — С. 494—510. — 612 с. — 2500 экз.
  • Род 369. Ильм, Вяз или Берест — Ulmus L. // Флора СССР. В 30 т / Гл. ред. и ред. тома акад. В. Л. Комаров. — М.—Л.: Изд-во АН СССР, 1936. — Т. V. — С. 360—373. — 762 + XXVI с. — 5175 экз.

Ссылки

  • Вяз — статья из Большой советской энциклопедии (Проверено 23 декабря 2009)
  • Собичевский В. Т., Вяз, дерево из семейства ильмовых // Энциклопедический словарь Брокгауза и Ефрона: В 86 томах (82 т. и 4 доп.). — СПб., 1890—1907.  (Проверено 23 декабря 2009)
  • Вяз-бонсай. Архивировано из первоисточника 30 ноября 2012. (Проверено 23 декабря 2009)
  • Ильм. Архивировано из первоисточника 30 ноября 2012. на сайте Forest.RU (Проверено 23 декабря 2009)
  • Ильм. Архивировано из первоисточника 30 ноября 2012.
    в Лесной энциклопедии  (Проверено 23 декабря 2009)

Вяз | это… Что такое Вяз?

У этого термина существуют и другие значения, см. Вяз (значения).

Вяз, или ильм (лат. Úlmus) — род деревьев семейства Вязовые (Ulmaceae).

Ильмы появились около 40 миллионов лет назад[4] и включают в себя несколько десятков видов. Некоторые виды более известны под названиями вяз, берест, карагач.

Содержание

  • 1 Распространение и экология
    • 1. 1 Болезни и вредители
  • 2 Ботаническое описание
  • 3 Значение и применение
    • 3.1 Древесина
  • 4 Классификация
    • 4.1 Таксономия
    • 4.2 Виды
  • 5 Примечания
  • 6 Литература
  • 7 Ссылки

Распространение и экология

В виде примеси распространены, главным образом, в подзоне широколиственных лесов, также встречаются в южной и средней части подзоны еловых лесов. Чистые насаждения встречаются редко.

Успешно растут на плодородных почвах, особенно на аллювиальных. Некоторые виды выносят засолённые почвы и относительно сухие местообитания. Все виды довольно теневыносливы, особенно в молодости; при полном освещении растут вполне успешно и образуют мощную крону.

Болезни и вредители

Вязы повреждают многие насекомые, особенно листогрызущие (ильмовый листоед, ильмовый ногохвост и др.), а также опасные грибковые болезни (голландская болезнь ильмовых, периодически вызывающая массовое усыхание вязов). Многие европейские и американские виды близки к полному вымиранию[5].

Листья
(Вяз Давида)
Зелёные плоды
(Вяз гладкий)
Зрелая семянка на просвет
(Вяз шершавый)

Ботаническое описание

Преимущественно листопадные растения. Высота деревьев иногда достигает 40 м, при диаметре ствола 2 м, некоторые виды растут в виде кустарника. Крона от широко-цилиндрической с закруглённой вершиной до компактно-шаровидной. Ветвление симподиальное; побеги коленчатые. Ветви без колючек и шипов, с тонкими молодыми побегами на главных толстых ветвях. Кора бурая, у молодых деревьев гладкая, позже толстая и грубая, бороздчатая, с продольными трещинами. На ветвях многих южных видов образуются пробковые наросты. Корневая система обычно без стержневого корня, мощная, с отдельными, глубоко идущими корнями и многими боковыми поверхностными. На сильно подзолистых почвах корневая система поверхностная.

Почки сидячие, длиной 2—8 мм, овальные, яйцевидные, острые или тупые, опушенные или голые, с черепичато налегающими чешуями. Листорасположение очерёдное, двурядно-мозаичное, отчего крона почти не просвечивает и дает густую тень. Листья короткочерешковые, цельные, реже в верхней части лопастные, при основании неравнобокие, размерами от 4 до 20 см, двояко- или троякозубчатые, редко просто зубчатые, заострённые. Прилистники ланцетные, рано опадающие. Даже на одном побеге листья могут различаться размерами и очертаниями, образуя красивое кружево — так называемую вязь. До созревания плодов листья почти не развиваются и начинают быстро расти только после пожелтения плодов. Осенью перед листопадом пластинка листьев окрашивается в светло-жёлтый цвет или буреет; опадают листья раньше, чем у многих других древесных пород.

Цветки мелкие, невзрачные, собраны пучками, сидящими в пазухах листьев, обоеполые, снабжены простым колокольчатым пятираздельным, реже 4—8, околоцветником и таким же количеством тычинок. Завязь верхняя, одногнездая, с одной семяпочкой, сплющенная, переходит в столбик, разделенный на две ветви, представляющие собою два рыльца. Цветки ветроопыляемые, у большинства видов появляются раньше листьев. Цветут обычно до появления листьев, редко осенью (вяз мелколистный (Ulmus parvifolia)).

Плод сплющенный, тонкооболочечный, крылатый орешек, перепончатое крыло которого охватывает семя кругом. Семя чечевицеобразное, без эндосперма. Плоды созревают очень рано, в Санкт-Петербурге в июне, в Крыму и на Кавказе в апреле — мае; разносятся ветром, во влажной почве прорастают через несколько дней. Проросток с двумя обратно-яйцевидными, плоскими, толстоватыми семядолями, за которыми следует 2—3 пары супротивных просто зубчатых листьев. Южные виды (приземистый (Ulmus pumila), крупноплодный (Ulmus macrocarpa) и другие), растущие на открытых местах, начинают плодоносить с 5—8 лет. Северные лесные виды (вяз шершавый (Ulmus glabra), гладкий (Ulmus laevis), лопастной (Ulmus laciniata) и другие) — с 20—40 лет. Плодоносят растения ежегодно и обильно, давая до 20—30 кг семян на 1 дерево.

Размножаются пнёвой порослью, корневыми отпрысками и семенами. В раннем возрасте растут быстро.

Продолжительность жизни 80—120 лет, доживают до 400 лет. В первый год всходы достигают высоты 10—15 см; затем ежегодный прирост в высоту составляет 30—40 см, и растения сильно ветвятся. В возрасте 40—60 лет годичный прирост около 20 см, позже прирост в высоту падает.

Ulmus procera
Бонсай
(Вяз малый)

Значение и применение

Молодые побеги служат веточным кормом скоту (листья и кора дерева).

Большую роль ильмы играют в озеленении городов и посёлков, широко используются для озеленения улиц, садов и парков, для обсадки дорог, а также в защитных лесонасаждениях. Являются основными парковыми породами Европы, Северной Америки и средних и южных районов Европейской части России. Хорошо переносят подрезку и долго сохраняют созданную форму, используются в стриженных сооружениях. Однако часто ильмовые насаждения в степях неустойчивы и сильно страдают от вредителей.

Луб, невысокого качества, используется на кровлю, короба и покрышку саней.

Кора — на дубление и получение красок.

Древесина

Свойство древесины вяза сопротивляться гниению при постоянной сырости использовалось в средневековой Европе, где из выдолбленных изнутри стволов вяза изготавливали водопроводные трубы. Древесина вяза использовалась также для постройки опор первого Лондонского моста. Однако эта устойчивость к гниению в воде теряется при контакте с почвой.[6]

Древесина вяза с тёмно-коричневым ядром и более светлой заболонью, кольцепоровая с характерным рисунком в виде параллельных или ломано-тангентальных полос; сердцевинные лучи узкие. Древесина крепкая, твёрдая, упругая, вязкая, трудно колется, хорошо поддаётся обработке. Плотность сухой древесины вяза колеблется в зависимости от вида и составляет в среднем 560 кг на м³[6]. Широко употребляется мебельной промышленности, столярном и машиностроительном производствах. Особенно ценится наплыв карагача, дающий красивый рисунок при распилке.

Дрова ильмовых пород обладают высокой теплотворной способностью, так же как и уголь.

Классификация

Таксономия

Род Вяз входит в семейство Вязовые (Ulmaceae) порядка Розоцветные (Proteales).

 ещё 8 семейств
(согласно Системе APG II)
 
   около 40 видов
 порядок Розоцветные  род Вяз 
      
 отдел Цветковые, или Покрытосеменные  семейство Розоцветные  
     
 ещё 44 порядка цветковых растений
(согласно Системе APG II)
 ещё около 9 родов 
   

Виды

Список видов создан на основе базы данных Germplasm Resources Information Network (GRIN)[7].

В квадратных скобках в конце строки — ссылка на страницу таксона на сайте GRIN.

Полужирным шрифтом выделены виды, произрастающие на территории России и сопредельных стран[8].

  • Ulmus alata Michx. [1]
  • Ulmus americana L. — Вяз американский [2]
  • Ulmus androssowii Litv. — Вяз Андросова [3]
  • Ulmus crassifolia Nutt. [4]
  • Ulmus davidiana Planch. [5]
  • Ulmus densa Litv. — Вяз густой [6]
  • Ulmus elliptica K.Koch — Вяз эллиптический [7]
  • Ulmus glabra Huds. — Вяз горный, или Вяз шершавый [8]
  • Ulmus harbinensis S.Q.Nie & G.Q.Huang [9]
  • Ulmus ×hollandica Mill. [10]
  • Ulmus laciniata (Trautv.) Mayr — Вяз лопастной [11]
  • Ulmus laevis Pall. — Вяз гладкий [12]
  • Ulmus macrocarpa Hance — Вяз крупноплодный [13]
  • Ulmus mexicana (Liebm.) Planch. [14]
  • Ulmus minor Mill. — Вяз малый, или Берест [15]
  • Ulmus parvifolia Jacq. — Вяз мелколистный [16]
  • Ulmus procera Salisb. [17]
  • Ulmus pumila L. — Вяз приземистый [18]
  • Ulmus rubra Muhl. [19]
  • Ulmus serotina Sarg. [20]
  • Ulmus szechuanica W.P.Fang [21]
  • Ulmus thomasii Sarg. [22]
  • Ulmus villosa Brandis ex Gamble [23]
  • Ulmus ×viminalis Lodd. ex Bean [24]
  • Ulmus wallichiana Planch. [25]

Примечания

  1. Используется также название Покрытосеменные.
  2. Об условности указания класса двудольных в качестве вышестоящего таксона для описываемой в данной статье группы растений см. раздел «Системы APG» статьи «Двудольные».
  3. По данным сайта GRIN (см. карточку растения).
  4. http://www.unisci.com/stories/20013/0828015.htm — University of Abertay Dundee. The Biochemist, August 2001
  5. http://www.ulmen-handbuch.de/handbuch/ulmus/gattung_ulmus.html «Das Handbuch der Ulmengewächse», Dr. Gordon Mackenthun
  6. 1 2 Elm. Архивировано из первоисточника 30 ноября 2012.. Niche Timbers. Проверено 19 августа 2009.
  7. GRIN Species Records of Ulmus. Архивировано из первоисточника 30 ноября 2012. (Проверено 18 января 2011)
  8. Ярмоленко А. В. Род 369. Ильм, Вяз или Берест — Ulmus L. // Флора СССР. В 30 т / Гл. ред. и ред. тома акад. В. Л. Комаров. — М.—Л.: Изд-во АН СССР, 1936. — Т. V. — С. 360—373. — 762 + XXVI с. — 5175 экз.

Литература

  • Род 1. Ulmus L. — Вяз, Ильм или Берест // Деревья и кустарники СССР. Дикорастущие, культивируемые и перспективные для интродукции. / Ред. тома С. Я. Соколов. — М.—Л.: Изд-во АН СССР, 1951. — Т. II. Покрытосеменные. — С. 494—510. — 612 с. — 2500 экз.
  • Род 369. Ильм, Вяз или Берест — Ulmus L. // Флора СССР. В 30 т / Гл. ред. и ред. тома акад. В. Л. Комаров. — М.—Л.: Изд-во АН СССР, 1936. — Т. V. — С. 360—373. — 762 + XXVI с. — 5175 экз.

Ссылки

  • Вяз — статья из Большой советской энциклопедии (Проверено 23 декабря 2009)
  • Собичевский В. Т., Вяз, дерево из семейства ильмовых // Энциклопедический словарь Брокгауза и Ефрона: В 86 томах (82 т. и 4 доп.). — СПб., 1890—1907.  (Проверено 23 декабря 2009)
  • Вяз-бонсай. Архивировано из первоисточника 30 ноября 2012. (Проверено 23 декабря 2009)
  • Ильм. Архивировано из первоисточника 30 ноября 2012. на сайте Forest.RU (Проверено 23 декабря 2009)
  • Ильм. Архивировано из первоисточника 30 ноября 2012. в Лесной энциклопедии  (Проверено 23 декабря 2009)
Кнопки

· Введение в Elm

Наш первый пример — счетчик, который можно увеличивать или уменьшать.

Я включил полную программу ниже. Нажмите синюю кнопку «Редактировать», чтобы изменить ее в онлайн-редакторе. Попробуйте изменить текст на одной из кнопок. Нажмите синюю кнопку прямо сейчас!

Редактировать

 Браузер импорта
импорт Html-разоблачения (Html, кнопка, div, текст)
импорт Html. Events (onClick)
-- ГЛАВНЫЙ
основной =
  Browser.sandbox {инициализация = инициализация, обновление = обновление, представление = представление}
-- МОДЕЛЬ
псевдоним типа Модель = Int
инициализация: Модель
инициализация =
  0
-- ОБНОВИТЬ
введите сообщение = приращение | Уменьшение
обновление: Сообщение -> Модель -> Модель
обновить модель сообщения =
  дело сообщение из
    Приращение ->
      модель + 1
    Уменьшение ->
      модель - 1
-- ПОСМОТРЕТЬ
представление: Модель -> Html Msg
модель просмотра =
  раздел []
    [кнопка [уменьшение onClick] [текст "-"]
    , div [] [текст (модель String.fromInt)]
    , кнопка [ Увеличение onClick ] [ текст "+" ]
    ]
 

Теперь, когда вы немного покопались в коде, у вас могут возникнуть вопросы. Что делает основное значение ? Как разные части сочетаются друг с другом? Давайте пройдемся по коду и поговорим об этом.

Примечание: В этом коде используются аннотации типов, псевдонимы типов и пользовательские типы. Тем не менее, цель этого раздела — дать представление об архитектуре Вяза, поэтому мы не будем рассматривать их чуть позже. Я призываю вас заглянуть вперед, если вы застряли на этих аспектах!

Главный

Основное значение является особенным в Elm. Он описывает то, что отображается на экране. В этом случае мы собираемся инициализировать наше приложение со значением init , функция view будет отображать все на экране, а пользовательский ввод будет передан функции update . Думайте об этом как о высокоуровневом описании нашей программы.

Модель

Моделирование данных чрезвычайно важно в Elm. Пункт модель предназначена для сбора всех сведений о вашем приложении в виде данных.

Чтобы сделать счетчик, нам нужно отслеживать число, которое увеличивается и уменьшается. Это означает, что наша модель на этот раз очень маленькая:

.
 псевдоним типа Модель = Int
 

Нам просто нужно значение Int для отслеживания текущего количества. Мы можем видеть это в нашем начальном значении:

 инициализация: Модель
инициализация =
  0
 

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

Посмотреть

У нас есть модель, но как показать ее на экране? Это роль функции view :

 вид: Модель -> Html Msg
модель просмотра =
  раздел []
    [кнопка [уменьшение onClick] [текст "-"]
    , div [] [текст (модель String.fromInt)]
    , кнопка [ Увеличение onClick ] [ текст "+" ]
    ]
 

Эта функция принимает в качестве аргумента модель . Он выводит HTML. Итак, мы говорим, что хотим показать кнопку уменьшения, текущий счет и кнопку увеличения.

Обратите внимание, что у нас есть обработчик onClick для каждой кнопки. Они говорят: , когда кто-то нажимает, генерировать сообщение . Таким образом, кнопка «плюс» генерирует сообщение Increment . Что это такое и куда оно девается? К функции обновления !

Обновление

Функция update описывает, как наша модель будет меняться с течением времени.

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

 тип Msg = приращение | Уменьшение
 

Оттуда функция update просто описывает, что делать, когда вы получаете одно из этих сообщений.

Обновление
: Сообщение -> Модель -> Модель
обновить модель сообщения =
  дело сообщение из
    Приращение ->
      модель + 1
    Уменьшение ->
      модель - 1
 

Если вы получаете сообщение Increment , вы увеличиваете модель. Если вы получаете сообщение Decrement , вы уменьшаете модель.

Итак, всякий раз, когда мы получаем сообщение, мы прогоняем его через обновите , чтобы получить новую модель. Затем мы вызываем view , чтобы выяснить, как отобразить новую модель на экране. Тогда повтори! Пользовательский ввод генерирует сообщение, обновление модели, просмотр ее на экране. и т.д.

Обзор

Теперь, когда вы увидели все части программы Elm, может быть немного легче увидеть, как они вписываются в диаграмму, которую мы видели ранее:

Elm начинает с рендеринга начального значения на экране. Оттуда вы входите в этот цикл:

  1. Дождитесь ввода данных пользователем.
  2. Отправить сообщение на обновить
  3. Произвести новую модель
  4. Вызовите просмотр , чтобы получить новый HTML
  5. Показать новый HTML на экране
  6. Повторить!

Это квинтэссенция The Elm Architecture. Каждый пример, который мы увидим в дальнейшем, будет небольшой вариацией этого базового шаблона.

Упражнение: Добавить кнопку для сброса счетчика на ноль:

  1. Добавьте вариант Reset к Msg типа
  2. Добавить ветку Reset в функцию обновления
  3. Добавить кнопку в функцию view .

Здесь вы можете отредактировать пример в онлайн-редакторе.

Если все в порядке, попробуйте добавить еще одну кнопку для увеличения с шагом 10.

Core Language · Введение в Elm

Начнем с понимания кода Elm!

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

Значения

Наименьший строительный блок в Elm называется значением . Сюда входят такие вещи, как 42 , True и "Привет!" .

Начнем с цифр:

94 . Он должен работать так же, как калькулятор!

Заниматься математикой — это хорошо и все такое, но в большинстве программ это удивительно редко! Гораздо чаще можно работать со строками следующим образом:

[ { «ввод»: «\»привет\»», «value»: «\u001b[93m\»привет\»\u001b[0m», «тип_»: «Строка» }, { «input»: «\»масло\» ++ \»летать\»», «value»: «\u001b[93m\»бабочка\»\u001b[0m», «тип_»: «Строка» } ]

Попробуйте соединить несколько строк с помощью (++) оператор ⬆️

Эти примитивные значения становятся более интересными, когда мы начинаем писать функции для их преобразования!

Примечание: Дополнительные сведения об операторах, таких как (+) и (/) и (++) , см. в документации к модулю Basics . В какой-то момент стоит прочитать все документы в этом пакете!

Функции

Функция — это способ преобразования значений. Берешь одно значение, а получаешь другое.

Например, вот функция приветствия , которая принимает имя и передает приветствие:

[ { «добавить-декл»: «приветствовать», «input»: «приветствуйте имя =\n \»Привет\» ++ имя ++ \»!\»\n», «значение»: «\u001b[36м<функция>\u001b[0м», «type_»: «Строка -> Строка» }, { «input»: «приветствовать \»Алису\»», «value»: «\u001b[93m\»Привет, Алиса!\»\u001b[0m», «тип_»: «Строка» }, { «input»: «приветствовать \»Боб\»», «value»: «\u001b[93m\»Привет, Боб!\»\u001b[0m», «тип_»: «Строка» } ]

Попробуйте поприветствовать кого-нибудь еще, например "Стокли" или "Кваме" ⬆️

Значения, передаваемые в функцию, обычно называются arguments , поэтому можно сказать: « приветствие — это функция, которая принимает один аргумент».

Хорошо, теперь, когда приветствия закончились, как насчет функции madlib , которая принимает два аргумента ?

[ { «добавить-декл»: «мадлиб», «input»: «madlib animal прилагательное =\n \»Показное\» ++ животное ++ \» носит \» ++ прилагательное ++ \» шорты.\»\n», «значение»: «\u001b[36м<функция>\u001b[0м», «type_»: «Строка -> Строка -> Строка» }, { «input»: «madlib \»кот\» \»эргономичный\»», «значение»: «[93m «Показушный кот носит эргономичные шорты».[0m], «тип_»: «Строка» }, { «input»: «madlib (\»масло\» ++ \»fly\») \»металлик\»», «value»: «\u001b[93m\»Показная бабочка носит металлические шорты.\»\u001b[0m», «тип_»: «Строка» } ]

Попробуйте передать два аргумента функции madlib ⬆️

Обратите внимание, как мы использовали круглые скобки, чтобы сгруппировать "масло" ++ "летать" вместе во втором примере. Каждый аргумент должен быть примитивным значением, например "кошка" или нужно в скобках!

Примечание: Люди, пришедшие из таких языков, как JavaScript, могут быть удивлены тем, что функции здесь выглядят по-другому:

 madlib "кот" "эргономичный" -- Вяз
madlib("кот", "эргономичный") // JavaScript
madlib ("масло" ++ "летать") "металлик" -- Вяз
madlib("масло" + "летать", "металлик") // JavaScript
 

Поначалу это может удивить, но в конечном итоге этот стиль использует меньше скобок и запятых. Это заставляет язык чувствовать себя действительно чистым и минимальным, как только вы к нему привыкнете!

Если Выражения

Если вы хотите иметь условное поведение в Elm, вы используете выражение if.

Давайте создадим новую функцию приветствия , которая будет уважительно относиться к президенту Аврааму Линкольну:

[ { «добавить-декл»: «приветствовать», «input»: «greet name =\n if name == \»Авраам Линкольн\» then\n \»Здравствуйте, господин президент!\»\n else\n \»Эй!\»\n», «значение»: «\u001b[36м<функция>\u001b[0м», «type_»: «Строка -> Строка» }, { «input»: «приветствовать \»Том\»», «значение»: «[93м \»Эй!\»[0м», «тип_»: «Строка» }, { «input»: «приветствовать \»Авраама Линкольна\»», «value»: «\u001b[93m\»Здравствуйте, господин Президент!\»\u001[0m», «тип_»: «Строка» } ]

Возможно, есть и другие дела, но пока этого достаточно!

Списки

Списки — одна из самых распространенных структур данных в Elm. Они содержат последовательность связанных элементов, подобно массивам в JavaScript.

Списки могут содержать множество значений. Все эти значения должны иметь один и тот же тип. Вот несколько примеров, в которых используются функции из Список модуль:

[ { «добавить-указать»: «имена», «input»: «names =\n [ \»Алиса\», \»Боб\», \»Чак\» ]\n», «value»: «[\u001b[93m\»Алиса\»\u001b[0m,\u001b[93m\»Боб\»\u001b[0m,\u001b[93m\»Чак\»\u001b[0m]», «type_»: «Список строк» }, { «input»: «List.isПустые имена», «значение»: «\u001b[96mFalse\u001b[0m», «type_»: «Бул» }, { «input»: «Имена List.length», «значение»: «\u001b[95м3[0м», «тип_»: «Строка» }, { «input»: «Список.обратных имен», «значение»: «[\u001b[93м\»Чак\»\[0м,\u001b[93м\»Боб\»\u001b[0м,[93м\»Алиса\»\u001b[0м]», «type_»: «Список строк» }, { «добавить-указать»: «числа», «ввод»: «числа =\n [4,3,2,1]\n», «значение»: «[\[95м4\u001b[0м,\u001b[95м3\u001b[0м,\u001b[95м2\u001b[0м,\u001b[95м1][0м]», «type_»: «Номер списка» }, { «input»: «Список. сортировать номера», «значение»: «[\[95м1\u001b[0м,\u001b[95м2\u001b[0м,\u001b[95м3\u001b[0м,\u001b[95м4\u001b[0м]», «type_»: «Номер списка» }, { «добавить-указать»: «приращение», «input»: «приращение n =\n n + 1\n», «значение»: «\u001b[36м<функция>\u001b[0м», «type_»: «число -> число» }, { «input»: «Числа увеличения List.map», «значение»: «[\u001b[95м5[0м,[95м4[0м,[95м3][0м,[95м2[0м]», «type_»: «Номер списка» } ]

Попробуйте создать свой собственный список и использовать такие функции, как List.length ⬆️

И помните, все элементы списка должны быть одного типа!

Кортежи

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

[ { «добавить-декларировать»: «ХорошееИмя», «input»: «isGoodName name =\n if String.length name <= 20 then\n (True, \"имя принято!\")\n else\n (False, \"имя слишком длинное; пожалуйста, ограничьте его до 20 символов\")\n", "значение": "\u001b[36м<функция>\u001b[0м», «type_»: «Строка -> ( Bool, Строка )» }, { «input»: «isGoodName \»Том\»», «value»: «(\u001b[96mTrue\u001b[0m,[93m\»имя принято!\»\u001b[0m)», «type_»: «( Bool, String )» } ]

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

записей

Запись может содержать много значений, и каждое значение связано с именем.

Вот запись, представляющая британского экономиста Джона А. Хобсона:

[ { «добавить-декл»: «Джон», «input»: «john =\n { first = \»John\»\n , last = \»Hobson\»\n , age = 81\n }\n», «value»: «{ \u001b[37mage\u001b[0m = \u001b[95m81\u001b[0m, \u001b[37mfirst\u001b[0m = \u001b[93m\»Джон\»\u001b[0m, \u001b[ 37mlast[0m=[93m\»Хобсон\»\u001b[0m}», «type_»: «{возраст: число, первый: строка, последний: строка}» }, { «вход»: «Джон.последний», «значение»: «[93м\»Хобсон\»[0м», «тип_»: «Строка» } ]

Мы определили запись с тремя полями, содержащими информацию об имени и возрасте Джона.

Попробуйте получить доступ к другим полям, например john.age ⬆️

Вы также можете получить доступ к полям записи с помощью «функции доступа к полям», например:

[ { «добавить-декл»: «Джон», «input»: «Джон = {первый = \»Джон\», последний = \»Хобсон\», возраст = 81}», «значение»: «{ \u001b[37mage[0m = \u001b[95m81\u001b[0m, \u001b[37mfirst\u001b[0m = \u001b[93м \»Джон\»\u001b[0м, \u001b[37мпост[0м=[93м\»Хобсон\»\u001b[0м}», «type_»: «{возраст: число, первый: строка, последний: строка}» }, { «input»: «. последний Джон», «value»: «\u001b[93m\»Хобсон\»\u001b[0m», «тип_»: «Строка» }, { «input»: «List.map .last [джон,джон,джон]», «value»: «[\u001b[93м\»Хобсон\»\u001b[0м,\u001b[93м\»Хобсон\»\u001b[0м,\u001b[93м\»Хобсон\»\u001b[0м]», «type_»: «Список строк» } ]

Часто бывает полезно обновить значений в записи:

[ { «добавить-декл»: «Джон», «input»: «Джон = {первый = \»Джон\», последний = \»Хобсон\», возраст = 81}», «value»: «{ \u001b[37mage\u001b[0m = \u001b[95m81\u001b[0m, \u001b[37mfirst\u001b[0m = \u001b[93m\»Джон\»\u001b[0m, \u001b[ 37mlast[0m=[93m\»Хобсон\»\u001b[0m}», «type_»: «{возраст: число, первый: строка, последний: строка}» }, { «input»: «{Джон | последний = \»Адамс\» }», «value»: «{ \u001b[37mage\u001b[0m = \u001b[95m81\u001b[0m, \u001b[37mfirst\u001b[0m = \u001b[93m\»Джон\»\u001b[0m, \u001b[ 37мласт[0м=[93м \»Адамс\»[0м}», «type_»: «{возраст: число, первый: строка, последний: строка}» }, { «input»: «{Джон | возраст = 22}», «значение»: «{ \u001b[37mage\u001b[0m = \u001b[95m22\u001b[0m, \u001b[37mfirst\u001b[0m = \u001b[93m\»Джон\»\u001b[0m, \u001b[ 37mlast[0m=[93m\»Хобсон\»\u001b[0m}», «type_»: «{возраст: число, первый: строка, последний: строка}» } ]

Если бы вы хотели произнести эти выражения вслух, вы бы сказали что-то вроде: «Я хочу новую версию Джона, где его фамилия Адамс» или «Джон, возраст которого 22 года».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *