相关疑难解决方法(0)

monad在纯函数式编程中使用IO的替代方法是什么?

monad被描述为处理IO的haskell解决方案.我想知道是否有其他方法可以用纯函数式语言处理IO.

io monads functional-programming side-effects

34
推荐指数
6
解决办法
4467
查看次数

功能编程中的副作用

在功能编程书中,作者提到以下是副作用.

  1. 修改变量
  2. 修改数据结构
  3. 在对象上设置字段
  4. 抛出异常或因错误而停止
  5. 打印到控制台或读取用户输入
  6. 读取或写入文件
  7. 在屏幕上绘图

我只是想知道如果它们是副作用,如果没有读取或写入文件就可以编写纯函数程序.如果是,那么在功能世界中实现这一目标的常用方法是什么?

谢谢,穆罕默德

functional-programming side-effects

8
推荐指数
2
解决办法
2330
查看次数

功能编程构造用于组成身份和副作用

函数式编程是否具有此逻辑的标准结构?

const passAround = (f) => (x) => {
  f(x);

  return x;
};
Run Code Online (Sandbox Code Playgroud)

这使我能够组合具有副作用且没有返回值的函数,例如console.log.它不像任务,因为我不想表示副作用的状态.

javascript functional-programming side-effects

5
推荐指数
2
解决办法
224
查看次数

使用 fn:random-number-generator 多次产生随机数

我尝试编写一个简单的函数,每次调用它时都会为我提供一个随机字母,但是我很难将我的想法与函数式编程方法的概念结合起来。沿途的一些帮助将不胜感激!我的代码看起来像:

<xd:doc>
        <xd:desc>Provides one random letter, if the type is provided it returns a letter of thet type</xd:desc>
        <xd:param name="type">The type of letter to return, one of (A,a,B,b)</xd:param>
    </xd:doc>
    <xsl:function name="gdpr:randomLetter" as="xs:string">
        <xsl:param name="type" as="xs:string"></xsl:param>
        <xsl:choose>
            <xsl:when test="$type = 'A'">
                <xsl:variable name="randomNumber" select="random-number-generator()['next']?permute(1 to 7)[1]"/>
                <xsl:variable name="letters" select="('A','O','U','E','I','Y','Q')"/>
                <xsl:value-of select="$letters[$randomNumber]"/>
            </xsl:when>
            <xsl:when test="$type = 'a'">
                <xsl:variable name="randomNumber" select="random-number-generator()['next']?permute(1 to 7)[1]"/>
                <xsl:variable name="letters" select="('a','o','u','e','i','y','q')"/>
                <xsl:value-of select="$letters[$randomNumber]"/>
            </xsl:when>
            <xsl:when test="$type = 'B'">
                <xsl:variable name="randomNumber" select="random-number-generator()['next']?permute(1 to 19)[1]"/>
                <xsl:variable name="letters" select="('W','R','T','P','S','D','F','G','H','J','K','L','M','N','B','V','C','X','Z')"/>
                <xsl:value-of select="$letters[$randomNumber]"/> …
Run Code Online (Sandbox Code Playgroud)

xslt xslt-3.0

2
推荐指数
1
解决办法
614
查看次数