小编Ant*_*sky的帖子

在Haskell中将字节转换为Int64s/Floats/Doubles

我正在尝试在Haskell中解析二进制文件格式(Apple的二进制属性列表格式),并且该格式所需的一件事是将字节序列视为(a)无符号的1-,2-或4-字节整数; (b)签署8字节整数; (c)32位float; (d)64位double.将字节序列转换为无符号整数很容易,甚至处理有符号整数也不会很糟糕.但是对于有符号的整数,特别Floats和Doubles,我真的不想自己实现逻辑.我已经能够找到的功能int2Float# :: Int# -> Float#,并int2Double# :: Int# -> Double#GHC.Prim,但这些似乎并不理想(我不特别想与拆箱类型来工作).我希望有一些方法可以从a [Word8]Word32s/Word64s中进行投射.是否有类型的任何功能Word32 -> Float,Word64 -> Double,Word64 -> Int64,或类似的?

haskell bits

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

计算Haskell中的递归关系

问候,StackOverflow.

假设我有两个以下的计算S(i,j)的递归关系

S_ {i,j + 1} = X_ {PA} S_ {i,j} +\frac {1} {2p}(iS_ {i-1,j} + jS_ {i,j-1})\\ S_ {i + 1,j} = X_ {PB} S_ {i,j} +\frac {1} {2p}(iS_ {i-1,j} + jS_ {i,j-1})

我想以渐近最优的方式计算值S(0,0),S(0,1),S(1,0),S(2,0)等.几分钟的铅笔和纸张显示它展现成树状结构,可以通过几种方式横向移动.现在,以后树不太可能有用,所以现在我想生成嵌套列表[[S(00)],[S(10),S(01)],[S(20),S(21),S(12),S(02)],...].我创建了一个函数来生成一个S(i,0)(或S(0,j)的平面列表,具体取决于第一个参数):

osrr xpa p predexp = os00 : os00 * (xpa + rp) : zipWith3 osrr' [1..] (tail osrr) osrr
  where
    osrr' n a b = xpa * a + rp * n * b
    os00  = sqrt (pi/p) * predexp
    rp    = recip (2*p)
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何继续前进.

recursion recurrence haskell

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

Data.Map的合格导入与Prelude冲突

我想在我的代码中使用Prelude.mapData.Map.map用于不同的目的,但合格的导入Data.Map似乎没有帮助:

Prelude> import Data.Map as M
Prelude M> map

<interactive>:3:1:
    Ambiguous occurrence ‘map’
    It could refer to either ‘M.map’
                             imported from ‘Data.Map’
                             (and originally defined in ‘containers-0.5.0.0:Data.Map.Base’)
                          or ‘Prelude.map’
                             imported from ‘Prelude’ (and originally defined in ‘GHC.Base’)
Run Code Online (Sandbox Code Playgroud)

(我还拍了一个错误信息的截图,你可以在这里看到.)

我希望能够分别使用mapM.map; 我怎样才能做到这一点?

import haskell module compiler-errors

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

Scheme中Structs的参数

我有这个结构给人:

(define-struct person  
    (  
    first    ; a string: first name  
    last     ; a string: last name  
    sex      ; a symbol: 'male, 'female  
    eyes     ; a symbol: 'blue, 'brown', 'green  
    hair     ; a symbol: 'blonde, 'brown, 'black, 'red  
    mother   ; a person: empty if not known  
    father   ; a person: empty if not known  
    born     ; a number: year of birth  
    )  
)
Run Code Online (Sandbox Code Playgroud)

然后我让人们:

