小编Jon*_*eal的帖子

如何使用Y-Combinator; 为什么这个无限递归返回9?

Y - Combinator

我一直在努力学习Y - Combinators (对它的解释也很可爱)并且从这个wiki中得到了一个例子.无论是Haskell还是Python,都会对这个主题进行深入的解释.Pleaaase!

fix :: (a -> a) -> a
fix f = f (fix f)
Run Code Online (Sandbox Code Playgroud)

问题

应用时调用的函数fix返回,我不知道为什么; 当我按照堆栈进行可视化时.9fix(\x -> 9)f(f ... (fix f) ...)

>> fix (\x -> 9)
>> 9
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming y-combinator fixpoint-combinators

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

使用ramda按属性分组并求和指定属性的结果

我需要使用ramda转换对象数组的帮助;我想

  1. 按指定属性分组
  2. 对结果集的另一个属性求和

给定这样的数组:

var arr = [
  {
    title: "scotty",
    age: 22,
    score: 54,
    hobby: "debugging"

  },  {
    title: "scotty",
    age: 22,
    score: 19,
    hobby: "debugging"
  }
  ,  {
    title: "gabriel",
    age: 40,
    score: 1000
  }
];
Run Code Online (Sandbox Code Playgroud)

如果我要分组title并求和,age则应返回以下值汇总

var arr = [
  {
    title: "scotty",
    age: 44,
    hobby: "debugging",
  }
  ,  {
    title: "gabriel",
    age: 40,
    score: 1000
  }
];
Run Code Online (Sandbox Code Playgroud)

当未指定属性的值不同时,应将其省略,但如果未指定属性的值相同,则应保留在最终结果中。

**我的解决方案**

    /*
 * [Student]
 */
