小编Jea*_*ouX的帖子

Haskell在多大程度上懒惰?

我需要对Haskell的懒惰做一些澄清.

如果我有这个功能:

myFunction arg
  | arg == 1 = a
  | arg == 2 = a*b
  | arg == 3 = b+c
  | otherwise = (a+b)*c
     where
            a = ...
            b = ...
            c = ...
            d = ...
Run Code Online (Sandbox Code Playgroud)

当我打电话时myFunction 1,Haskell将只评估a = ...函数,既不是b也不是c,也不是d.

但如果我写

myFunction arg
  | arg == 1 = a
  | arg == 2 = a*b
  | arg == 3 = b+c
  | otherwise = (a+b)*c
     where
            (a,b,c,d) …
Run Code Online (Sandbox Code Playgroud)

haskell lazy-evaluation

28
推荐指数
4
解决办法
2807
查看次数

使用 Markdown 和 pandoc 将 HTML 中的文本/图片居中

我正在尝试用hakyllin markdownvia写一篇文章pandoc

我成功地添加了一些图片、表格和代码块markdown。但是,我想将我的图片和一些文字段落居中。

是否有可能中心的文字和配图pandocmarkdown标记语言?

markdown pandoc hakyll

8
推荐指数
1
解决办法
4662
查看次数

Haskell的工程符号

是否存在提供工程符号格式(如String)的现有Haskell函数?

如果没有,我读到printf可以通过添加实例来扩展PrintfArg.你相信这是一个很好的解决方案吗?


通过工程符号,我的意思是指数符号,其指数是3倍数.

floating-point formatting haskell scientific-notation floating-point-precision

7
推荐指数
1
解决办法
429
查看次数

使用Perl对具有特定字母顺序的字符串进行排序

我正在尝试使用Perl对具有特定字母顺序的名称列表进行排序,以执行一些特殊功能.
排序的工作方式sort { $a cmp $b }与使用不同连续字母的方式相同.
例如,使用任意字符顺序"abdrtwsuiopqe987654"进行排序......

我试图处理,sort { $a myFunction $b }但我是Perl的新手,我不知道如何正确组织myFunction以获得我想要的东西.

  • 是否有提供此功能的特定功能(包)?
  • 你有一个处理字符串的自定义排序函数的例子吗?
  • 你知道如何(或在哪个源文件中)cmp使用Perl实现的功能,看它是如何工作的?

sorting perl cpan

6
推荐指数
1
解决办法
220
查看次数

Haskeline自动完成的模糊类型变量

我正在尝试使用Haskeline实现自动完成功能:

import System.Console.Haskeline
import System.Console.Haskeline.IO
import Data.List

mySettings :: Settings IO
mySettings = defaultSettings {
                                historyFile = Just "myhist"
                              , complete = completeWord Nothing " \t" $ return . search
                              }

keywords :: [String]
keywords = ["Point","Line","Circle","Sphere"]

search :: String -> [Completion]
search str = map simpleCompletion $ filter (str `isPrefixOf`) keywords

main :: IO ()
main = do
        inputLine <- initializeInput mySettings
        putStrLn "done"
Run Code Online (Sandbox Code Playgroud)

但我对这个GHC错误感到有点失望:

Ambiguous type variable `t0' in the constraint:
  (Control.Monad.IO.Class.MonadIO t0)
    arising from a …
Run Code Online (Sandbox Code Playgroud)

haskell haskeline

5
推荐指数
1
解决办法
81
查看次数

使用Haskell修改数字类型

我正在研究一个小型符号库,用Haskell执行一些计算.

为了表示符号操作,我创建了这种数据类型:

data MathExpress =                        -- A math expression
       MathDouble Double                  -- Represent a number      
     | MathAdd MathExpress MathExpress    -- Add 2 expressions 
     | MathSoust MathExpress MathExpress  -- Subtract 2 expressions
     | ...
Run Code Online (Sandbox Code Playgroud)

我设法创建一个Num实例,以便能够使用运算符+-我的类型MathExpress.

instance Num MathExpress where
  (+) (expa) (expb)  = MathAdd expa expb
  (-) (expa) (expb)  = MathSoust expa expb
  ...
Run Code Online (Sandbox Code Playgroud)

当我写:

( MathExpress expression ) * MathDouble 2.0
Run Code Online (Sandbox Code Playgroud)

它的工作原理!

现在,我希望能够使用+-数字(DoubleInt)编写更简单:

( …
Run Code Online (Sandbox Code Playgroud)

haskell instance ghc

4
推荐指数
1
解决办法
63
查看次数

匹配正整数与haskell

模式匹配是否可以匹配一系列值?例如 :

  • 整个正整数?
  • 奇数 ?
  • 一系列价值观?

haskell pattern-matching ghc

4
推荐指数
2
解决办法
807
查看次数

Haskell函数以递归方式将操作应用于参数

Haskell中是否有内置函数以递归方式将参数列表应用于参数?

我有一个应用于Double(乘法,加法,...)的操作列表,我想简单地得到结果.例如 :

operationList = [
                  (\v -> v/8+2)
                , (\v -> v-12)
                , (\v -> v*v)
                ]

func operationList 3
Run Code Online (Sandbox Code Playgroud)

func应该回来92,640625.

我在hoogle搜索签名,[(a -> a)] -> a -> a但我没有找到任何东西.

haskell ghc

4
推荐指数
2
解决办法
90
查看次数

如何使用自定义元数据过滤 Hakyll 帖子

我想根据元数据值过滤我网站的一些帖子。我想创建一个名为status(like titleor date)的特定元数据,它可以采用多个值(草稿、已发布、存档):

---
title: The title
author: Myself
date: 2016-11-29
tags: tag1, tag2
status: draft
---
Run Code Online (Sandbox Code Playgroud)

根据status元数据的价值,该帖子是否应该发布。

我查看了 hackage 文档,但不确定要使用的功能。

你知道如何用 Hakyll 做到这一点吗?

haskell hakyll

4
推荐指数
1
解决办法
158
查看次数

是否可以使用 Haddock 拥有仅文档文件?

我正在为 Haskell 模块编写文档,其中包含大量测试和示例。这使我的源文件很长(3000 行)。

我的想法是用我的完整示例和文档(没有函数定义)制作第二个源文件 (*.hs)。但是当我编写文档时,我的标题无法正确显示:

module JeanJouX.Numeric.Tests (
    -- | Introduction to my module
    --
    -- * Section 1
    -- ** Sub section 1
    -- doc text
    -- ...
    -- * Section 2
    -- ** Sub section 1
    -- 
Run Code Online (Sandbox Code Playgroud)

但是当我像这样打破我的来源时:

module JeanJouX.Numeric.Tests (
    -- | Introduction to my module
    --

    -- * Section 1
    -- ** Sub section 1
    -- doc text
    -- ...
    -- * Section 2
    -- ** Sub section 1
    -- 
Run Code Online (Sandbox Code Playgroud)

我的文档文本没有出现(我认为 Haddock 正在等待函数导出)。

是否可以仅以 …

documentation haskell haddock

4
推荐指数
1
解决办法
68
查看次数