小编mac*_*688的帖子

Haskell Stack Ghci测试套件

我正在尝试使用堆栈在ghci中加载我的测试套件并让它加载QuickCheck和hspec依赖项.

我怎样才能做到这一点?

我正在使用franklinchen模板.
https://github.com/commercialhaskell/stack-templates/blob/master/franklinchen.hsfiles

我试过
堆栈ghci spec
stack ghci test-suite
stack ghci --main-is spec

我修改了测试套件规范以定位main-is:LibSpec.hs文件

test-suite spec
  default-language:    Haskell2010
  ghc-options:         -Wall
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             LibSpec.hs
  build-depends:       base
                     , chapterexercises
                     , hspec
                     , QuickCheck
Run Code Online (Sandbox Code Playgroud)

haskell cabal haskell-stack

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

如何升级堆栈ghc

stack ghc - --version

Glorious Glasgow Haskell编译系统,版本7.10.3

我想升级到ghc 8.

如何告诉堆栈升级ghc?

haskell ghc haskell-stack

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

序列化NodaTime JSON

我正在制作NodaTime的原型项目与BCL的DateTime相比,但是执行此结果会让我的recursionLimit超出错误.

超出递归限制

这是我用来JSONify我的viewmodel的函数.此函数返回后发生错误.

    [HttpPost]
    public JsonResult GetDates(int numOfDatesToRetrieve)
    {
        List<DateTimeModel> dateTimeModelList = BuildDateTimeModelList(numOfDatesToRetrieve);

        JsonResult result = Json(dateTimeModelList, JsonRequestBehavior.AllowGet);
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我检查时,我的视图模型正确构建.这是我的视图模型的代码.

public class DateTimeModel
{
    public int ID;

    public LocalDateTime NodaLocalDateTimeUTC;
    public LocalDateTime NodaLocalDateTime
    {
        get
        {
            DateTimeZone dateTimeZone = DateTimeZoneProviders.Bcl.GetZoneOrNull(BCLTimezoneID);

            //ZonedDateTime zonedDateTime = NodaLocalDateTimeUTC.InUtc().WithZone(dateTimeZone);

            OffsetDateTime offsetDateTime = new OffsetDateTime(NodaLocalDateTimeUTC, Offset.Zero);
            ZonedDateTime zonedDateTime = new ZonedDateTime(offsetDateTime.ToInstant(), dateTimeZone);
            return zonedDateTime.LocalDateTime;
        }
    }

    public OffsetDateTime NodaOffsetDateTime;

    public DateTime BclDateTimeUTC;
    public DateTime BclLocalDateTime
    {
        get
        {
            DateTime utcDateTime = DateTime.SpecifyKind(BclDateTimeUTC, DateTimeKind.Utc);
            TimeZoneInfo nzTimeZone …
Run Code Online (Sandbox Code Playgroud)

c# datetime nodatime

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

单击处理程序 Xamarin

我正在尝试在我的 Xamarin.iOS 应用程序中注册单击事件。我不想在这样的方法中注册事件。

http://developer.xamarin.com/recipes/ios/standard_controls/buttons/handle_clicks/

我想从情节提要中注册它们,似乎有功能可以做到这一点。

尝试将事件绑定到控制器中的方法

在我的 ViewController 中我有以下代码:

    public void ButtonPressed(object sender, EventArgs ea)
    {
        UIAlertView error = new UIAlertView("Test Title", "This is a test", null, "Ok", null);
        error.Show();
    }
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序并按下按钮时,我在 appDelegate 中收到错误

Foundation.MonoTouchException:抛出 Objective-C 异常。名称:NSInvalidArgumentException 原因:-[HomeViewController ButtonPressed:]:无法识别的选择器发送到实例 0x14691650

如何注册点击事件?

xamarin.ios xamarin

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

查看存档菜单而不创建存档

在xcode中,我想访问存档菜单,将以前的存档发布到应用商店.我知道到达那里的唯一方法是通过菜单栏 - >产品 - >存档.

问题是这会自动创建一个新的存档.

如何在不创建新存档的情况下访问此菜单?

xcode

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

使用scanl Haskell的斐波纳契数的大0

我试图理解如何在haskell中计算斐波纳契的列表是如此之快.

列表定义是

fibs = 1 : scanl (+) 1 fibs

 1 :: (1: scanl (+) 1 fibs) !! 0
:1 :: (1: scanl (+) 1 fibs) !! 1
:1+(1 :: (1: scanl (+) 1 (1: scanl (+) 1 fibs)!!0)!!2
:2+(1 :: (1: scanl (+) 1 (1: scanl (+) 1 fibs))!!1)!!3
:3+(2 :: (1: scanl (+) 1 (1: scanl (+) 1 (1: scanl (+) 1 fibs)!!0)!!2)!!4
:5+(3 :: (1: scanl (+) 1 (1: scanl (+) 1 (1: scanl (+) 1 fibs)!!1)!!3)!!5 …
Run Code Online (Sandbox Code Playgroud)

recursion haskell

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

在Sqlite.net PCL中找不到SQLitePlatformIOS

我用nuget包管理器下载了这个包

该示例显示:

public class SQLiteFactoryiOS : ISQLiteFactory
{
    public SQLite.Net.SQLiteConnection CreateConnection(string dbName)
    {
        var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), dbName);
        return new SQLite.Net.SQLiteConnection(new SQLitePlatformIOS(), path);
    }
}
Run Code Online (Sandbox Code Playgroud)

我面临的问题是我无法引用SQLitePlatformIOS.我甚至在源代码中找到了它,但是我无法访问.Platform命名空间,因此我无法创建SQLitePlatformIOS对象.

 using SQLite.Net; //.Platform.XamarinIOS <-- Compiler error if I try to reach this
Run Code Online (Sandbox Code Playgroud)

我用来引用它的项目是一个可移植的类项目,因为在references文件夹中我看到了.NET Portable Subset.

该项目的结构是

iOS MainProject引用示例可移植项目示例可移植项目引用SQLite.Net-PCL

在我的便携式项目中

References
     .NET Portable Subset
     From Packages
          SQLite.Net
Packages
     SQLite.Net-PCL
Data
     Repositories
           ExampleRepository.cs
Run Code Online (Sandbox Code Playgroud)

我的示例存储库是

using System;
using Example.Data.DTO;
using Example.Models.Properties;

using SQLite.Net;

namespace Example.Data.Repositories
{
    public class ExampleRepository(string dbPath) …
Run Code Online (Sandbox Code Playgroud)

c# sqlite xamarin.ios ios xamarin

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

将构图应用于fmap

几周以来,我一直试图弄清楚Haskell编译器如何将(.)应用于fmap.

我的意思是.

:t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c

:t fmap
fmap :: Functor f => (a -> b) -> f a -> f b

:t (.) fmap
(.) fmap :: Functor f => (a -> a1 -> b) -> a -> f a1 -> f b
Run Code Online (Sandbox Code Playgroud)

编译器是如何得到(.)fmap的类型的?

我实际上是在这里问这个问题但是当我解释我尝试过的时候,所有这些都在一起.所以现在我也要发布答案了.

haskell types composition

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

Xamarin在Xaml中继承ContentPage

如何创建一个基础内容页面类来继承xamarin表单?

我跟着这个论坛寻求建议.

一切都很好,直到我必须解决Xaml部分.

using System;
using Xamarin.Forms;

namespace MyProject
{
    public class BaseContentPage : ContentPage
    {
        public BaseContentPage()
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


using System;

using Xamarin.Forms;

namespace MyProject
{
    public partial class DashboardPage : BaseContentPage
    {
        public DashboardPage()
        {
            InitializeComponent();
        }

        void GoToJobDetailsPage(object sender, EventArgs args)
        {
            var masterPage = Application.Current.MainPage as MasterDetailPage;
            masterPage.Detail = new H2HNavigationPage(new JobDetailPage());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


<?xml version="1.0" encoding="UTF-8"?>
<d.BaseContentPage
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:d="clr-namespace:MyProject;assembly=MyProject"
    x:Class="MyProject.DashboardPage"
    ControlTemplate="{StaticResource Background}">
    <ContentPage.Content>

    </ContentPage.Content>
</d.BaseContentPage>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到编译器错误

...DashboardPage.xaml.g.cs(64,64): Error CS0234: …
Run Code Online (Sandbox Code Playgroud)

inheritance xaml xamarin xamarin.forms

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

Haskell 顶级函数

我在屏幕左侧打开了一个 Haskell 文件,另一半打开了 ghci。我想在文件中添加函数、保存并在 ghci 中试验它们。问题是我不完全确定如何声明顶级函数。我什至不确定我知道什么是顶级函数。我认为它们只是最高范围的功能。所以我的问题是做到这一点的极简方式是什么?例如...

let f1 x = x
Run Code Online (Sandbox Code Playgroud)

我需要用什么样板代码来包围它才能编译它以便我可以在 ghci 中加载它?

haskell

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

无法为新类型派生Eq或Show

我无法为newtype派生Eq和Show.

newtype Comp a = Comp {unComp :: a -> a } deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)

当我尝试将此文件加载到我的堆栈ghci中时,它告诉我"没有实例(Show(a - > a))"

但完全相同的定义在另一个文件中加载正常.实际上以前的文件也存在问题但是它因为一些奇怪的原因而停止了.

haskell

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

GetLine在列表理解中

我想在列表理解中构建一个矩阵.对于每一行,我需要getLine并解析它.

简而言之,我想做这样的事情.

fun = [ getLine | y <- [0..4]]
Run Code Online (Sandbox Code Playgroud)

如果我运行此函数,而不是尝试从每个行的命令提示符getLine,我得到一个错误,因为使用'print'引起的(Show(IO String))No Instance.

我收到错误消息,但是我如何在列表理解中获取线条?

monads haskell list-comprehension

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