Tag: 编码式

在Python中列表推导或生成器expression式的续行

你应该如何分解很长的列表理解? [something_that_is_pretty_long for something_that_is_pretty_long in somethings_that_are_pretty_long] 我也曾经在某个地方看到,那些不喜欢用'\'来分解线条的人,却从来不明白为什么。 这背后的原因是什么?

隐式转换与types类

在Scala中,我们可以使用至less两种方法来改造现有的或新的types。 假设我们想expression一些东西可以用Int来量化。 我们可以定义以下特征。 隐式转换 trait Quantifiable{ def quantify: Int } 然后我们可以使用隐式转换来量化string和列表。 implicit def string2quant(s: String) = new Quantifiable{ def quantify = s.size } implicit def list2quantifiable[A](l: List[A]) = new Quantifiable{ val quantify = l.size } 导入这些后,我们可以调用string和列表的方法quantify 。 请注意,可量化列表存储其长度,所以它避免了在后续调用中进行昂贵的遍历。 types类 另一种方法是定义一个“证人” Quantified[A] ,说A型可以量化。 trait Quantified[A] { def quantify(a: A): Int } 然后我们为String和List提供这个类的实例。 implicit val stringQuantifiable = […]

好的Haskell源码阅读和学习

什么是一些使用Haskell的开源程序,可以被认为是高质量的现代Haskell ? 代码越大越好。 我想学习他们的源代码。 我觉得我已经从小代码的例子中学习了,这些例子往往是深奥的,小的世界。 我想看看代码是如何构造的,当有很多事情发生时(logging,I / O,configuration等)monad如何进行交互。

有没有更好的写作方式v =(v == 0?1:0);

我想切换0和1之间的variables。如果它是0,我想将其设置为1,否则,如果它是1我想将其设置为0。 这是一个非常基本的操作,我经常写这个操作,我想调查一下最短,最清晰的方法。 这是我迄今为止最好的: v = (v == 0 ? 1 : 0); 你能改进吗? 编辑:问题是如何在保持清晰度的同时用最less的字符来编写上述语句 – 这是不是一个真正的问题? 这不是打算做高尔夫练习,尽pipe一些有趣的答案已经从高尔夫球接近人们那里得到了 – 很高兴看到高尔夫以一种build设性和发人深省的方式被使用。

将制表符转换为Notepad ++中的空格

如何将选项卡转换为Notepad ++中的空格? 我发现一个网页 ,表明这是可能的,但我找不到任何有关如何做到这一点的信息。 我希望能够做到这一点,因为一些网页forms不尊重与他们的标签代码。

关系表命名约定

我正在开始一个新项目,希望从一开始就让我的表和列名称。 例如,我总是在表名中使用复数,但最近学到的单数是正确的。 所以,如果我有一个“用户”表,然后我得到的产品,只有用户将有,如果表名为“user_product”或只是“产品”? 这是一对多的关系。 更进一步说,如果我有(出于某种原因)每个产品的几个产品描述,它会是“user_product_description”或“product_description”或只是“描述”? 当然,正确的外键设置..命名它只描述会有问题,因为我也可以有用户的描述或帐户描述或任何.. 那么如果我想要一个只有两列的纯关系表(多对多),那么这将是什么样子呢? “user_stuff”或者像“rel_user_stuff”? 如果是第一个,那么会区分这个,例如“user_product”? 任何帮助,高度赞赏,如果有某种forms的命名约定标准那里你们推荐,随意链接。 谢谢

Haskell函数组成(。)和函数应用($)成语:正确使用

我一直在阅读真实世界的Haskell ,而且我已经接近尾声,但风格的问题一直在与我(.)和($)运算符做一个小问题。 当你编写一个其他函数组成的函数时,你可以这样写: f = g . h 但是,当你将这些function应用到最后时,我会这样写: k = a $ b $ c $ value 但是这本书会这样写: k = a . b . c $ value 现在,对我来说,他们看起来在function上是相同的,他们在我眼中完全一样。 然而,我看的越多,我就越是看到人们按照本书的方式编写自己的function:先用(.)编写,然后在最后使用($)来附加一个值来评估这个地段(没有人它与许多美元成分)。 是否有使用书籍方式比使用所有($)符号好得多的原因? 还是有没有一些最好的做法,我没有得到? 或者是多余的,我不应该担心它呢?

切换声明Fallthrough …应该允许吗?

只要我记得我已经避免使用switch语句。 其实,我不记得它曾经进入我的意识作为一种可能的方式来做事情,因为它早已钻入我的脑海,它只不过是在转换语句中的一个错误。 但是,今天我遇到了一些使用它的代码,这让我立刻想到社区中的每个人都认为转换语句是如何实现的。 是编程语言应该明确不允许的东西(就像C#那样,虽然它提供了一个解决方法),还是它是任何语言的一个特性,足以让程序员手中的东西离开呢? 编辑:我没有足够的具体到我的意思是通过。 我使用这种types很多: switch(m_loadAnimSubCt){ case 0: case 1: // Do something break; case 2: case 3: case 4: // Do something break; } 但是,我担心这样的事情。 switch(m_loadAnimSubCt){ case 0: case 1: // Do something but fall through to the other cases // after doing it. case 2: case 3: case 4: // Do something […]