问题列表 - 第18954页

Haskell - 漂亮打印列表的问题

我是哈斯克尔的新手,我读完并消化了" 了解你是一件好事",并尝试了一些事情.对于我的第一个项目,我想尝试经典:FizzBu​​zz.所以我想出了以下代码:

import System.IO

fizzBuzz :: (Integral a) => a -> String
fizzBuzz num
    | fizz && buzz = "FizzBuzz"
    | fizz = "Fizz"
    | buzz = "Buzz"
    | otherwise = show num
    where fizz = num `mod` 3 == 0
          buzz = num `mod` 5 == 0

main = print $ map fizzBuzz [1..100]
Run Code Online (Sandbox Code Playgroud)

工作得很好,除了我有一个很难读的相当密集的列表.所以我尝试了这个主要功能:

main = map putStrLn $ map fizzBuzz [1..100]
Run Code Online (Sandbox Code Playgroud)

这给了我错误Couldn't match expected type 'IO t' against inferred type '[IO ()]'.我尝试了六件事,似乎没有任何帮助.做我想做的事情的正确方法是什么?

haskell pretty-print fizzbuzz

11
推荐指数
1
解决办法
2803
查看次数

将构建参数传递给.wxs文件以动态构建wix安装程序

我是一名学生开发人员,我为我现在正在合作的公司建立了几个安装程序.所以我对WIX非常熟悉.我们最近决定使用Build服务器自动构建我们的解决方案.它构建了调试和发布,以及混淆(和非混淆)项目.你真的不需要了解这一点.您需要了解的是,我有相同的Wix项目动态构建不同的MSI.所以我们构建它们的方式是我们用几个参数调用MSBuild.exe.wix项目所依赖的参数.

所以我们假设我们进入命令提示符并写入

C:\>\windows\Microsoft.NET\Framework\v3.5\MSBuild.exe MyApp.Install\MyApp.Install.wixproj /p:Configuration=Release /p:SpecialPath=Obfuscated /t:Build
Run Code Online (Sandbox Code Playgroud)

想法是wix看到"SpecialPath"参数被分配为"混淆"; 并且在安装程序路径中,其源代码 在构建时..\myApp\bin\$(var.SpecialPath)\myApp.exe转换为..\myApp\bin\Obfuscated\myApp.exe.

TheQuestion

如何创建这些自定义构建参数并将它们传递给我的.wxs文件.截至目前这个设置,$(var.SpecialPath)没有定义和构建CrashSplosions.

出于明显的法律原因,我不得不削减90%的project.wxs文件并重命名一些东西,但是就所有意图和目的而言,这就是我所拥有的.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="myApp" Language="1033" Version="$(var.Version)" Manufacturer="myApp" UpgradeCode="$(var.UpgradeCode)">
<Package Id="*" InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="media.cab" EmbedCab="yes" />

<Directory Id="TARGETDIR" Name="SourceDir" >
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLLOCATION" Name="myApp"> 

      <Component Id="myAppEXE" Guid="FD5EBC02-MY29-GUID-ACCA-61324C5F1B68">
        <RegistryKey Root="HKLM" Key="Software\MyApp">
          <RegistryValue Value="0" Type="string" KeyPath="yes"/>
        </RegistryKey>
        <File Id="MYAPPEXE" Name='myApp.exe' Source="..\myApp\bin\$(var.SpecialPath)\myApp.exe" />
      </Component>

      <Component Id="EngineDLL" Guid="*">
        <File Id="ENGINEDLL" Name='Engine.dll' Source="..\myApp\bin\$(var.Configuration)\Engine.dll" />
      </Component>
      <Component Id="CommonDLL" …
Run Code Online (Sandbox Code Playgroud)

parameters wix build path dynamic

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

如何使用RDBO强制模板工具包中的列表上下文?

我有一个TT插件,可以完成琐碎的独特ID:

sub get_unique_uid_tt {
  my ( $classname, $o ) = @_;

  my %h;

  foreach my $item ( @{$o} ) {
    unless ( exists $h{ $item->id } ) {
      $h{ $item->id } = 1;
    }
  }

  return keys %h;
}
Run Code Online (Sandbox Code Playgroud)

模板调用只是:

[% Namespace.get_unique_uid_tt( data.users ) %]
Run Code Online (Sandbox Code Playgroud)

"data"是一个RDB对象,用户是其关系之一.我已经验证".users"直接在Perl中返回一个列表,无论该关系是否有一个或多个元素.

但是,TT似乎返回单元素列表的元素,同时正确返回多个元素的列表.

我查了一下,发现你可以用".list"强制列表上下文:

[% Namespace.get_unique_uid_tt( data.users.list ) %]
Run Code Online (Sandbox Code Playgroud)

对于单元素列表,这不起作用,因为Data :: Dumper显示:

