美文网首页
比特串from的括号问题

比特串from的括号问题

作者: emiya_d8a0 | 来源:发表于2019-11-24 10:24 被阅读0次

我的from函数

from : Bin → ℕ
from nil    = zero
from (x0 m) = 2 * from m
from (x1 m) = 1 + (2 * from m)

我怀疑是有问题的, 但是实际操作起来是这样的

f = 3 * 4 * 5 -- error, 需要括号
Could not parse the application 3 * 4 * 5
Operators used in the grammar:
  * (infix operator, level 20) [_*_ (/Users/zhang/Desktop/Haskell/Agda/Naturals.agda:17,1-4)]
when scope checking 3 * 4 * 5
-- _ : from (x1_ (x0_ (x1_ nil))) ≡ 5
_ =
  begin
    from (x1_ (x0_ (x1_ nil)))
  ≡⟨⟩
    1 + (2 * from (x0 (x1_ nil)))
  ≡⟨⟩
    1 + (2 * (2 * from (x1_ nil))) -- Agda会自己加括号的呢
  ≡⟨⟩
    1 + (2 * (2 * (1 + (2 * from nil))))
  ≡⟨⟩
    1 + (2 * (2 * (1 + (2 * zero))))
  ≡⟨⟩
    1 + (2 * (2 * (1 + 0)))
  ≡⟨⟩
    5
  ∎

Agda的constructor到底是怎么做到的呢?

它不仅可以用已有元素去构造新元素, 还能从已有元素中得到构造其的元素.

现在不要去想, 不用去想, 保持愚蠢.

相关文章

  • 比特串from的括号问题

    我的from函数 我怀疑是有问题的, 但是实际操作起来是这样的 Agda的constructor到底是怎么做到的呢...

  • 最长括号匹配

    问题描述 给定字符串,仅包含左括号和右括号,设计算法,找出最长匹配的括号子串,返回该子串的长度。 如: ( ( )...

  • 栈、队列解决问题

    栈解决括号匹配问题 一个字符串中包含小括号、中括号、大括号,判断该字符串中的括号是否匹配 ()()[]{} 匹配...

  • LeetCode之Remove Outermost Parent

    问题: 方法:遍历字符串,统计左括号和右括号的数量,当统计到左右括号数量相等时保存内部子串即去除了最外部的括号,遍...

  • 括号匹配问题

    问题描述 有效字符串需满足: 左括号必须用相同类型的右括号闭合。包括:“( )”,“[ ]”,“{ }”。左括号必...

  • 判断括号匹配问题

    问题描述 给定一个字符串,其中的字符包含任意字符包括三种括号:花括号{ }、中括号[ ]、圆括号( )。设计算法,...

  • 括号匹配等一系列问题

    括号匹配等一系列问题 问题描述 左括号右边能找到唯一对应的右括号,右括号左边能找到唯一对应的左括号,则该字符串为完...

  • Leetcode-#20有效的括号(堆栈)

    问题描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 括号必须...

  • Leetcode题解 - Easy - 2

    20- 有效的括号 问题 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否...

  • 互联网秋招刷题leetcode总结——栈与队列

    栈 括号类问题 20. 有效的括号(easy) 遍历字符串,每次与栈顶括号进行匹配,匹配成功栈顶弹出,否则继续压入...

网友评论

      本文标题:比特串from的括号问题

      本文链接:https://www.haomeiwen.com/subject/bcqlwctx.html