小编Jam*_*ell的帖子

Haskell - 更有效的方法来完成算法?

我创建了一个算法,该算法采用非负的Int值,表示总分钟数,并返回给出(天,小时,分钟)对应的三元组.

这是我的代码:

calcdays :: Int -> Int
calcdays x = x `div` (24*60)

calchours :: Int -> Int
calchours x = (x - ((calcdays x)*24*60)) `div` 60

calcmins :: Int -> Int
calcmins x = (x - ((calcdays x)*24*60) - ((calchours x)*60))

dayshoursmins :: Int -> (Int,Int,Int)
dayshoursmins x = (calcdays x, calchours x, calcmins x)
Run Code Online (Sandbox Code Playgroud)

仅使用基本的Haskell操作(守卫,div,mod等),是否有更简单的方法来编程此功能?

编辑:

我使用下面的建议使这段代码更简单,虽然不像qoutRem解决方案那么简单,我想我可能会发布它:

calcdays :: Int -> Int
calcdays x = x `div` (24*60)

calchours :: Int -> Int
calchours x = (x `mod` …
Run Code Online (Sandbox Code Playgroud)

algorithm haskell

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

Haskell - C栈溢出

我刚刚被介绍给Haskell,所以我对如何使用该语言进行编码并不是很熟练,因此,如果这是重复的话,对不起,但是我不理解用该语言编写的其他代码.

我正在尝试编写一个算法,该算法将采用不超过给定值的正整数甚至整数的总和.我试图编写代码但是我一直在收到C堆栈溢出错误.

这是我的代码:

sumint :: Int -> Int
sumint x
  | x==0 = 0  
  | x==1 = 1
  | (x `mod` 2 == 0) && (x >= 2) = x + (sumint x-2)
  | (x `mod` 2 /= 0) && (x >= 1) = x + (sumint x-1)
Run Code Online (Sandbox Code Playgroud)

我错在哪里得到这个错误?

algorithm haskell

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

Array.push() 函数的替代代码

我被告知不要在我的课程中使用推送,因为我们只能使用我们教过的代码,我觉得这很荒谬。

我已经多次编写了 200 多行包含推送功能的代码。是否有一个简单的代码替代我可以为它实现的推送功能?

javascript arrays

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

Haskell - 创建具有用户输入的高度和宽度的1s矩形

我试图创建一个函数,它将采取两个整数值,对应于1s矩形的宽度和高度,输出如下:

 Main> rectangle 3 4
 1111
 1111
 1111
Run Code Online (Sandbox Code Playgroud)

我是Haskell的初学者并且没有经验,所以任何指针都会受到赞赏,因此只应该使用基本的Haskell操作.谢谢.

haskell

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

标签 统计

haskell ×3

algorithm ×2

arrays ×1

javascript ×1