我正在寻求将3D Perlin噪声算法调整到更低的尺寸,但是我遇到了梯度函数的问题,因为我不完全理解这个推理.
原始的Perlin渐变函数有四个参数:a hash
和三维坐标(x, y, z)
.函数的结果将根据hash mod 16
下面的值返回.
0
: x + y
1
: -x + y
2
: x - y
3
: -x - y
4
: x + z
5
: -x + z
6
: x - z
7
: -x - z
8
: y + z
9
: -y + z
10
: y - z
11
: -y - z
12
: y + x
13
: …我在Project Euler上做了问题20 - 找到100的数字之和!(阶梯,而不是热情).
这是我写的程序:
import Data.Char
main = print $ sumOfDigits (product [1..100])
sumOfDigits :: Int -> Int
sumOfDigits n = sum $ map digitToInt (show n)
Run Code Online (Sandbox Code Playgroud)
我编译它ghc -o p20 p20.hs
并执行它,只0
在我的命令行上.
困惑,我调用ghci
并运行以下行:
sum $ map Data.Char.digitToInt (show (product [1..100]))
这返回了正确的答案.为什么编译版本不起作用?
考虑一个没有副作用的Web API方法,但它将二进制数据作为参数.一个示例是一种方法,该方法告诉用户他们的图像是否被图片化,但是不会将图像或结果永久地存储在其服务器上.
这种方法应该是a GET
还是POST
?
GET
似乎没有推荐的方法在URL参数之外发送数据,但该方法的行为意味着a GET
,根据HTTP规范,这是为了安全,无状态响应.这在REST的语义下尤其受到限制,这意味着POST
方法在服务器上创建了一个新对象.
什么是16位灰度TIFF的位格式?我读到只有10位实际上包含强度数据 - 这是真的吗?当我尝试使用imshow()在Matlab中打开16位TIFF时,图像是完全黑色的,但同样的图像缩小到8位显示正常.
在OCaml中创建接口的传统方法是什么?通过创建接口文件foo.mli
和实现文件foo.ml
,可以使用单个实现的接口,但是如何为同一个接口创建多个实现?
Haskell是一种具有许多根植于形式数学的特征的语言.我应该学习哪些数学主题才能更深入地理解和理解语言?例如,我认为抽象代数和范畴理论都是很好的主题.
考虑一个需要很长时间的方法的 Web API。客户端既可以发出同步请求并等待响应,也可以发出异步请求并接收标准202 Accepted
响应和状态链接。
在 RESTful 语义下,这两个选项应该作为两个单独的 URI 存在,还是应该是相同的 URI,并且在标头参数中带有异步选项?
当我们对API进行向后兼容的更改时,我们会发布新的日期版本.当前版本是2014-12-08.
它提供了如何访问charge
特定版本的API 的示例:
curl https://api.stripe.com/v1/charges \
-u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \
-H "Stripe-Version: 2014-12-08
Run Code Online (Sandbox Code Playgroud)
如果header参数是指定版本的内容(在本例中为2014-12-08),\v1\
则url中的用途是什么?
据我所知,一个箭头是Profunctor,其中一个可以将其输入和输出,而是一个可以映射一个箭头在一个仿函数?
据我所知,答案是"不",因为fmap
函数类型签名是(a -> b) -> f a -> f b
并且不承认Arrow a b
,但我希望我所要求的是清楚的.
我正在寻找一种方式,例如,变换Maybe
输入带有箭头,在Nothing
去Nothing
和Just x
去Just y
哪里y
是将箭头的结果x
.
这个问题是基于这种合理多态的博客文章中描述的高级数据模式.
在下面的代码块中,我定义了一个类型系列HKD
和一个数据类型Person
,其中的字段可以是Maybe
或Identity
.
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies #-}
import Data.Aeson
-- "Higher Kinded Data" (http://reasonablypolymorphic.com//blog/higher-kinded-data)
type family HKD f a where
HKD Identity a = a
HKD Maybe a = Maybe a
data Person f = Person
{ pName :: HKD f String
, pAge :: HKD f Int
} deriving (Generic)
Run Code Online (Sandbox Code Playgroud)
然后我尝试派生ToJSON
这种类型的实例.
-- Already provided in imports:
-- instance ToJSON String
-- instance ToJSON Int …
Run Code Online (Sandbox Code Playgroud)