小编O.F*_*.F.的帖子

Ruby的"每个"方法不会遍历数组中的所有项目?

我正在尝试以下代码:

a = [1,2,3,4]  
a.each do  
  puts "Removing #{a.last}"  
  a.pop  
end
Run Code Online (Sandbox Code Playgroud)

但是没有弹出所有四个数字我只得到第一个3.确实,做一些像放置a.length的东西返回1并且放置它显示元素"1"仍然存在.

我该如何正确使用该方法?(我使用的是Ruby 2.0).

ruby each loops

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

在 FsCheck 中生成自定义数据

我有一个FsCheck问题:
我有以下记录类型(我事先说,我被告知我的单案例 DU 可能是一种矫枉过正,但我​​发现它们描述了域,因此是必要的,我会除非必须,否则不要删除它们):

type Name = Name of string
type Quality = Quality of int
type ShelfLife = Days of int
type Style = Plain | Aged | Legendary

type Item = {
    Name: Name
    Quality: Quality
    ShelfLife: ShelfLife
    Style: Style
}
Run Code Online (Sandbox Code Playgroud)

假设我已经定义了函数repeat: Int -> ('a -> 'a) -> 'adecreaseQuality: Item -> Item,我想编写一个FsCheck检查不变量的测试:任何样式为 OTHER THAN Legendary 的项目,在 100 天过去后,质量为 0

我的问题是我不知道以下内容FsCheck
1. 如何定义一个自定义生成器来生成样式不是传奇的项目?相比之下,我如何定义Legendary 类型的项目(以测试两种类型)?

我调查过: …

f# fscheck

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

Python:try/except调用返回错误的值,调用except子句不需要

在附加的代码片段中,目标是接收用户输入,并且根据它是否为整数,返回整数或递归调用函数,直到给出有效整数.

def verify_input(msg, str_exp=True, req_str=None):
    user_input = input(msg)
    if str_exp:
        pass # TODO: implement later
    else:
        try:
            return int(user_input)
        except ValueError:
            verify_input("Enter a whole number please. ", str_exp=False)
Run Code Online (Sandbox Code Playgroud)

如果用户在第一个函数调用上正确响应(即整数),则确实从函数返回整数.

问题是,如果用户行为不端并且首先没有响应整数,只在后续尝试中给出整数,我可以看到,使用调试器,该try子句总是转到except子句...即使第二次调用是整数.

综上所述:
verify_input(12)#=>返回12
verify_input("Hello")#=>返回调用verify_input ---> user给出答案"12"=>返回None.

提前致谢.

python recursion try-except

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

向(F#)记录中添加“抽象”方法

我创建了以下记录,以尝试将C#类转换为F#:

    type Days = Days of int
    type Value = Value of int
    type Item = {
        Name: string
        Expires: Days
        Value: Value
    }
Run Code Online (Sandbox Code Playgroud)

问题是我还需要每个Item都有一个“方法”,以运行另一个尚未定义的函数,该函数handleDevalue作用于Item本身以操纵Item的Value值。

handleDevalue功能是依赖于Expires这样每个项目的实施,这将是不同的,唯一的共同点是函数的名称和签名(该项目的性质和Item -> Item)。
在C#代码上,我正在翻译此方法,该方法abstractItem类上定义,并在实例化的每个项目(其中每个项目都是从继承的子类Item)中覆盖。

我尝试过的,直到现在都没有成功

  1. 在记录上添加一个抽象方法:...} with abstract handleDevalue: Item -> Item
    1.1 失败的原因:IDE告诉我“不能在此处添加抽象作为增强”(或类似的效果)。(我对F#的了解还不够,甚至不知道它是什么意思,但是编译器不会让它如此编译...否)。
  2. handleDevalue作为功​​能添加到记录中:{... HandleDevalue: Item -> Item...}
    2.1。失败原因:此功能取决于Expires属性。显然,记录的字段彼此独立,此外...函数将如何“知道”要对哪个项目执行操作(应该对项目本身进行操作)?this在“实例化”记录时(即no {...handleDevalue = fun this -> …

f# record abstract c#-to-f#

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

标签 统计

f# ×2

abstract ×1

c#-to-f# ×1

each ×1

fscheck ×1

loops ×1

python ×1

record ×1

recursion ×1

ruby ×1

try-except ×1