我想弄清楚如何围绕价格 - 两种方式.例如:
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)
因为它看起来更干净
有关如何实现这一目标的任何想法?
是否有类型化的编程语言,我可以约束类型,如下面的两个例子?
概率是一个浮点数,最小值为0.0,最大值为1.0.
type Probability subtype of float
where
max_value = 0.0
min_value = 1.0
Run Code Online (Sandbox Code Playgroud)离散概率分布是一个映射,其中:键应该都是相同的类型,值都是概率,值的总和= 1.0.
type DPD<K> subtype of map<K, Probability>
where
sum(values) = 1.0
Run Code Online (Sandbox Code Playgroud)据我所知,Haskell或Agda无法做到这一点.
我正在使用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
的至少以下三个原因:
我希望在这种情况下有一些"最佳实践".
我目前正在参与一些有趣的编程语言研究,到目前为止,该研究主要围绕使用一些非常强大的基于程序员生产力的功能扩展即将推出的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
如果有人有兴趣合作这个项目,请告诉我!
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
),它会将数组的内容漂亮地打印到控制台.
有没有办法做到这一点?如果有更"惯用"的方式来实现这种事情,我也有兴趣知道.
对不起,如果这很明显,我只是没有得到它.如果我有一系列哈希像:
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)
我的问题是我不明白如何返回两个值,只分别返回每个值.我错过了什么?
谢谢您的帮助.
我正在尝试分析我的应用程序来监视重构之前和之后的函数的效果.我已经对我的应用程序进行了分析并查看了摘要我注意到Hot Path列表没有提到我使用的任何函数,它只提到Application.Run()的函数
我很擅长分析,并想知道如何通过MSDN文档证明我可以获得有关Hot Path的更多信息;
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) 我正在寻找ruby或rails中的报告生成工具,允许用户定义模板,然后将数据提取到创建的模板中.
我一直在寻找通过" 红宝石箱:报告部分. "
我看过两种报告工具:
精简报告:非常好.您可以使用模板编辑器创建自己的报告模板.然后,您可以使用 thinreports gems生成PDF报告.
ODF报告:您可以使用Open Office和MS Word创建模板ODF文件,并且可以使用该模板生成报告.
这两种解决方案都缺乏绘制图表的能力.有没有人知道可以在给定报告中绘制图表的类似报告工具?
我试过RTF Ruby Library.它有效,但分享了它无法绘制图表和图形的限制.
最低要求是:
能够创建可自定义的模板.(例如设计布局,设置字体大小,颜色,嵌入图像等)
能够绘制表格和图表.
模板可以是Docx或excel或xml或任何其他常见文件格式.
报告输出报告必须采用Docx或RTF格式.
谢谢
我在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
代替神秘的{..}
.
我知道如何使用该vscode.window.createTerminal
方法从VSCode扩展创建一个新终端.此方法返回对终端的引用,以便我随后可以与它进行交互,例如,通过向其发送字符串等.
我真的希望能够与VSCode中的现有终端进行交互,但找不到任何API来执行此操作.是否可以枚举VSCode中的所有开放式集成终端?
c# ×3
haskell ×3
ruby ×2
yesod ×2
agda ×1
currency ×1
deployment ×1
gmcs ×1
hash ×1
keter ×1
mono ×1
powershell ×1
profiling ×1
refactoring ×1
report ×1
rounding ×1
vscode-tasks ×1