var arr = [
  {
    title: "scotty",
    age: 22, …
Run Code Online (Sandbox Code Playgroud)

javascript typescript ramda.js

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

来自SQL Server的json格式化响应如何工作?

我有一个存储过程,将查询结果作为json返回,我想了解这个查询将如何在ASP.NET应用程序中获取我的代码.

存储过程:

Select 
       SUBJECT AS [subject],
       STARTDATE AS [start]
       ENDDATE AS [end],
       ID AS [id]
FROM 
       SOME_TABLE
FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)

存储过程中的Json格式:

[
 {
  "subject": _,
  "start": _,
  "end":_,
  "id":_
 },
 ...]
Run Code Online (Sandbox Code Playgroud)

aspx.cs代码隐藏

(来自函数的片段)

  try
        {
            if (sqlcon.State == ConnectionState.Closed)
            {
                sqlcon.Open();
            }

            SqlCommand sccmd = new SqlCommand("MY_STORED_PROCEDURE", sqlcon);
            sccmd.CommandType = CommandType.StoredProcedure;
            sccmd.Parameters.AddWithValue("@value1", valueID);
            sccmd.Parameters.AddWithValue("@value2", valueID);
            SqlDataReader sdrreader = sccmd.ExecuteReader();

            while (sdrreader.Read())
            {
                // lost on what to do here
            }

            sdrreader.Close();
        }
        catch (Exception ex){}
        finally { sqlcon.Close(); }
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中存储这个json响应,但我不知道如何.在做出响应json之前,我正在使用 …

c# sql asp.net json

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

为什么first()rxjs运算符会继续返回数组

我有一个类型功能的服务

getSummary(id: string, universe: string): Observable<INTsummary[]>

当我调用它时我只想要第一项INTsummary[],所以我试图使用rxjs first运算符来做到这一点:

  loadQuickSummary(){
    var obj = this.myService.getSummary(this.user.id, this.user.universe).first();
    console.log("getting quick summary");
    obj.subscribe(r => {
      console.log(`first value ${JSON.stringify(r)}`)
    })
  }
Run Code Online (Sandbox Code Playgroud)

从阅读文档和stackoverflow,这应该返回一个对象,但我得到了一个数组INTsummary.

我怎样才能回到INTsummary[]数组中的第一个对象?

javascript arrays rxjs ionic2 angular

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

如何编写半群实例?

问题

给定数据类型,实现Semigroup实例.以下是我实施的数据类型: data Or a b = Fst a | Snd b deriving (Eq, Show, Num).它应该像这样运作:

Prelude> Fst 1 <> Snd 2
Snd 2
Prelude> Fst 1 <> Fst 2
Fst 2
Prelude> Snd 1 <> Fst 2
Snd 1
Prelude> Snd 1 <> Snd 2
Snd 1
Run Code Online (Sandbox Code Playgroud)

当我测试像> Fst "help" <> Fst "me"它正常工作的值,但当我测试其他值时,我得到错误.当我尝试通过从错误中派生类来修复这些错误时,我会收到更多错误.我在这做错了什么?

我的守则

data Or a b =
    Fst a
  | Snd b
  deriving (Eq, Show)

instance (Semigroup a, Semigroup b, Num a, Num b) …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming monoids

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

使用没有函数或类语法的C#括号

我是C#的新手,我找不到合适的搜索内容.我试图理解这三种语法之间的区别:

  1. public string Topic(){}
  2. public class Topic{}
  3. public string Topic{}

我知道第一个是一个功能而第二个是一个类,但让我困惑的是第三个是什么.

什么#3叫做以及如何使用?

任何可以提供清晰度的东西.

c# syntax

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

比较两个JSON对象,仅返回更改即可返回另一个JSON对象

我是JavaScript的新手,正在尝试查找两个JSON对象之间的区别。JSON对象及其数据的结构如下所示。我在线获得了一个代码,该代码适用于普通的JSON对象,但是由于它也具有数据数组,因此我认为它不起作用。我尝试了其他事情,但没有结果。如果您对此有指点,将不胜感激。谢谢。

JSON对象1(obj1): {id: 1, details: Array[2], profession: "Business"}

{
  "id": "1",
  "details": [{
      "name": "Peter",
      "address": "Arizona",
      "phone": 9900998899
    },
    {
      "name": "Jam",
      "address": "Kentucky",
      "phone": 56034033343
    }
  ],
  "profession": "Business"
}
Run Code Online (Sandbox Code Playgroud)

JSON对象2(obj2): {id: 2, details: Array[2], profession: "Business"}

{
  "id": "2",
  "details": [{
      "name": "Peter",
      "address": "Arizona",
      "phone": 9900998899
    },
    {
      "name": "David",
      "address": "Boston",
      "phone": 434323434
    }
  ],
  "profession": "Business"
}
Run Code Online (Sandbox Code Playgroud)

解:

compare(obj1, obj2) {

  var result = {};

  for (key in obj1) {
    if (obj2[key] != obj1[key]) …
Run Code Online (Sandbox Code Playgroud)

javascript json

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

Haskell:为什么这不正确?我在另一个数据声明中将数据类型作为类型构造函数

问题:

使3元组的所有组合代表名词 - 动词 - 名词句子.为此,我决定尝试让问题更容易阅读,因为通过使用数据类型并遇到此问题,verbComb的未来看起来并不"干净".请帮忙!

我的代码:

type Letter = Char

data Word = Noun (Letter, Letter, Letter)| Verb (Letter, Letter,    Letter)
  deriving (Ord, Eq, Show)

data Sentence = (Word, Word, Word)
  deriving (Show)

stops = "pbtdkg"
vowels = "aeiou"

vowelComb :: String -> String -> [(Char, Char, Char)]
vowelComb s v  = combine s v s ++ combine (reverse s) v s ++ combine s v (reverse s)
  where combine f s t = [ (x,y,z) | x <- …
Run Code Online (Sandbox Code Playgroud)

haskell types functional-programming

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

这些模式对我来说看起来很详尽,"非详尽模式错误"?为什么?

问题

在从Haskell书中记笔记时,这个代码示例应该返回:Left [NameEmpty, AgeTooLow],但它只返回第一个案例Left [NameEmpty].然后,当我传递mkPerson2它应该返回的函数结果时Right Person _ _,我得到了一个"非详尽模式``错误.我已经查看了这段代码很长一段时间了,但它对我来说是正确的.我在这里错过了什么?关于这个问题的任何解释都将非常感谢,谢谢!

我正在使用的书

module EqCaseGuard where

type Name = String
type Age  = Integer
type ValidatePerson a = Either [PersonInvalid] a

data Person = Person Name Age deriving Show

data PersonInvalid = NameEmpty
                   | AgeTooLow
                   deriving Eq

ageOkay :: Age -> Either [PersonInvalid] Age
ageOkay age = case age >= 0 of
True  -> Right age
False -> Left [AgeTooLow]

nameOkay :: Name -> Either …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming pattern-matching

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

脚本不是写入HTML

有人能告诉我这段代码有什么问题,我是JS的新手,所以这可能是一个简单的问题.

var x = "Hello"
var y = "Hi"
var z = "Hola"
var n = Math.random();
if (n < .33333) {
  document.write('<h1 style="text-align:center;">' + x + "</h1>");
}
elseif(n < .6666666) {
  document.write('<h1 style="text-align:center;">' + y + "</h1>");
}
else {
  document.write('<h1 style="text-align:center;">' + z + "</h1>");
}
Run Code Online (Sandbox Code Playgroud)

javascript

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