相关疑难解决方法(0)

仿函数如何在哈斯克尔工作?

我正在努力学习Haskell,而且我已经完成了所有的基础知识.但是现在我被卡住了,试图让我的头围绕着仿函数.

我读到"仿函数将一个类别转换为另一个类别".这是什么意思?

我知道这有很多问题,但是有人能给我一个关于仿函数的简单英语解释或者一个简单的用例吗?

haskell functional-programming functor

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

我教ghci来编译我的StackOverflow帖子.我可以让它更光滑吗?

Haskell Stack Overflow布局预处理器

module StackOverflow where  -- yes, the source of this post compiles as is
Run Code Online (Sandbox Code Playgroud)

如果您想先玩这个(1/2向下),请跳到下面的操作以使其正常工作.如果我稍微
停下来,你会跳到我想要的东西,你只想找到我正在寻求的帮助.

TLDR问题摘要:

  1. 我可以使用ghci将文件名完成添加到:so我在我定义的命令中ghci.conf吗?
  2. 我可以以某种方式定义一个ghci命令来返回编译代码而不是返回一个ghci命令,或者ghci是否有更好的方法让我将Haskell代码作为特定于文件扩展名的预处理器插入,因此:l可以用于.hs.lhs像往常一样的文件,但使用我的手写预处理器的.so文件?

背景:

Haskell支持.lhs源文件中的文字编程,有两种方式:

  • 乳胶风格\begin{code}\end{code}.
  • Bird track:Code开头>,其他任何东西都是评论.
    代码和注释之间必须有一个空行(以防止意外误操作>).

Bird不跟踪类似于StackOverflow代码块的规则声音吗?

参考文献: 1. 将.ghci手册 2. GHCI haskellwiki 3. 关于尼尔·米切尔的博客:{,并:}在.ghci

预处理器

我喜欢在文本编辑器中编写SO答案,我喜欢发表一个包含有效代码的帖子,但最后还是>在发布之前我必须编辑的注释块或者s,这不那么有趣.

所以,我自己写了一个预处理器.

  • 如果我在代码块中粘贴了一些ghci,它通常以*或开头:. …

haskell ghci

34
推荐指数
1
解决办法
1883
查看次数

我怎么能用更小的技巧来使用更多的守卫呢?

当我在ghci中编译我的代码时,没有问题.它可以正确编译.但是,如果我尝试在拥抱中编译它,我会收到错误"编译代码太复杂".我认为问题是由于许多|条件造成的.

如果我将其更改为使用if/else,则没有问题.我可以添加if/else语句100次,但这将非常烦人和恼人.而不是那样,我试图在20-30 |条件之后放置if/else语句,但是|如果语句如下所示我无法进行工作:

f x y z     
    | cond1 = e1
    | cond2 = e2
    ...
    if (1)
    then
    | cond30 = e30
    | cond31 = e31
    ...
    else
    | cond61 = e61
    | cond62 = e62
Run Code Online (Sandbox Code Playgroud)

如何以最少的努力修复代码?完整的代码在hpaste上,因为它比StackOverflow的问题大小限制更长.

haskell guard

0
推荐指数
1
解决办法
190
查看次数

标签 统计

haskell ×3

functional-programming ×1

functor ×1

ghci ×1

guard ×1