#purescript
#purescript
Вопрос:
У меня проблема с моим кодом, я пытаюсь его скомпилировать, но он выдает, что не удалось сопоставить элемент Maybe с элементом
Почему? как работает Maybe?, как мне преобразовать его в значение? почему так сложно понять монады и функторы, и почему не существует простой библиотеки, позволяющей новичку начать работу с purescript? 😛
(для тех, кто не понял, я просто задал первые 3)
module Main where
import Prelude --(Unit, bind, pure, ($), (<$>))
import Effect (Effect)
import Data.Maybe --(Just,Maybe,fromJust, fromMaybe)
import Data.Foldable (traverse_)
import Effect.Console (log)
import Web.HTML (window)
import Web.HTML.Window (document)
import Web.HTML.HTMLDocument (toNonElementParentNode)
import Web.Event.Event (Event, target)
import Web.HTML.HTMLInputElement (value, fromEventTarget)
import Web.DOM.NonElementParentNode (NonElementParentNode,getElementById)
import Web.DOM.Node (setTextContent)
import Web.DOM.Element (Element,toNode)
import Web.Event.EventTarget (addEventListener)
pname = "#inputName" :: String
bname = "#badgeName" :: String
main :: Effect Unit
main = do
nod1 <- returnNonElementParentNode
--querySelector :: QuerySelector -> ParentNode -> Effect (Maybe Element)
elementTarget <- getElementById pname nod1
--addEventListener :: EventType -> EventListener -> Boolean -> EventTarget
addEventListener "input" updateBadge false elementTarget
updateBadge :: Event -> Unit
updateBadge event = do
nod2 <- returnNonElementParentNode
elementTarget <- getElementById bname nod2
tget <- target event
inml <- fromEventTarget tget
input <- value inml
badge <- toNode (pure elementTarget)
if not(badge == Nothing)
then setTextContent input (toNode badge)
else Nothing
returnNonElementParentNode :: Effect NonElementParentNode
returnNonElementParentNode = do
win <- window
doc <- document win
--let nd = toNonElementParentNode doc
let
nod = toNonElementParentNode doc
pure nod
Я просто хочу понять, как получить входное значение из HTMLInputElement и передать его в textContent другого HTMLElement
в значительной степени, как преобразовать возможно в значение для передачи функции toNode
Комментарии:
1. Разве в purescript нет соответствия шаблону? Если он имеет то же значение, что и Haskell, вы могли бы просто заменить это
if
наcase
, и тогда внутриJust
стороны у вас было бы чистое значение.
Ответ №1:
- сопоставление с шаблоном … https://github.com/purescript/documentation/blob/master/language/Pattern-Matching.md
- Данные.Возможно #v: возможно … https://pursuit.purescript.org/packages/purescript-maybe/4.0.1/docs/Data .Возможно #v: возможно
- Данные.Возможно #v: из Maybe … https://pursuit.purescript.org/packages/purescript-maybe/4.0.1/docs/Data .Возможно #v: из maybe
- Частично.Небезопасный#v: небезопасные части Данные.Может быть,#v:fromJusthttps://pursuit.purescript.org/packages/purescript-partial/2.0.1/docs/Partial .Небезопасный#v: небезопасный раздел https://pursuit.purescript.org/packages/purescript-maybe/4.0.1/docs/Data .Возможно #v: fromJust