小编Ric*_*ook的帖子

将整数舍入到最接近的10的倍数

我想弄清楚如何围绕价格 - 两种方式.例如:

Round down
43 becomes 40
143 becomes 140
1433 becomes 1430

Round up
43 becomes 50
143 becomes 150
1433 becomes 1440
Run Code Online (Sandbox Code Playgroud)

我有这样的情况,我有一个价格范围说:

£143 - £193
Run Code Online (Sandbox Code Playgroud)

其中我想表现为:

£140 - £200
Run Code Online (Sandbox Code Playgroud)

因为它看起来更干净

有关如何实现这一目标的任何想法?

c# currency rounding

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

是否有可约束类型的语言?

是否有类型化的编程语言,我可以约束类型,如下面的两个例子?

  1. 概率是一个浮点数,最小值为0.0,最大值为1.0.

    type Probability subtype of float
    where
        max_value = 0.0
        min_value = 1.0
    
    Run Code Online (Sandbox Code Playgroud)
  2. 离散概率分布是一个映射,其中:键应该都是相同的类型,值都是概率,值的总和= 1.0.

    type DPD<K> subtype of map<K, Probability>
    where
        sum(values) = 1.0
    
    Run Code Online (Sandbox Code Playgroud)

据我所知,Haskell或Agda无法做到这一点.

haskell agda dependent-type

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

在Yesod和Keter传递应用秘密

我正在使用Yesod构建一个Web应用程序,目前我正在通过环境变量(根据Twelve-Factor App)传递API密钥等秘密,以避免将这些值存储在版本控制的配置文件中.例如,我在开发模式下运行我的应用程序,如下所示:

SOME_API_KEY=value yesod devel
Run Code Online (Sandbox Code Playgroud)

我的config/settings.yml文件中有一个值,该值是根据此环境变量定义的,其值为空值,如下所示:

meetup-api-key: "_env:SOME_API_KEY:"
Run Code Online (Sandbox Code Playgroud)

要使用Keter进行部署,我将使用该yesod keter命令构建Keter包,并将生成的文件放入Keter的incoming目录中.由于我使用环境变量配置,我的应用程序的.keter文件不包含SOME_API_KEY值(这是故意的).

我应该如何SOME_API_KEY进入在Keter内部运行的应用程序实例?

我想避免将价值烘焙到我keter-config.yaml的至少以下三个原因:

  1. 它不如环境变量方法安全.
  2. 直接嵌入到Keter本身的配置文件中,与应用程序的配置相反,如果不停止并重新启动整个Keter进程,则无法更改密钥.
  3. 环境变量将传递到Keter管理的每个应用程序中.

我希望在这种情况下有一些"最佳实践".

deployment haskell web-deployment yesod keter

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

扩展Mono C#编译器:有没有任何文档或先例?

我目前正在参与一些有趣的编程语言研究,到目前为止,该研究主要围绕使用一些非常强大的基于程序员生产力的功能扩展即将推出的Java 7.0编译器.该工作应同样适用于相关的编程语言,如C#.

我目前正在寻找原型化C#端口功能的选项.我更喜欢开源选项,以便可以与最广泛的受众分享这项工作的成果.因此,Mono C#编译器似乎是最明显的起点.我是一位经验丰富的C#开发人员,所以编写代码不是问题.我主要关心的是以可维护和支持的方式扩展编译器.在关于这个主题的单声道常见问题解答(链接)中,声称"Mono已被用作尝试C#语言的新思想的基础(有三个或四个编译器派生自Mono的C#编译器)".不幸的是,没有比此更多的指示,到目前为止,谷歌的搜索还没有任何改变.

我想知道是否有任何人有这方面的任何信息.是mcs/ gmcs/ dmcs有一个标准的可扩展性模型?具体来说,我将在程序的抽象语法树上执行一些有趣的转换.是否有一种标准机制,用于在抽象语法树生成和类型检查器之间插入功能到编译器链中,然后生成代码?

到目前为止,我已经为代码编写了一些特别的扩展(主要是在代码生成器中),但这似乎不是一个可维护的解决方案,特别是考虑到我打算让我的扩展更新为Git主干单声道尽可能多.此外,能够更新我的扩展,而不必每次进行更改时都重新编译整个编译器,这将是很好的.我希望能够将我的所有AST操作包装到一个可由mcs/ gmcs/ 动态加载的.NET程序集中,dmcs而不必直接破解核心编译器代码.

任何有关扩展Mono C#编译器的想法或指示都将非常感激!

更新(2010年10月23日)

在回答我的问题时,我决定开始研究Mono的一个分支,以便为编译器创建一个简单的可扩展性模型.这是在它的早期阶段,但它在GitHub:

http://github.com/rcook/mono-extensibility

主要提交是:http://github.com/rcook/mono-extensibility/commit/a0456c852e48f6822e6bdad7b4d12a357ade0d01

如果有人有兴趣合作这个项目,请告诉我!

c# compiler-construction mono gmcs

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

我可以确定PowerShell功能是否作为管道的一部分运行?

