Scheme中的邮政编码验证(Dr. Racket)
Posted
技术标签:
【中文标题】Scheme中的邮政编码验证(Dr. Racket)【英文标题】:Postal Code verification in Scheme (Dr. Racket) 【发布时间】:2013-02-05 18:40:14 【问题描述】:我正在用 Scheme (Dr. Racket) 编写一个程序来验证加拿大的邮政编码。用户输入邮政编码并得到有效与否的响应。我把布尔逻辑记下来了,但我不知道如何真正告诉它正确的格式是什么。
例如。 (有效的邮政编码?N2L 3G1)=> 真
我该怎么做?
谢谢
【问题讨论】:
您是在问一个特定领域的问题(例如,有效的加拿大邮政编码的结构是什么),还是在问如何编程?很难说这个问题是关于什么的。***讨论了加拿大邮政编码的结构:en.wikipedia.org/wiki/… 【参考方案1】:如果您想知道一个字符串是否具有有效邮政编码的格式,您可以使用正则表达式。加拿大邮政编码由六个字符组成,交替的字母和以字母开头的数字,第三个和第四个字符之间嵌入一个空格。一个合适的正则表达式是^[A-Z][0-9][A-Z] [0-9][A-Z][0-9]$
。
如果您想知道具有有效格式的字符串是否在邮政编码列表中,最简单的解决方案是布隆过滤器。我在 my blog 提供了一个用 Scheme 编写的布隆过滤器。
【讨论】:
【参考方案2】:我不知道加拿大邮政编码是如何工作的,但我认为您要问的是您可能只有一长串有效代码,并且需要告诉程序它们没问题,而没有其他代码。
使用可变哈希映射非常适合您的目的:http://docs.racket-lang.org/guide/hash-tables.html
【讨论】:
以上是关于Scheme中的邮政编码验证(Dr. Racket)的主要内容,如果未能解决你的问题,请参考以下文章