小编Jon*_*off的帖子

处理Haskell中的大文件

我有一个大文件(4 +演出),简单地说,4字节浮点数.我想将它视为List,在某种意义上我希望能够使用map,filter,foldl等.但是,我想将输出写回输入,而不是生成带有输出的新列表.该文件,因此只需要在内存中加载一小部分文件.你可以说我是一个名为MutableFileList的类型

有没有人遇到过这种情况?而不是重新发明轮子我想知道是否有一个Hackish方式来处理这个?

haskell large-files large-scale

9
推荐指数
3
解决办法
1971
查看次数

了解复杂类型签名

我需要帮助理解来自Thrist包的这种类型签名.

import Prelude hiding ((.), id)
import Control.Category
import Data.Monoid
import Control.Arrow
import Control.Monad

foldlThirst :: (forall j k . (a +> j) -> (j ~> k) -> (a +> k))  
               -> (a +> b) 
               -> Thrist (~>) b c  
               -> (a +> c)
Run Code Online (Sandbox Code Playgroud)

我对几件事感到困惑.

首先是什么是+>和〜>符号?他们在哪里记录,他们叫什么?

但我的困惑确实就此止步.我意识到量化是描述Thrist类型的线程,但我不确定是否描述了第一个参数或整个函数的关系,或者谁知道......

在我看到存在量化的其他情况下,这个短语以句点结束,但这里以 - >结束,这是重要的吗?

syntax haskell types

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

元组函数的N-Ary版本

是否有具有的元组的功能,如n元版本库first,***等等,通过模板哈斯克尔(或使用其他一些方法).

理想情况下我想说

$(select 3 [0, 1])
Run Code Online (Sandbox Code Playgroud)

我们制作lambda

\(x, y, z) -> (x, y)
Run Code Online (Sandbox Code Playgroud)

以及***功能的通用

$(tapply 3 [(0, "f"), (1, "g"), (2, "h")])
Run Code Online (Sandbox Code Playgroud)

这将使lambda

\f g h (x, y, z) -> (f x, g y, h z)
Run Code Online (Sandbox Code Playgroud)

其他n-ary函数也不错,但这些是我目前需要的两个.

haskell

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

Heroku App正在读取database.yml文件

从我可以收集的内容来看,Heroku应该自动生成一个database.yml文件,并忽略本地文件.但是,我看到一个错误,这是不正确的,我对本地database.yml的更改正在影响Heroku应用程序.这是有问题的,因为我不知道如何设置文件的生成部分,以便Heroku可以找到正确的数据库.

例如,以下内容

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000
Run Code Online (Sandbox Code Playgroud)

然后是db:migration

$:~/Apps/DancingCupid/DancingCupid$ heroku rake --trace db:migrate
Run Code Online (Sandbox Code Playgroud)

吐出来

rake aborted!
unable to open database file
/app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:27:in `initialize' 
...
Run Code Online (Sandbox Code Playgroud)

根据我发送给生产的数据库类型,我可以得到不同的错误.

除了删除应用程序并制作新应用程序外,有没有办法解决这个问题?

ruby ruby-on-rails heroku

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

编写我的fmap时遇到问题

我正在尝试为这种类型编写一个fmap

data Triangle a  = Triangle {t0 :: Point a, t1 ::  Point a, t2 ::  Point a}
Run Code Online (Sandbox Code Playgroud)

其中Point定义为

data Point a = Point {px :: a, py :: a, pz :: a}
Run Code Online (Sandbox Code Playgroud)

而我的实例def是

instance Functor Triangle where 
    fmap f (Triangle v0 v1 v2) = Triangle (f v0) (f v1) (f v2)
Run Code Online (Sandbox Code Playgroud)

我收到以下恭维错误,我无法弄清楚为什么

 C:\Scripts\Haskell\Geometry.hs:88:1:
     Occurs check: cannot construct the infinite type: a = Point a
     When generalising the type(s) for `fmap'
     In the instance declaration for `Functor Triangle'

有任何想法吗?

haskell functor

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

这片土地上最快的Traversable实例是什么?

我正在使用广告库http://hackage.haskell.org/package/ad,我正在寻找最快的遍历来传递其各种功能.

理想情况下,它将是一个使用连续内存数组的数据结构,因此我可以将其传递给C++世界中的数值解算器.

什么是我最好的选择?

arrays performance haskell

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