小编Has*_*ant的帖子

git push origin和git push origin master之间有什么区别

有没有在推动本地git仓库的主分支被称为起源与远程存储库的主分支有什么区别git push origin mastergit push origin

git git-push git-remote

45
推荐指数
2
解决办法
4万
查看次数

为什么这个Haskell代码能够成功地使用无限列表?

我有一些Haskell代码是不会无限名单上正常工作,但我不明白为什么它可以做得很成功.(我修改了我原来的代码 - 没有处理无限列表 - 在网上加入其他代码的东西,突然间我发现它有效,但不知道为什么).

myAny :: (a -> Bool) -> [a] -> Bool
myAny p list = foldr step False list
   where
      step item acc = p item || acc
Run Code Online (Sandbox Code Playgroud)

我对foldr的理解是它将遍历列表中的每个项目(也许这种理解是不完整的).如果是这样,那么"步"函数的表达方式无关紧要......代码应该无法处理无限循环.

但是,以下工作:

*Main Data.List> myAny even [1..]
True
Run Code Online (Sandbox Code Playgroud)

请帮我理解:为什么?

haskell functional-programming infinite fold

32
推荐指数
2
解决办法
2389
查看次数

为什么emacs中没有代码折叠?

关于如何在emacs中获取代码折叠有几个问题,而不必在评论中添加任何特殊字符,如"标记".有人说"没有完美的解决方案".
似乎可以通过解析正在编写的程序的源来查找匹配的括号或括号,或者基于缩进来完成它.您还可以使用使用不同方法的脚本组合.
那么为什么人们普遍认为没有"完美"和直接的方式在emac中获得代码折叠?emacs或其体系结构中是否存在某些难以编程的内容?如果这很容易,经过这么多年聪明的人使用emacs你会认为有人会写它.

emacs folding

26
推荐指数
4
解决办法
1万
查看次数

用科学计数法格式化双值

我有一个双号223.45654543434,我需要表现出来0.223x10e+2.

我怎么能用Java做到这一点?

java formatting scientific-notation

25
推荐指数
4
解决办法
8万
查看次数

在功能上用分隔符分割字符串的最佳方法是什么?

我试图在Haskell中编写程序,它将使用逗号分隔的整数数字串,将其转换为整数列表并将每个数字递增1.

例如 "1,2,-5,-23,15" -> [2,3,-4,-22,16]

以下是生成的程序

import Data.List

main :: IO ()
main = do
  n <- return 1
  putStrLn . show . map (+1) . map toInt . splitByDelimiter delimiter
    $ getList n

getList :: Int -> String
getList n = foldr (++) [] . intersperse [delimiter] $ replicate n inputStr

delimiter = ','

inputStr = "1,2,-5,-23,15"

splitByDelimiter :: Char -> String -> [String]
splitByDelimiter _ "" = []
splitByDelimiter delimiter list =
  map (takeWhile (/= delimiter) . tail) …
Run Code Online (Sandbox Code Playgroud)

string haskell split

25
推荐指数
4
解决办法
2万
查看次数

替换Haskell中的各个列表元素?

我有一个元素列表,我希望更新它们:

由此: ["Off","Off","Off","Off"]

对此: ["Off","Off","On","Off"]

由于我对Haskell有点新,我一直在(x:xs)!!y使用该函数提取和更新单个组件:

replace y z [] = []
replace y z (x:xs)
  | x==y           = z:replace y z xs
  | otherwise      = x:replace y z xs
Run Code Online (Sandbox Code Playgroud)