$VAR1 = [
      {
        'value' => 1,
        'key' => '__xrdbopriv_in_db'
      },
      {
        'value' => bless(
         ... snip ...
         ),
        'key' => 'db'
      },
      { …
Run Code Online (Sandbox Code Playgroud)

perl template-toolkit rose-db-object

2
推荐指数
1
解决办法
631
查看次数

如何使用反射在scala中创建一个体面的toString()方法?

为了简化类的调试时内省,我想在基类中为相关对象创建一个通用的toString方法.由于它不是性能关键代码,我想使用Reflection来打印字段名称/值对("x = 1,y = 2"等).

是否有捷径可寻?我尝试了几种可能的解决方案,并遇到了安全访问问题等问题.

要明确的是,基类中的toString()方法应该反复迭代从它继承的任何类中的公共val,以及混合的任何特征.

reflection scala tostring

6
推荐指数
2
解决办法
8513
查看次数

我应该在我的网络应用中使用哪种类型的点击?

背景: 我们正在开发一个包含图表的Web应用程序.目前,可以左键单击图表点以缩放/深入查看数据的该部分.我们正在添加一些其他功能,允许用户将元数据添加到数据点.我知道用户将专门使用Mozilla,尽管我回避限制单个浏览器的任何事情.请不要js库.

问题: 我应该使用什么类型的"点击"将元数据添加到已经左键单击的元素(超链接)?

我头脑风暴的一些选择:

  • 捕获右键单击的oncontext菜单(这对我来说是对的)
  • 双击
  • 按住Ctrl键
  • 左键单击打开一个上下文菜单,该菜单具有现有的左键单击功能和新功能

这些是否有任何约定?你觉得最直观的是什么?

javascript-events mouseclick-event

1
推荐指数
1
解决办法
140
查看次数

Java并发问题 - 在集合上同步

以下是ArrayList在多线程环境中同步工作的代码片段吗?

class MyList {
    private final ArrayList<String> internalList = new ArrayList<String>();

    void add(String newValue) {
        synchronized (internalList) {
            internalList.add(newValue);
        }
    }

    boolean find(String match) {
        synchronized (internalList) {
            for (String value : internalList) {
                if (value.equals(match)) {
                    return true;
                }
            }
        }

        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我担心一个线程无法通过另一个线程看到更改.

java concurrency multithreading java-memory-model

1
推荐指数
1
解决办法
421
查看次数

确实在继续工作吗?

我有一个看起来像:

User user = userDao.Get(1);

do
{
 // processing


 // get the next user
 //
 user = UserDao.GetNext(user.Id);

 if(user == null)
       continue;   // will this work?????????????
}
while ( user != null)
Run Code Online (Sandbox Code Playgroud)

如果它确实有效,它会转到do语句的顶部,而user是null,所以事情会破坏?

也许我应该将循环重写为while语句?

java loops do-while

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

git reset后无法推送--soft HEAD ^

刚才我承诺并推送了一些东西(是的,我在推动时的错误),我认为我应该'还原'或'撤消'.因此我被告知要git reset --soft HEAD^在我的结尾发布,并且我认为这会以某种方式创建一个"恢复"提交,一旦提交将使它好像改变从未发生过.我不介意改变的历史是否存在,这正是我想象的那样.

无论如何,完成后我再次提交,然后当我试图推动时,我得到了非快进错误.现在,我知道我搞砸了重置,我的树和起源树的线条现在"不匹配",但我想知道如何解决这个问题.现在我只想回到我发出重置之前的时间,这样我就可以通过手动取出它们然后提交来手动恢复更​​改,除非其他人可以推荐恢复推送提交的正确方法,并且我并不是说历史必须从日志或其他东西中消失.

git version-control revert

11
推荐指数
3
解决办法
6058
查看次数

RESTful WCF服务在发送"原始"XML时返回400代码

我一直在用我的头撞墙两天,希望有人可以帮我一把.我所拥有的是使用WCF编写的RESTful Web服务; 实际上只有两个接受单个字符串参数并返回字符串的方法.参数和返回值都是直接的XML.

[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebGet(UriTemplate = "/method1/{data}", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml)]
    string Method1(string data);

    [OperationContract]
    [WebGet(UriTemplate = "/method2/{data}", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml)]
    string Method2(string data);

}
Run Code Online (Sandbox Code Playgroud)

为了论证,我们可以说这两种方法的实现如下所示:

public string Method1(string data)
{
    return string.Format("You entered: {0}", data);
}
Run Code Online (Sandbox Code Playgroud)

如果我转到http://myuri.com/service.svc/method1/foo,则会向浏览器写入以下内容:

  <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">You 
    entered: foo</string> 
Run Code Online (Sandbox Code Playgroud)

这很好用,但如果我将网址更改为:http://myuri.com/service.svc/method1/ <foo>我收到400(错误请求).所以我使用以下代码启用了一些跟踪器以查看发生了什么:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel"
          switchValue="All">
    <listeners>
      <add name="traceListener"
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData= "c:\Traces.svclog" />
    </listeners>
  </source>
</sources>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我使用切换值'All'来捕获在执行此服务期间发生的每个事件.我使用URL格式跑回了几次,这种格式可以验证跟踪器是否正常工作.然后我转到包含XML标记foo的URL并按预期收到400错误,但是当我回到日志文件时,没有附加信息附加到它的末尾.这使我相信在调用WCF服务之前显示400错误.

最后,我将方法从'GET'方法切换到'POST'方法,使用WebRequest/WebResponse写了一些具有相同结果的代码.现在我已经阅读了一些帖子,谈论在客户端使用XmlSerializer将数据发送到服务但是这违背了这项服务的目的.当我使用.NET编写服务时,很可能PHP或经典ASP脚本将连接到此服务,显然,他们无法访问XmlSerializer.

所以我的百万美元问题是:是否可以向WCF中开发的RESTful Web服务发送"原始"XML请求,如果是,如何?

PS进入和退出服务的XML不是基于任何有形对象,它只是我创建的用于此服务的结构.进入的XML通过XPath进行解析,将值放入更大的XML字符串中,并传递给外部API.该API的结果将被处理,然后由我的RESTful服务返回. …

c# rest wcf

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

使用最佳/最简单的语言进行拆卸

我现在正在考虑开发一个反汇编程序,但是我知道构建反汇编程序非常困难,我想知道将我的梦想变为现实的最佳/最简单的语言,同样,教程建议也很好; - )

hex programming-languages disassembly

1
推荐指数
1
解决办法
556
查看次数