9
声明式编程与命令式编程
我对命令式编程非常满意。一旦弄清了我想让计算机做什么,我就不会在算法上表达我想要计算机做什么。但是当涉及到诸如SQL之类的语言时,我经常会陷入困境,因为我的头脑太习惯于命令式编程。 例如,假设您具有以下关系:乐队(bandName,bandCountry),会场(venueName,会场Country),戏剧(bandName,会场Name),并且我想编写一个查询,指出:所有会场名称,以便每个bandCountry都有一个乐队在那个名字的场地上比赛的那个国家。 示例:我想要所有国家(bandCountry)的乐队在其中播放的所有会场名称。另外,“关系”是指SQL表。 在我的脑海中,我立即进入“针对每个bandName遍历所有bandCountries的情况,并为每个bandCountry获取来自其的乐队的列表。如果没有一个乐队在场地名中播放,请转到下一个场地名。否则,在bandCountries的末尾迭代将会场名称添加到良好的会场名称集合中”。 ...但是您不能在SQL中这样说,我实际上需要思考如何表述这一点,而直观的命令式解决方案不断地困扰着我。还有其他人有这个问题吗?您是如何克服这一难题的?您发现范式转变了吗?将命令式概念映射到SQL概念,以将命令式解决方案转换为声明式解决方案?读一本好书? 附言:我不是在寻找上述查询的解决方案,而是已经解决了。