问题列表 - 第9423页

功能编程最好/最差的问题是什么?

我经常听说函数式编程解决了许多在程序/命令式编程中难以解决的问题.但我也听说过程序编程自然很擅长的其他一些问题并不是很好.

在我打开关于Haskell的书并深入研究函数式编程之前,我至少想了解一下我能用它的基本概念(在本书的例子之外).那么,函数式编程擅长的是什么呢?它不适合的问题是什么?

更新

到目前为止,我已经得到了一些很好的答案.我迫不及待地开始学习Haskell - 我只需要等到我掌握C :)

函数式编程很棒的原因:

  • 非常简洁和简洁 - 它可以用简短的,未经过混淆的陈述表达复杂的想法.
  • 比命令式语言更容易验证 - 在系统安全至关重要的地方很好.
  • 函数的纯度和数据的不变性使得并发编程更加合理.
  • 非常适合脚本编写和编写程序(我很高兴知道为什么).
  • 数学相关的问题简单而精美地解决了.

函数式编程困难的领域:

  • 有争议的:网络应用程序(虽然我猜这取决于应用程序).
  • 桌面应用程序(虽然它可能取决于语言,F#会擅长这个不是吗?).
  • 任何性能至关重要的东西,比如游戏引擎.
  • 任何涉及大量程序状态的东西.

haskell functional-programming

42
推荐指数
4
解决办法
6817
查看次数

如何在Java中编译时断言?

有时数据结构应该具有某些无法在Java中直接描述的关系,但是在编辑代码时尽早检查是很好的.经典的例子是数组足够大或者不同模块中的枚举具有相应的成员.

BOOST在C++中提供了一个很好的"静态断言"工具,当断言失败时甚至可以提供一半的错误; 有谁知道如何在Java中构建编译时断言工具?

编辑:我刚看到一个完美的例子:来自Eclipse的这个类有两个常量数组,假设长度相同.如果这是我的代码,我希望编译器告诉我它们是否有不同的长度.

java

7
推荐指数
2
解决办法
5020
查看次数

将NSString转换为NSDictionary

有没有办法NSDictionary从通过其description方法创建的字符串中获取回来?

鉴于此代码:

NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"value 1", @"value 2", nil] forKeys:[NSArray arrayWithObjects:@"key 1", @"key 2", nil]];
NSString *dictionaryString = [dictionary description];
NSLog(dictionaryString);
Run Code Online (Sandbox Code Playgroud)

这使得这个输出:

{
    "key 1" = "value 1";
    "key 2" = "value 2";
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以从字符串返回到NSDictionary?

iphone cocoa cocoa-touch objective-c

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

F#的大量资源适合初学者使用和商业实例

是否有一些链接到F#的优秀资源:

  1. 初学者使用.
  2. 将其应用于业务和企业应用程序的示例.

我的意思很棒,类似于ASP.NET和WindowsClient.net的Learn部分中提供的视频.

谢谢.

.net f# functional-programming visual-studio-2010

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

用于安全整数转换的C++模板

我正在尝试编写一个C++模板函数,它将在不同整数类型之间的转换中抛出整数溢出的运行时异常,具有不同的宽度,以及可能的有符号/无符号不匹配.出于这些目的,我不关心从浮点类型转换为整数类型,也不关心其他对象到对象的转换.我想这样做而不必写很多特殊的案例代码.这就是我目前拥有的:

template< typename T, typename R > void safe_cast( const T& source, R& result )
{
    // get the maximum safe value of type R
    R rMax = (R) ~0;
    if ( rMax < 0 ) // R is a signed type
    {
        // assume that we're on an 8-bit twos-compliment machine
        rMax = ~( 0x80 << ( ( sizeof( R ) - 1 ) * 8 ) );
    }

    if ( ( source & rMax  ) != source ) …
Run Code Online (Sandbox Code Playgroud)

c++ templates casting integer-overflow

11
推荐指数
4
解决办法
6585
查看次数

对于高级程序员职位,这个正则表达面试问题是否是一个公平的问题?

以下哪个正则表达式不能仅使用|*(Kleene star)和分组 的基本运算符转换为一个 ( () ) *

/adt[ui]t+\S?/ 
/b[^e]ac?h+\s\s\sBALL/i 
/he{5}[Ly]+o\bwo[^r]L(?!d)/ 
/ab?c+(de{1,3})/ 
Run Code Online (Sandbox Code Playgroud)

管理高级程序员职位这是一个公平的问题吗?

regex

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

VSS到Subversion

我正在研究从SourceSafe到Subversion的潜在转变,我们正在努力进行编辑/合并/提交与checkout/update/checkin范式.主要关注的是如何知道哪些文件是使用Subversion(以及向谁)签出的?

在VSS中是否存在等同于"状态搜索"的Subversion?或者因为缺乏"保留结账"而无法实现?

另外,如果我们尝试通过"锁"实现Subversion的"保留检查",是否有支持"锁定结账"的GUI(TortoiseSVN,VirtualSVN等)?

谢谢.

更新:例如,在我们进行构建/发布之前,我们希望绝对确保所有文件都已签入.开发人员忘了.所以我们需要知道哪些文件已签出.这可能与Subversion有关吗? 是否可以查看签出(或锁定)文件的列表? 浏览资源管理器中的整个代码库是不可行的,是否有一些报表样式的列表或搜索功能?

svn migration visual-sourcesafe

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

将参数传递给Perl子例程时,是否会影响数据复制性能?

我一直在研究处理大型固定宽度数据文件的几个Perl脚本,从每个数据记录中提取小的子串.我曾经想过,将子串的提取委托给方法调用会很昂贵,因为将数据记录复制到@_数组的开销很大.所以我运行以下来比较(a)直接调用substr(),(b)方法调用将数据记录作为字符串传递,以及(c)方法调用通过引用传递数据记录.

use strict;
use warnings;
use Benchmark qw(timethese);

my $RECORD = '0' x 50000;

my $direct = sub { my $v = substr( $RECORD, $_, 1) for 0..999 };
my $byVal  = sub { my $v = ByVal ( $RECORD, $_)    for 0..999 };
my $byRef  = sub { my $v = ByRef (\$RECORD, $_)    for 0..999 };

sub ByVal { return substr(   $_[0], $_[1], 1) }
sub ByRef { return substr(${$_[0]}, $_[1], 1) }

timethese( 10000, {
    direct    => …
Run Code Online (Sandbox Code Playgroud)

perl

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

<acronym>和<abbr>之间的区别?

在定义上它们看起来是相同的,但是W3C认为它们具有不同的标签定义.之间有什么语义差别<acronym><abbr>语言学,HTML规范和解释方面.

html w3c specifications acronym abbr

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

您在哪里存储PowerShell脚本库?

一旦开始使用PowerShell,您就可能开始收集小而有用的脚本.妥善管理它们很棘手.

  • 你在哪里保留PowerShell脚本?
  • 你如何跟踪版本和备份?
  • 你如何在机器之间同步?
  • 如何集成其他脚本的新版本?(包括处理他们的脚本和你的脚本之间的重大变化)
  • 您是否看到PowerShell V2改变了图片?

powershell scripting

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