小编ers*_*an9的帖子

翻转功能如何工作?

Haskell新手在这里.我正在通过了解你是一个haskell,并且遇到了翻转功能的这个定义.

flip' :: (a -> b -> c) -> (b -> a -> c)  
flip' f = g  
    where g x y = f y x
Run Code Online (Sandbox Code Playgroud)

我没有得到的是,x和y来自哪里?签名告诉我,这flip'是一个函数,它接受一个函数(带有两个参数),并返回一个函数(同样,带有两个参数).

如果我理解这一点,当我写一个类似的函数时

foo :: (a -> b) -> a -> b
foo f x = f x   -- applies the function f on x
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,我明确地传递参数[ie x],所以我能够在函数体中访问它.那么为什么flip'函数可以访问参数x和y呢?

haskell

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

我有变量要求用户输入,如何在python中使用if/else打印该变量?

这是我的代码: -

print "Welcome to the English to Pig Latin translator!"
original = raw_input("Write a word")
if len(original)>0:
    print origninal
else:
    print "empty"
Run Code Online (Sandbox Code Playgroud)

所以这original是我的变量."empty"如果用户输入没有单词,我得到字符串,但如果用户输入任何超过0个字符的单词(如if语句中所定义),我会收到错误说明"name original is not defined".我希望控制台打印用户输入.我的代码有什么问题?

python

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

标签 统计

haskell ×1

python ×1