(define P-00000 (make-person "Alexandra" "Harper" 'female 'blue 'red empty empty 1897))  
(define P-10000 (make-person "Joshua" "Sherman" 'male …
Run Code Online (Sandbox Code Playgroud)

parameters scheme struct racket

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

从地址簿注释字段中逐行获取Apple脚本

我的地址簿注释字段中有两行

Test 1
Test 2
Run Code Online (Sandbox Code Playgroud)

我想将每一行作为单独的值或从notes字段中获取最后一行.

我试过这样做:

tell application "Address Book"
 set AppleScript's text item delimiters to "space"
 get the note of person in group "Test Group"
end tell
Run Code Online (Sandbox Code Playgroud)

但结果是

{"Test 1
Test 2"}
Run Code Online (Sandbox Code Playgroud)

我在找 :

{"Test1","Test2"}
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

applescript automator

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

在 Haskell 中导出读取(和显示)时避免反斜杠编码 utf8 字符

Text派生Read实例时,我无法将 utf8 字符解析为。例如,当我在ghci 中运行以下...

> import Data.Text
> data Message = Message Text deriving (Read, Show)
> read ("Message \"?\"") :: Message
Message "\8594"
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来使我的文本保持在Messageutf-8 编码中吗?即结果应该是...

Message "?"
Run Code Online (Sandbox Code Playgroud)

(PS 我已经将我的序列化消息接收为Text,但目前需要unpack到 aString才能调用read。我很想避免这种情况......)

编辑:啊对不起,答案正确地指出它show不是read转换为"\8594"- 有没有办法在没有反斜杠编码的情况下再次show转换回Text

encoding parsing text haskell utf-8

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

如何在Haskell中编写一个两个参数和结果都是多态的函数

我怎么能写一个像int gog(float i)float gog(int i)(通常称为"重载")的函数?一些简单的重载可以通过实现

class PP a where
  gog :: a -> Int

instance PP Bool where
  gog _ = 1

instance PP Char where
  gog _ = 1
Run Code Online (Sandbox Code Playgroud)

但上面的例子只使参数具有多态性.如果我们想要使参数和结果都具有多态性,我们必须编写如下内容:

class PP a where
  gog :: Uu b => a -> b

class UU a where
  -- This function can convert between different types of UU.
  fromUuToUu :: UU b => a -> b 
Run Code Online (Sandbox Code Playgroud)

没有fromUuToUu,结果中的多态性gog是不可能的.但我不能写fromUuToUu,这与这个问题的主题相关,即如何创建一个参数和结果都是多态的函数.

parameters polymorphism haskell typeclass

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

Api上的Umbraco Imagegen GetCropUrl

我在Umbraco v7.1上使用ImageGen.到目前为止一直很好,我能通过我的Razor代码获取裁剪网址.

但是,我需要在我的Api控制器上获取裁剪网址,但我不确定如何执行此操作.

这就是我目前正试图获得它的方式.

ModelImage = Services.MediaService.GetById(galleryId).GetValue("modelImage").ToString()
Run Code Online (Sandbox Code Playgroud)

...其中ModelImage是"Image Cropper"数据类型的别名.这将返回src属性中的图像URL以及裁剪信息(添加换行符):

ModelImage: "{
  "focalPoint": {
    "left": 0.5,
    "top": 0.5
  },
 "src": "/media/1828/bob-marley-thumbnail-update.jpg",
  "crops": [
    {
      "alias": "modelListCrop",
      "width": 298,
      "height": 380,
     "coordinates": {
        "x1": 0.071221447830289469,
        "y1":  .051177864855964005,
        "x2": 0.42344542232622806,
        "y2": 0.45016601603464318
      }
    }
  ]
}"
Run Code Online (Sandbox Code Playgroud)

有谁知道如何获得裁剪网址而不是原始图片网址?

c# umbraco

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

如何在Haskell中向newtype添加相等比较(==)

我正在尝试在Haskell中定义一个名为"Poly"的新类型,其中类型是表示多项式表达式的"Num"列表.[1,2,3]对应于3x ^ 2 + 2x + 1,因此[4,5,6,0,0 ... 0]与[4,5,6]具有相同的多项式.

我已经创建了一个名为"chop"的辅助函数来从列表的末尾删除0,但是我在比较两个列表时遇到了麻烦.任何想法为什么我使用"实例"在这里不起作用?

它编译,但当你尝试比较2个Poly实例时,WinGHCi挂起.

newtype Poly a = P [a]
x :: Num a => Poly a

chop :: (Eq a, Num a) => Poly a -> Poly a
chop (P l) = if (last l) == 0 then chop (P $ init l) else P l

instance (Num a, Eq a) => Eq (Poly a) where
    (==) m n = if (chop m) == (chop n) then True else False
Run Code Online (Sandbox Code Playgroud)

haskell typeclass newtype

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

创建大小为零的灵活数组成员是否合法?

C99标准允许创建灵活的阵列成员,例如

typedef struct pstring {
  size_t length;
  char   string[];
} pstring;
Run Code Online (Sandbox Code Playgroud)

然后用类似的东西初始化pstring* s = malloc(sizeof(pstring) + len).len为零是允许的吗?它似乎是一致的,并且不时地节省空间(pstring当然可能不是这个例子).另一方面,我不知道下面的代码会做什么:

pstring* s = malloc(sizeof(pstring));
s->string;
Run Code Online (Sandbox Code Playgroud)

这看起来似乎可能适用于一个编译器而不是另一个编译器,或者在一个操作系统而不是另一个操作系统上,或者在某一天而不是另一个,所以我真正想知道的是标准对此的说法.这是malloc示例代码中未定义的行为,还是仅对其s->string无效的访问,还是完全不同的其他内容?

c struct c99 flexible-array-member

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

如何(如果可能)将自定义字段添加到 Django / REST 中的分页响应中?

假设我有如下视图:

class FooView(ListAPIView):
    serializer_class = FooSerializer
    pagination_class = FooPagination
Run Code Online (Sandbox Code Playgroud)

它返回一个典型的分页响应,例如:

{
     "count":2,
     "next":null,
     "previous":null,
     "results":[
      {
          "id":1,"name":"Josh"
       },
      {
          "id":2,"name":"Vicky"
      }]
}
Run Code Online (Sandbox Code Playgroud)

如何(如果可能)将自定义字段添加到此响应中以使结果如下?

{
    "count":2,
    "next":null,
    "previous":null,
    "custom":"some value",
    "results":[
    {
         "id":1,"name":"Josh"
     },
     {
         "id":2,"name":"Vicky"
      }]
}
Run Code Online (Sandbox Code Playgroud)

假设“某个值”以适当的方法计算并存储,例如:

def get_queryset(self):
    self.custom = get_custom_value(self)
    # etc...
Run Code Online (Sandbox Code Playgroud)

django pagination django-rest-framework

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

C:这个char指针赋值有什么问题?

一个新手问题:

我正在练习赋予char指针,但发现没有打印出来.这是代码:

#include <stdio.h>

int main (void)
{
    char * option_string = NULL;
    option_string = (char*)malloc(sizeof(5));
    memset(option_string, 0, sizeof(char) * 5);

    int j;
    for ( j = 0; j < 5; j++)
    {
        *option_string++ = 'a';
    }

    printf("print options_string: %s\n", option_string); //!nothing was printed out!
    free(option_string);
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

c string pointers character variable-assignment

0
推荐指数
2
解决办法
2406
查看次数