PowerShell函数能否确定它是否作为管道的一部分运行?我有一个函数,它填充一个数组,FileInfo如果函数以这种方式运行,我希望"屈服"到管道的实例,或者如果函数是从命令行自己调用的话,产生一些漂亮的输出.

function Do-Something {
    $file_infos = @()
    # Populate $file_infos with FileInfo instances...

    if (INVOKED_IN_PIPELINE) {
        return $file_infos
    }
    else {
        foreach ($file_info in $file_infos) {
            write-host -foregroundcolor yellow $file_info.fullname
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我正在试图弄清楚如何实施INVOKED_IN_PIPELINE.如果它在一个管道(例如Do-Something | format-table fullname)中运行,我只会产生数组,但如果直接运行(例如Do-Something),它会将数组的内容漂亮地打印到控制台.

有没有办法做到这一点?如果有更"惯用"的方式来实现这种事情,我也有兴趣知道.

powershell powershell-2.0

14
推荐指数
2
解决办法
2832
查看次数

如何迭代哈希数组并将值返回到单个字符串中?

对不起,如果这很明显,我只是没有得到它.如果我有一系列哈希像:

people = [{:name => "Bob", :occupation=> "Builder"}, {:name => "Jim", :occupation =>
"Coder"}]
Run Code Online (Sandbox Code Playgroud)

我想迭代数组并输出字符串,如:"Bob:Builder".我该怎么办?我理解如何迭代,但我仍然有点迷失.现在,我有:

people.each do |person|
  person.each do |k,v|
    puts "#{v}"
  end
end
Run Code Online (Sandbox Code Playgroud)

我的问题是我不明白如何返回两个值,只分别返回每个值.我错过了什么?

谢谢您的帮助.

ruby hash

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

功能分析困境 - Visual Studio 2010 Ultimate

我正在尝试分析我的应用程序来监视重构之前和之后的函数的效果.我已经对我的应用程序进行了分析并查看了摘要我注意到Hot Path列表没有提到我使用的任何函数,它只提到Application.Run()的函数

我很擅长分析,并想知道如何通过MSDN文档证明我可以获得有关Hot Path的更多信息;

MSDN示例:

MSDN示例

我的结果:

热门路径摘要

我注意到在输出窗口中有许多与加载符号时失败相关的消息,其中一些在下面;

Failed to load symbols for C:\Windows\system32\USP10.dll.  
Failed to load symbols for C:\Windows\system32\CRYPTSP.dll.
Failed to load symbols for (Omitted)\WindowsFormsApplication1\bin\Debug\System.Data.SQLite.dll.
Failed to load symbols for C:\Windows\system32\GDI32.dll.  
Failed to load symbols for C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.dll.
Failed to load symbols for C:\Windows\system32\msvcrt.dll. 
Failed to load symbols for C:\Windows\Microsoft.NET\Framework\v4.0.30319\nlssorting.dll.
Failed to load symbols for C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll.  Failed to load symbols for
C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll.
Unable to open file to serialize symbols: Error VSP1737: File could not be opened due …
Run Code Online (Sandbox Code Playgroud)

c# refactoring profiling visual-studio-2010

8
推荐指数
2
解决办法
5839
查看次数

Ruby on Rails报告工具?

我正在寻找ruby或rails中的报告生成工具,允许用户定义模板,然后将数据提取到创建的模板中.

我一直在寻找通过" 红宝石箱:报告部分. "

我看过两种报告工具:

  1. 精简报告:非常好.您可以使用模板编辑器创建自己的报告模板.然后,您可以使用 thinreports gems生成PDF报告.

  2. ODF报告:您可以使用Open Office和MS Word创建模板ODF文件,并且可以使用该模板生成报告.

这两种解决方案都缺乏绘制图表的能力.有没有人知道可以在给定报告中绘制图表的类似报告工具?

我试过RTF Ruby Library.它有效,但分享了它无法绘制图表和图形的限制.

最低要求是:

  1. 能够创建可自定义的模板.(例如设计布局,设置字体大小,颜色,嵌入图像等)

  2. 能够绘制表格和图表.

  3. 模板可以是Docx或excel或xml或任何其他常见文件格式.

  4. 报告输出报告必须采用Docx或RTF格式.

谢谢

ruby report ruby-on-rails-3

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

X {..} < - getYesod表示法

我在Yesod Web应用程序的示例代码中看到了这种表示法,并且不知道它意味着什么:

getHomeR :: Handler Html
getHomeR = do
    App {..} <- getYesod
Run Code Online (Sandbox Code Playgroud)

这个语法是什么意思?

我也看到了以下内容,我假设相关的符号:

getHomeR :: Handler Html
getHomeR = do
    App x <- getYesod
Run Code Online (Sandbox Code Playgroud)

即一些标识符x代替神秘的{..}.

haskell yesod

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

枚举扩展API中的终端

我知道如何使用该vscode.window.createTerminal方法从VSCode扩展创建一个新终端.此方法返回对终端的引用,以便我随后可以与它进行交互,例如,通过向其发送字符串等.

我真的希望能够与VSCode中的现有终端进行交互,但找不到任何API来执行此操作.是否可以枚举VSCode中的所有开放式集成终端?

visual-studio-code vscode-extensions vscode-tasks

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