• [PureScript] Break up Expressions into Cases in PureScript using Simple Pattern Matching


    Pattern matching in functional programming languages is a way to break up expressions into individual cases.

    We are going to go through how to pattern match in PureScript with simple patterns, guards, array patterns and record patterns.

    greater :: Int -> Int -> Int
    greater n m | n > m = n       -- '|' is called guard, the same as if else
                | otherwise = m
    
    isEmpty :: forall a. Array a -> Boolean  -- a in array should have same type
    isEmpty [] = true
    isEmpty _ = false
    main = render =<< withConsole do 
      log $ show $ greater 3 2 -- 3
      log $ show $ greater 11 22 -- 22
      log $ show $ isEmpty [] -- true
      log $ show $ isEmpty [1, 2] -- false

    --

    Full code:

    module Main where
    
    import Prelude
    import Control.Monad.Eff.Console (log)
    import TryPureScript
    
    myTypes :: Int
    myTypes = 1
    
    -- add (a -> (b -> (a + b)))
    add :: Int -> Int -> Int
    add a b = a + b
    addMe = a ->  -> a + b
    
    -- inc (a -> (add 1 a))
    inc :: Int -> Int
    inc = add 1
    
    -- Data constructors
    data FooType = Foo | Bar String
    
    runFoo :: FooType -> String
    -- runFoo take a param Foo which should be string
    runFoo Foo = "it is foo"
    -- runFoo also can take Bar and String
    -- <> is similar to str.concat isn JS
    runFoo (Bar s) = "Yeah it's Bar and " <> s
    
    
    greater :: Int -> Int -> Int
    greater n m | n > m = n       -- '|' is called guard, the same as if else
                | otherwise = m
    
    isEmpty :: forall a. Array a -> Boolean  -- a in array should have same type
    isEmpty [] = true
    isEmpty _ = false
    
    main = render =<< withConsole do
      log $ show $ greater 3 2
      log $ show $ greater 11 22
      log $ show $ isEmpty []
      log $ show $ isEmpty [1, 2]
  • 相关阅读:
    sparksql
    axis2客户端
    windows命令
    如何进行大数据分析及处理(总结)
    linux下如何关闭防火墙?如何查看防火墙当前的状态
    mysql 快速简单安装法
    数据分析笔记
    建设数据仓库的八个步骤
    Java工作记录
    IIS虚拟目录和应用程序
  • 原文地址:https://www.cnblogs.com/Answer1215/p/10632869.html
Copyright © 2020-2023  润新知