问题列表 - 第14099页

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

erlangs递归函数不仅仅是一个goto?

只是想直截了当.考虑这个Erlang代码的例子:

 test() ->
      receive
          {From, whatever} ->
                %% do something
               test();
          {From, somethingelse} ->
               %% do something else
               test();
 end.
Run Code Online (Sandbox Code Playgroud)

是不是test()调用,只是一个转到?

我问这个是因为在C中我们了解到,如果你进行函数调用,返回位置总是放在堆栈上.我无法想象这里的Erlang一定是这种情况,因为这会导致堆栈溢出.

基本的.我们有两种不同的调用函数的方法:goto和gosub.goto刚刚把程序流引导到其他地方,gosub记得你来自哪里,所以你可以回来.

考虑到这种思维方式,我可以更容易地看一下erlang的递归,因为如果我只读:test()作为goto,那么根本就没有问题.

因此我的问题:不是erlang只是使用goto而不是记住堆栈上的返回地址?

编辑:

只是为了澄清我的观点:

我知道goto可以用在某些语言中来跳过这个地方.但是,只是suupose而不是someFunction()你也可以这样做:在第一个例子中返回流返回的一些函数(),在第二个例子中,流程只在someFunction中继续并且永远不会返回.

所以我们通过跳转到方法起点来限制正常的GOTO行为.

如果你这样看,那么erlang递归函数调用看起来就像一个goto.

(在我看来,goto是一个函数调用,无法返回你来自的地方).这正是erlang示例中正在发生的事情.

erlang recursion tail-recursion goto

10
推荐指数
2
解决办法
1474
查看次数

我可以重载Perl =?(使用Tie时出现问题)

我选择使用领带并找到:

package Galaxy::IO::INI;
sub new {
    my $invocant = shift;
    my $class = ref($invocant) || $invocant;
    my $self = {']' => []}; # ini section can never be ']'
    tie %{$self},'INIHash';
    return bless $self, $class;
}

package INIHash;
use Carp;
require Tie::Hash;

@INIHash::ISA = qw(Tie::StdHash);

sub STORE {
    #$_[0]->{$_[1]} = $_[2];
    push @{$_[0]->{']'}},$_[1] unless exists $_[0]->{$_[1]};
    for (keys %{$_[2]}) {
        next if $_ eq '=';
        push @{$_[0]->{$_[1]}->{'='}},$_ unless exists $_[0]->{$_[1]}->{$_};
        $_[0]->{$_[1]}->{$_}=$_[2]->{$_};
    }
    $_[0]->{$_[1]}->{'='};
}
Run Code Online (Sandbox Code Playgroud)

如果我删除最后一个"$ [0] - > {$ [1]} …

oop perl overloading package tie

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

新手:Django:在传递给模板之前将计算结果添加到Queryset

在我与Django的新生活的第二天,请原谅我的问题的简单性.

我有一个现有的数据库表(只读访问),我已经成功地使用网址,视图,模型和所有好东西在网页上显示内容.

我遇到的挑战是该表不包含我需要显示的所有信息.该表包含测试结果,包括columns,sampletime,samplevalue,sampleresult.我需要根据我从这些列计算的内容显示不同的数据.

我的最终目标是使用flotr将此信息显示为时间序列图.现在我很乐意将我需要的数据转储到网页上的表格中.(所以我可以看到结果数据)

我想传递给模板的是,

  • jssampletime(sampletime datetime对象转换为javascript epoch ms)
  • resultvalue(滚动总和+ - 基于样本结果是好还是坏的样本值)

我可以使用def函数创建jssampletime和resultvalue.我认为我会将这些函数添加到views.py中

我想我需要做的是迭代views.py中的querySet并将结果存储在我传递给模板的字典列表中.像这样的东西(代码没有经过测试).

views.py

# views.py
# Sudo code to assit in asking the question
from django.shortcuts import render_to_response
from thing.reporter.models import Samples

def _datetime_to_js(sampletime):
    #.. date conversion epoch magic
    return jsd_result

def _rolling_sum(samplevalue,sampleresult):
    #.. summing magic
    return sum_result

def dumptable(request): # The def that is called by urls.py
    object_list = Samples.objects.all()

    list_for_template = []
    for row in object_list:
        jssampletime = _datetime_to_js(row.sampletime)
        resultvalue  = _rolling_sum(row.samplevalue,row.sampleresult) 
        list_for_template.append({'jssampletime':jssampletime,'resultvalue':resultvalue})   

    return …
Run Code Online (Sandbox Code Playgroud)

django django-queryset

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

如何在Python中打印异常?

try:
    something here
except:
    print('the whatever error occurred.')
Run Code Online (Sandbox Code Playgroud)

如何在except:块中打印错误/异常?

python error-handling exception

609
推荐指数
9
解决办法
70万
查看次数

jQuery对象如何模仿数组?

jQuery对象就像数组一样,不会污染原生原型.这是如何实现的?

