小编the*_*uke的帖子

Haskell记录模式匹配

我正在寻找一种在不需要实际数据时简化功能模式的方法:

data X = A | B String | C Int Int String
myfn :: X -> Int
myfn A = 50
myfn (B _) = 200
myfn (C _ _ _) = 500
Run Code Online (Sandbox Code Playgroud)

有没有办法为匹配C制作一个更简单的模式,只是丢弃这些值?

hsdev添加了一个提示"提示:使用记录模式",但谷歌并没有帮助我.

haskell record pattern-matching algebraic-data-types

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

在GO中使用标准包验证URL

GO中的标准包中是否有任何功能可以验证URL?

我在初始搜索时没有找到任何内容,我宁愿不采用正则表达式检查.

validation go

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

Golang和继承

我想在我的库中提供一个可以"扩展"的方法的基础结构.

此基础结构的方法依赖于扩展结构中的方法.这在Go中是不可能的,因为struct方法只能访问结构自己的字段,而不能访问父结构.

关键是要具有我不必在每个扩展类中重复的功能.

我已经提出了这种模式,它运行良好,但由于它的循环结构看起来很复杂.

我从来没有在其他Go代码中找到类似的东西.这是非常不合适的吗?我可以采取哪种不同的方法?

type MyInterface interface {
  SomeMethod(string)
  OtherMethod(string)
}

type Base struct{
  B MyInterface
}

func (b *Base) SomeMethod(x string) {
  b.B.OtherMethod(x)
}

type Extender struct {
  Base
}

func (b *Extender) OtherMethod(x string) {
  // Do something...
}

func NewExtender() *Extender { 
  e := Extender{}
  e.Base.B = &e
  return &e
}
Run Code Online (Sandbox Code Playgroud)

inheritance idiomatic go

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

HTML5中的交互式平面图

我必须为公寓楼开发交互式平面图导航仪和观察器,这将成为其基于Flash的前身.

我现在正在评估最适合在HTML5中实现此功能的技术和技术.我将不得不支持所有常见的浏览器(从7开始的IE).

要求:

  • 向用户呈现建筑物的几个静态室外视图,在他们之间可以用简单的小部件切换.
  • 他们将能够在这个外部景观中选择一个楼层.在鼠标悬停时(单击触摸设备),地板将突出显示.
  • 点击地板后,您可以切换到平面图,再次在鼠标悬停/ onclick上提供有关公寓的详细信息.
  • 应该涉及一些动画,但没有什么太花哨的.

您可以在此处查看基于Flash的版本的版本:http://salitergasse.at/sg9/eigentumswohnungen/moedling/perchtoldsdorf

我一直在考虑实现这个的选项.我还需要一种快速的方法来选择楼层的多边形(概述)和公寓(平面图),以便非开发商创建新的建筑物.

我提出的选项:

  1. 使用普通图像和图像映射进行中途停留.
  2. 使用canvas(在没有支持的情况下使用Google的Javascript解决方案).将图像加载到canvas标记中并动态创建中继.
  3. 使用SVG

跨浏览器兼容性的最佳选择是什么?

html interactive canvas

19
推荐指数
2
解决办法
4万
查看次数

Drupal 6 - 模块中的自定义节点类型模板

我有一个添加新内容类型的模块.

对于此内容类型,我想提供node_contenttype.tpl.php节点类型模板,但Drupal不会在模块目录中识别此模板,仅在主题中.

如何让Drupal(6)使用我的模板?

drupal drupal-6 drupal-theming drupal-modules

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

即使DeriveGeneric已启用,派生Generic也不起作用

我正在尝试使用Beam Haskell库的教程:https://tathougies.github.io/beam/tutorials/tutorial1/

module Lib
    ( someFunc
    ) where

{-# LANGUAGE
    DeriveGeneric
  , GADTs
  , OverloadedStrings
  , FlexibleContexts
  , FlexibleInstances
  , TypeFamilies
  , TypeApplications
 #-}

import Database.Beam
import Database.Beam.Postgres
import GHC.Generics

import Data.Text (Text)

data UserT f
    = User
    { _userEmail     :: Columnar f Text
    , _userFirstName :: Columnar f Text
    , _userLastName  :: Columnar f Text
    , _userPassword  :: Columnar f Text }
    deriving Generic

someFunc :: IO ()
someFunc = putStrLn "someFunc"
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

    • Can't make …
Run Code Online (Sandbox Code Playgroud)

generics haskell haskell-stack

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

Haskell:makeLenses - 数据构造函数不在范围内

我在这里有这个简单的代码来定义类型并用于makeLenses生成镜头。

module Api.Jira.Types.Search
  (
    SearchRequest(..)
  ) where

import GHC.Generics
import qualified Data.Text as T
import Data.Aeson (FromJSON, ToJSON)
import Control.Lens
import Data.Aeson
import Data.Aeson.Types

data SearchRequest = SearchRequest
  { _jql :: T.Text
  , _startAt :: Maybe Int
  , _maxResults :: Maybe Int
  , _fields :: Maybe [T.Text]
  , _expand :: Maybe [T.Text]
  , _properties :: Maybe [T.Text]
  } deriving (Show, Generic)

instance ToJSON SearchRequest where
  toJSON = genericToJSON defaultOptions {
             fieldLabelModifier = drop 1 }

instance FromJSON SearchRequest …
Run Code Online (Sandbox Code Playgroud)

haskell template-haskell

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