然后在ghci中输入以下内容: (replace "Off" "On" ["Off",'Off","Off","Off"]) !! 2

我得到以下内容: "On"

我似乎能够提取和转换列表的元素,但我似乎无法获得转换单个元素的列表.

任何有关此事的帮助将不胜感激.

state haskell list

24
推荐指数
5
解决办法
4万
查看次数

我们是否应该始终在第一行中检查java中方法的每个参数是否为null?

每个方法都接受一组参数值.我们是否应该始终验证输入参数的非零值或允许代码失败RunTimeException

我看过很多代码,人们并没有真正检查输入参数的空值,只是使用参数编写业务逻辑.什么是最好的方法?

void public( String a, Integer b, Object c)
{
  if( a == null || b == null || c == null)
  {
    throw new RunTimeException("Message...");
  }
  .....business logic.....
}
Run Code Online (Sandbox Code Playgroud)

java validation parameters methods null

23
推荐指数
2
解决办法
2万
查看次数

没有单子的符号:可能吗?

我有一个有状态类型的>>>>=运算符,几乎是一个monad.预期用途是为另一种语言生成代码,并且具有可用的标记将是非常合适的.

但是,没有明确定义的返回函数,因为值只应与副作用一起产生.因此,如果我伪造一个返回函数,return函数应该只返回一个错误,并且它违反了monad定律.(即使用返回函数永远无效.)

我观察到的是,这种说法只会使两个运算符,即运算符>>>>=运算符.

有没有办法只为那些2个操作符保留像记号这样的东西,或者像它一样干净的东西,但没有制作monad?

注意:行下方是标题中不需要的详细信息.这就是为什么我问这个问题的背景,回答我感兴趣的问题.浏览这个主题的其他人可能更愿意忽略它.


更正:我没有将代码生成为命令式语言,尽管它无关紧要.我正在为Javascript生成代码.

澄清(响应bdonlan):我的类型是(ma),它带有一个状态(这是给定各种参数的代码,类似于状态monad)并将返回一个值(生成的代码中的变量名称) ,附有haskell类型).因此,不应该有一种方法来返回与变量名相关联的值,而不会生成定义变量名的代码.*这完全是由于我的设计,可能不如我未想到的其他设计.

回应答复:似乎有两种回应.首先,是否确实是可能的,也许是使用符号的最佳方式.第二个是关于使用monad是否更好,并定义一个返回(或者是否有意义不这样做 - 可能在以后的某个时间点,我会发现需要返回).

我要做的事情的例子:

data JsState = JsState { code :: String , vidCount :: Int } 
-- vidCount is for generating unique variable names

newtype JsStmt = JsStmt ( JsState -> JsState )

newtype JsMonad a = JsMonad ( JsState -> ( a , JsState ) )

def :: (JsValue a) => a -> JsMonad a

-- Outputs "var " ++ toUniqueVarName vidCount …
Run Code Online (Sandbox Code Playgroud)

monads haskell

23
推荐指数
3
解决办法
1856
查看次数

如何在XSLT中实现"if else if else"条件

是否有可能在xsl中实现"if else,if else"?例如,我有数据:

<document>
    <line>
        <name>MAR111</name>
        <value>1</value>
    </line>

    <line>
        <name>MAR111</name>
        <value>3</value>
    </line>
    <line>
        <name>MEA111</name>
        <value>1</value>
    </line>
    <line>
        <name>MPR111</name>
        <value>1</value>
    </line>
    <line>
        <name>MEA111</name>
        <value>4</value>
    </line>
    <line>
        <name>MPR111</name>
        <value>2</value>
    </line>
</document>
Run Code Online (Sandbox Code Playgroud)

我需要获得三个具有三个名称的文档模板:

<document>
    <MAR>
        <name>MAR111</name>
        <number>1</number>
        <number>4</number>
    </MAR>
</document>
<document>
    <MEA>
        <name>MEA111</name>
        <number>1</number>
        <number>4</number>
    </MEA>
</document>
<document>
    <MPR>
        <name>MPR111</name>
        <number>1</number>
        <number>2</number>
    </MPR>
</document>
Run Code Online (Sandbox Code Playgroud)

我尝试在应用模板上使用"选择,何时",但也许有更好的方法:

<xsl:template match="/">
    <xsl:choose>
        <xsl:when test="/document/line/name='MEA111'">
            <xsl:apply-templates mode="MEA" select="/document"/>
        </xsl:when>
    </xsl:choose>
    <xsl:choose>
        <xsl:when test="/document/line/name='MPR111'">
            <xsl:apply-templates mode="MPR" select="/document"/>
        </xsl:when>
    </xsl:choose>
    <xsl:choose>
        <xsl:when test="/document/line/name='MAR111'">
            <xsl:apply-templates mode="MAR" select="/document"/>
        </xsl:when>
    </xsl:choose>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

xslt

21
推荐指数
3
解决办法
9万
查看次数

如何为Microsoft平滑流制作复合清单

我是Microsoft Smooth Streaming的新手,对复合清单的制作有疑问.
遵循这里的指导.

我能够制作一个在Silverlight播放器中播放的单个剪辑元素的复合清单.
但是,当我尝试从其他视频添加更多剪辑时,播放器刚停止工作并且没有提供任何错误信息.

而我这一切都是手工完成的.当我尝试使用Expression Encoder 4 Pro创建这样的视频时,我得到了一个普通.ismc文件而不是.csm文件.

我的问题是:

制作包含来自不同视频的剪辑的复合清单的最佳方法是什么?编码这些视频时是否有任何规范要遵循?或复合清单的支持是否对视频格式有任何限制?

最后一个是:有一种简单的方法来调试它(比如验证我的.csm文件)吗?

编辑我自己的解决方案:

看起来没有人关心这个,但是因为我终于解决了这个问题,所以我在这里写下这个来节省别人的时间.

为了调试复合清单,我在Visual Studio中构建了一个简单的Silverlight应用程序,并添加了一个简单的函数来报告错误:

MainPage.xaml.cs中:

public MainPage()
{
    InitializeComponent();
    this.SmoothPlayer.SmoothStreamingErrorOccurred += new EventHandler<SmoothStreamingErrorEventArgs>(SmoothPlayer_SmoothStreamingErrorOccurred);
}

public void SmoothPlayer_SmoothStreamingErrorOccurred(object sender,
                         SmoothStreamingErrorEventArgs e)
{
    MessageBox.Show("Error: " + e.ErrorCode + "; " + e.ErrorMessage);
}
Run Code Online (Sandbox Code Playgroud)

我发现这个网页很有用.

你需要使用:

<c t="", d""> 
Run Code Online (Sandbox Code Playgroud)

代替

<c d="">
Run Code Online (Sandbox Code Playgroud)

你必须正确计算ClipBeginClipEnd价值.

下面是在python一个示例代码转换.ismc.csm(假设下面的ISM是清单XML内容的xml.etree.ElementTree对象表示):

def ism2csm(url, ism):
    if ism is None: return …
Run Code Online (Sandbox Code Playgroud)

iis silverlight manifest composite smooth-streaming

19
推荐指数
0
解决办法
1634
查看次数