是否可以“扩展” F# 编译器以进行自定义编译时字符串检查?我正在考虑类似于StringFormat
使用sprintf
等时对字符串的检查。当我说“扩展”时,我并不是说构建编译器的自定义版本,我的意思是使用现有的支持技术。
在我的脑海中,你可能有一种RegexFormat
类型。您提供正则表达式,编译器将使用正则表达式进行静态分析。例如
//Setup RegexFormat with IP address regex and type abbreviation IpRegexFormat?
//Compile error. ipAddress expects IpRegexFormat!
let ip = ipAddress "192.168.banana.1"
如果不是,也许这对我来说是一个类型提供者:) - 如果整个事情是一个糟糕的主意,请告诉我!