冒犯性的术语显然是(S K K)
(\x:t->t->t.\y:t->t.\z:t.x z(y z))(\x:t.\y:t.x)(\\x:t.\y:t.x)
我认为问题产生于多态性的缺乏,因为当我键入check这个haskell代码时,它工作得很好:
k x y = x
s x y z = x z (y z)
test = s k k -- type checks
k :: () -> () -> ()
k x y = x
s :: (() -> () -> ()) -> (() -> ()) -> () -> ()
s x y z = x z (y z)
test = s k k -- doesn't type check
我将从我以前的回答中偷取想法来展示如何问ghci你的问题。但首先我要稍微修改一下你的问题。
在哈斯克尔,我们有
s :: (a -> b -> c) -> (a -> b) -> (a -> c)
k :: a -> b -> a
我们想问的问题是“这些类型在类型检查s kk
之后是什么样子?”更重要的是,如果我们用不同的统一变量重写它们,
s :: (a -> b -> c) -> (a -> b) -> (a -> c)
k :: d -> e -> d
k :: f -> g -> f
s k k :: h
> :{
| :t undefined
| :: ((a -> b -> c) -> (a -> b) -> (a -> c))
| ~ ((d -> e -> d) -> (f -> g -> f) -> h)
| => (a, b, c, d, e, f, g, h)
| :}
undefined
:: ((a -> b -> c) -> (a -> b) -> (a -> c))
~ ((d -> e -> d) -> (f -> g -> f) -> h)
=> (a, b, c, d, e, f, g, h)
:: (f, g -> f, f, f, g -> f, f, g, f -> f)
s :: (T -> (T -> T) -> T) -> (T -> (T -> T)) -> (T -> T)
k1 :: T -> (T -> T) -> T
k2 :: T -> T -> T
s k1 k2 :: T -> T
我们偶尔会有人问关于在Haskell中实现无类型lambda演算的问题。[当然,我现在找不到这些问题中的任何一个,但我肯定我已经看到了!]只是为了傻笑,我想我应该花点时间玩这个。 做一些像这样的事情已经足够微不足道了 这工作得很好,并且允许构造和执行任意的lambda表达式。例如,我们可以轻松地构建一个函数,将转换为教会数字: 同样,这是完美的。 现在写一个解码函数。 这是有效的: 这不会: 我已
问题内容: 在mysql中,当它是自动递增时,如何获取用于插入操作的主键。 基本上,我希望在语句完成时返回新的自动增量值。 谢谢! 问题答案: 您的澄清评论说,您有兴趣确保在发生另一个并发INSERT时LAST_INSERT_ID()不会给出错误的结果。请放心,无论其他并行活动如何,使用LAST_INSERT_ID()都是安全的。LAST_INSERT_ID()仅返回当前会话期间生成的最新ID。
问题内容: 在不使用焦点侦听技术的情况下,java gui中捕获Tab键的最简单方法是什么? 问题答案: VK_TAB 是制表符常量。 然而: 请参阅:http : //docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html 要解决此问题,请将以下内容应用于触发关键事件的组件(例如,TextArea): 使用此方法,然后必须显
问题内容: 当我尝试这个 我可以很好地键入数字,这会过滤掉字母/字母数字字符串 例如,当我尝试使用“ s1”和“ s”时,它将转到(其他)。 问题是,当我输入负数(例如-1)时,“。isdigit”会将“-”符号计数为字符串值,并且拒绝它。我如何才能使’.isdigit’允许使用负号’-‘? 这是代码。我尝试过的东西。 问题答案: 使用try / except,如果我们不能转换为int,它将设置为
我正在开发一个javafx扫雷游戏,目前只使用鼠标左键输入。我想用鼠标右键也让用户可以标记可能的炸弹。我查看了Button类的Oracle网页,它说: “当按下并释放按钮时,将发送ActionEvent。应用程序可以通过实现EventHandler来处理ActionEvent来执行基于此事件的某些操作。按钮也可以通过实现EventHandler来处理MouseEvent来响应鼠标事件。” http
我试图在Perl6中推入一个数组的散列。 对于Perl6的,我得到了一个类似的错误,鉴于https://docs.perl6.org/routine/push中的示例显示尝试也失败了 我在这里做错了什么?我在搜索引擎结果上没有看到这个错误