| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
原始链接: https://news.ycombinator.com/item?id=43945660
这个Hacker News讨论串探讨了使用广义代数数据类型 (GADTs) 进行性能优化的优势,并提到了Jane Street的一篇相关博文。一位用户请求一些非编译器的实际例子。其他人则提供了见解,包括GADTs如何强制执行允许状态的编译时约束,例如在FPGA处理器设计中,减少错误并启用编译器优化。 讨论还涉及到Jane Street使用的OCaml语言,以及它是否赋予了他们竞争优势,尽管它并不主流。用户们讨论了使用特定类型(如字节数组)的性能优势以及与更通用类型相比的权衡。一些人争论了该语言的开销和好处。英特尔Skylake漏洞及其与不同编译器和语言的关系也被提及。最终,该讨论串探讨了GADTs在启用类型安全优化方面的强大功能,以及在性能关键型领域中使用OCaml的策略选择。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I share the author's frustration with the lack of non-compiler-related examples of GADT uses. It seems like such a powerful idea, but I haven't been able to get a feel for when to reach for GADTs in Haskell
reply