我知道这不仅仅是带有数字键的对象 - 所以也许只是提供相应的方法(类似的东西jQuery.prototype.indexOf = Array.prototype.indexOf).

我用Google搜索并查看了源代码,但找不到明确的答案.

javascript jquery

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

<T,TU等的目的>

老实说,我不知道他们叫什么.我一直无法在互联网上找到文章.

所以我明白你可以这样做:

public struct Pair<T, U>
{
    public readonly T Value1;
    public readonly U Value2;

    public Pair(T fst, U snd)
    {
        this.Value1 = fst;
        this.Value2 = snd;
    }
    public override String ToString()
    {
        return "(" + Value1 + ", " + Value2 + ")";
    }
    public Pair<U, T> Swap()
    {
        return new Pair<U, T>(Value2, Value1);
    }
}
Run Code Online (Sandbox Code Playgroud)

它可能是一个class而不是一个struct.

但我很困惑,出于什么目的?某种性能提升?据我所知,您可以使用这些东西(抱歉,这是什么名称?)来保存值.但是你不会总是知道它应该拥有什么样的数据吗?例如:如果您需要存储产品,则只需制作产品类.当然,你知道它需要掌握什么样的数据,因为你正在设计代码.

所以是的,我想我的问题是:这个的目的是什么,与普通物体相比有什么优势; 您指定了更多

我想我不清楚.我也想知道:有没有充分的理由去创造像上面那样的东西?例如,一个更具体的对象,例如将产品数据存储在产品对象中,而不是一些可以接收所有内容的通用对象.

新:更多文本:另外,你怎么能处理完全通用的错误编码?当我不知道我必须处理什么样的数据类型时,我担心会进行任何类型的数学操作或实际上任何操作.如果它需要我为所有数据类型编写错误处理,那么我真的看不到这些通用参数的优点.

c# generics

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

使用System.Guid作为ASP.Net MVC中的主键?

我在数据库中创建了一个表,它有一个System.Guid作为它的主键.已生成所需的ADO.Net实体框架模型,并已映射所需的存储过程.

我创建了一个新的控制器,并为数据的创建和编辑添加了基本的必需代码.但是,当单击链接以编辑特定记录时,会生成以下错误:

The parameters dictionary contains a null entry for parameter '[MyId]' of non-nullable type 'System.Guid' for method 'System.Web.Mvc.ActionResult Edit(System.Guid)' in '[MySite].[MyController].[SpecificController]'. To make a parameter optional its type should be either a reference type or a Nullable type. Parameter name: parameters

编辑操作在控制器中声明如下:

public ActionResult Edit(Guid itemId)
{
    return View();
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(MyItem itemToModify)
{

}
Run Code Online (Sandbox Code Playgroud)

添加新记录时,通过存储过程生成新Guid,列表显示正确的Guid.Url也传递正确的Guid进行检索.

我似乎无法捕捉到失败的重点,但我如何将System.Guid作为参数传递给Controller?

asp.net-mvc controller guid primary-key

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

C++:包括头文件失败编译但包括源cpp文件编译

这可能非常简单,但它在我走下c ++路的过程中阻碍了我.我目前正在通过加速c ++阅读,我决定过度使用其中一个练习.这一切都运行良好,我的代码运行良好,直到我将它分成一个标题和单独的源文件.当我导入包含我写的一些函数的.cpp源文件时,一切运行正常.但是,当我尝试通过头文件导入函数时,它失败可怕,我得到以下错误.我正在使用Geany的gcc进行编译,直到现在它都运行良好.谢谢你的帮助.

错误:

g++ -Wall -o "quartile" "quartile.cpp" (in directory: /home/charles/Temp)
Compilation failed.
/tmp/ccJrQoI9.o: In function `main':
quartile.cpp:(.text+0xfd): undefined reference to `quartile(std::vector<double, std::allocator<double> >)'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

"stats.h":

#ifndef GUARD_stats_h
#define GUARD_stats_h

#include <vector>

std::vector<double> quartile(std::vector<double>);

#endif
Run Code Online (Sandbox Code Playgroud)

"stats.cpp":

#include <vector>
#include <algorithm>
#include "stats.h"

using std::vector;    using std::sort;

double median(vector<double> vec){
     //code...
}

vector<double> quartile(vector<double> vec){
     //code and I also reference median from here.
}
Run Code Online (Sandbox Code Playgroud)

"quartile.cpp":

#include <iostream>
#include <vector>
#include "stats.h" //if I change this …
Run Code Online (Sandbox Code Playgroud)

c++ gcc header-files

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

如何将字符串放入数组中,用新行拆分?

我的数据库中有一个包含换行符的字符串.我想将该字符串转换为数组,并为每个新行跳转数组中的一个索引位置.

如果字符串是:

我的text1
我的文本2
我的文字3

我想要的结果是:

Array
(
    [0] => My text1
    [1] => My text2
    [2] => My text3
)
Run Code Online (Sandbox Code Playgroud)

php string line-breaks

199
推荐指数
11
解决办法
32万
查看次数