小编Shr*_*roy的帖子

使用J编程语言编写大型项目

泄露

这是一个"普遍"的问题,也许没有具体的答案,但它并不打算作为一场火焰战争.在开始我的项目之前,我真的想要一些信息.

我必须实现一个特别的项目,它将真正受益于J提供的数据结构和抽象.这是一个大型项目,旨在作为大型(软实时)Web应用程序的核心组件.所以表现非常重要.

我一直试图在大型商业或开源项目中找到有关J的使用的一些信息,但我无法找到任何有关我的决定继续前进的信息.我有:

  • 搜索了Google趋势,但收到了以下回复:"您的条款 - j编程语言 - 没有足够的搜索量来显示图表."
  • 搜索免费(代码),并没有找到使用J的单个项目
  • 在Sourceforge上搜索,没有找到使用J的单个项目
  • 搜索了Lambda the Ultimate,并且只发现了以下倾向于引用APL的讨论
  • 通常在Google和Bing上进行搜索,但未能找到使用J的部署中的大型项目的任何示例

我在为项目使用J时会犯一个错误吗?它似乎拥有我想要的一切 - 特别是在数据结构,抽象和简洁方面.当然,我可以花时间在F#,C#或C++中模拟所有这些属性,但J已经拥有它们,所以...

有人可以告诉我在重要项目中使用J(或任何晦涩的语言)的一些缺点吗?它的表现不够好吗?它没有图书馆吗?还有什么我应该知道的吗?

在此先感谢您的回复.

performance functional-programming j

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

确定具有n个内核的计算机中要启动的线程数的最佳方法是什么?(C++)

我有vector<int>10,000,000(1000万)个元素,我的工作站有四个核心.有一个函数叫做ThrFunc整数运算.假设ThrFunc每个整数的运行时间vector<int>大致相同.

我应该如何确定要触发的最佳线程数?答案就像元素数量除以核心数一样简单吗?或者是否有更微妙的计算?

编辑以提供额外信息

  • 不需要阻挡; 每个函数调用只需要只读访问权限

c++ multithreading multicore

20
推荐指数
3
解决办法
6099
查看次数

停电后Visual Studio文件损坏

我有一个通用的处理程序C#文件,带有"ashx"扩展,在Visual Studio 2010 Professional中打开,当我突然断电时.现在,在重新启动计算机并重新打开文件后,我看到的只是一堆十六进制值,而不是C#代码.

C#文件已损坏

真的很感激在恢复文件内容方面的一些帮助.这是项目中最重要的一个.

c# visual-studio-2010

15
推荐指数
0
解决办法
1754
查看次数

找不到匹配命令"dotnet-tool"的可执行文件

我正在尝试使用以下命令Fake官方站点安装(在站点提供):

dotnet tool install fake-cli -g
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

No executable found matching command "dotnet-tool"
Run Code Online (Sandbox Code Playgroud)

我的dotnet版本是2.1.201,我正在运行Windows 10 Professional,包含所有最新更新.

.net f#-fake .net-core

15
推荐指数
2
解决办法
5276
查看次数

使用Console.WriteLine(C#)或printfn(F#)写粗体文本?

是否有使用Console.WriteLine(C#)或printfn(F#)编写粗体文本的快捷方法?

如果不是粗体,也许还有其他一种视觉区分,比如带下划线的文字?

.net c# windows console f#

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

F#3.1将适用于VS 2013 Express for Web吗?

当我安装Visual Studio 2013 Express时,我的Visual Studio 2012 Express安装已被删除.但是我无法让F#在Visual Studio Express 2013中工作.官方下载页面仍然提示访问者使用Visual Studio 2012 Express下载F#.

有谁知道是否有更新,或者我是否必须重新安装Visual Studio 2012 Express?

提前致谢.

f# visual-studio-2012 visual-studio-2013

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

LINQ是否缓存计算值?

假设我有以下代码:

var X = XElement.Parse (@"
    <ROOT>
        <MUL v='2' />
        <MUL v='3' />
    </ROOT>
");
Enumerable.Range (1, 100)
    .Select (s => X.Elements ()
        .Select (t => Int32.Parse (t.Attribute ("v").Value))
        .Aggregate (s, (t, u) => t * u)
    )
    .ToList ()
    .ForEach (s => Console.WriteLine (s));
Run Code Online (Sandbox Code Playgroud)

什么是.NET运行时实际在这里做什么?难道解析和转换属性整数各100次,还是足够聪明弄清楚,它应该缓存解析值,而不是重复计算的范围中的每个元素?

而且,我怎么会自己搞清楚这样的事情呢?

在此先感谢您的帮助.

.net c# linq clr4.0

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

以下函数尾递归吗?

我有一个函数,其中星号行是一个涉及递归调用的连接.当连词工作时,如果h1 <> h2那时将不进行递归调用.但是如果进行了调用,那么编译器是否仍会回溯并在true值上执行一大堆连接?还是会忽视这个不必要的步骤?

换句话说,以下函数是否有效尾递归?

let isExtensionOf<'A when 'A : equality> (lst1 : list<'A>) (lst2 : list<'A>) : bool =
    let rec helper (currLst1 : list<'A>) (currLst2 : list<'A>) : bool =
        match currLst1, currLst2 with
        | h1 :: _, [] -> false
        | [], _ -> true
        | h1 :: t1, h2 :: t2 -> (h1 = h2) && (helper t1 t2) // *
    helper lst1 lst2
Run Code Online (Sandbox Code Playgroud)

是的,我知道应该写星号if h1 = h2 then helper t1 t2 …

recursion f# tail-recursion

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

如果歧视联盟有任何问题有很多选择吗?

是的,这是一个微不足道的问题,但我找不到专家意见.

我正在使用计算表达式来排序服务器端进程.当我的函数具有相同的签名时,它会给我带来极大的帮助,因此我有一个区分的联合,其中定义了不同的组合.我有几个快速,初学者的问题.

  1. DU可以选择的数量是否有建议的上限?目前我的DU有九个选项,但随着项目的进展,这个数字会增加.如果我在项目结束时达到30或40怎么办?

  2. 如果某些选项变得"长",可能会出现问题吗?目前,平均选项有大约四到五种基本类型 - 类似于 - bool * string * XElement * int * string但最长的选项具有以下定义:

    bool*int*int*int*string*XElement*XElement*DateTime选项*DateTime选项*字符串*字典*字典

我不希望有这么长的选择.但是,我是否在为表现方面的痛苦世界做好准备?

提前致谢.

f# discriminated-union

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

C++ unordered_map 导致编译时错误

我有以下几点:

#include<iostream>
#include<unordered_map>
#include<tuple>

using namespace std;

class CTest {
    // Properties
    public:
        unordered_map<const string, tuple<int, int> > Layout;
    // Methods
    public:
        CTest ();
        ~CTest ();
};

CTest::CTest () {
    Layout["XYZ"] = make_tuple (0, 1);
}

CTest::~CTest () {
  // Do nothing
}

int main (int argc, char *argv[]) {
    CTest Test;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译这个简单的程序会出现以下错误:

错误 C2678:二进制“==”:未找到采用“const std::string”类型的左侧操作数的运算符(或没有可接受的转换)

我在 Windows 7 中使用 Visual Studio 2010 Professional。

c++ unordered-map

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