packages/
.vs
*.exe
-*.suo
\ No newline at end of file
+*.suo
+AdventOfCode2017/Data/day*
\ No newline at end of file
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>d3555943-8102-43d1-b3cb-570a4e4ec513</ProjectGuid>
<OutputType>Exe</OutputType>
- <RootNamespace>AdventOfCode2017</RootNamespace>
- <AssemblyName>AdventOfCode2017</AssemblyName>
- <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <TargetFSharpCoreVersion>4.4.1.0</TargetFSharpCoreVersion>
- <Name>AdventOfCode2017</Name>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <Tailcalls>false</Tailcalls>
- <OutputPath>bin\$(Configuration)\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <WarningLevel>3</WarningLevel>
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DocumentationFile>bin\$(Configuration)\$(AssemblyName).XML</DocumentationFile>
- <Prefer32Bit>true</Prefer32Bit>
- <StartArguments>25</StartArguments>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <Tailcalls>true</Tailcalls>
- <OutputPath>bin\$(Configuration)\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <WarningLevel>3</WarningLevel>
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DocumentationFile>bin\$(Configuration)\$(AssemblyName).XML</DocumentationFile>
- <Prefer32Bit>true</Prefer32Bit>
- <StartArguments>25</StartArguments>
- </PropertyGroup>
- <PropertyGroup>
- <MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
- </PropertyGroup>
- <Choose>
- <When Condition="'$(VisualStudioVersion)' == '11.0'">
- <PropertyGroup Condition=" '$(FSharpTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets') ">
- <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
- </PropertyGroup>
- </When>
- <Otherwise>
- <PropertyGroup Condition=" '$(FSharpTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets') ">
- <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
- </PropertyGroup>
- </Otherwise>
- </Choose>
- <Import Project="$(FSharpTargetsPath)" />
<ItemGroup>
<Compile Include="AssemblyInfo.fs" />
<Compile Include="Day01.fs" />
<Compile Include="Day24.fs" />
<Compile Include="Day25.fs" />
<Compile Include="Program.fs" />
- <None Include="App.config" />
<Content Include="Data\day01.input">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\day25.input">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
- <Reference Include="FSharp.Core">
- <HintPath>..\packages\FSharp.Core.4.2.3\lib\net45\FSharp.Core.dll</HintPath>
- </Reference>
- <Reference Include="mscorlib" />
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Numerics" />
- <Reference Include="System.ValueTuple">
- <HintPath>..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll</HintPath>
- <Private>True</Private>
- </Reference>
+ <PackageReference Update="FSharp.Core" Version="9.0.200-beta.24561.2" />
</ItemGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
</Project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
- </startup>
-</configuration>
\ No newline at end of file
--- /dev/null
+Filename: "dayXX.input"
\ No newline at end of file
let nextState, f = match m.TryGetValue ((x, y)) with true, state -> rule state | _ -> rule Clean
let dx, dy = f d
if nextState = Clean then
- m.Remove (x, y) |> ignore
+ m.Remove ((x, y)) |> ignore
else
m.[(x, y)] <- nextState
burst (x + dx, y + dy) (dx, dy) (n - 1) (if nextState = Infected then becomeInfected + 1 else becomeInfected)
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="FSharp.Core" version="4.2.3" targetFramework="net462" />
- <package id="System.ValueTuple" version="4.4.0" targetFramework="net462" />
-</packages>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <appSettings>
- <add key="xunit.methodDisplay" value="method"/>
- </appSettings>
-</configuration>
\ No newline at end of file
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" />
- <Import Project="..\packages\xunit.core.2.3.1\build\xunit.core.props" Condition="Exists('..\packages\xunit.core.2.3.1\build\xunit.core.props')" />
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>238bffbe-e2d4-4dc4-804c-6e43205e4701</ProjectGuid>
- <OutputType>Library</OutputType>
- <RootNamespace>Tests</RootNamespace>
- <AssemblyName>Tests</AssemblyName>
- <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
- <TargetFSharpCoreVersion>4.4.1.0</TargetFSharpCoreVersion>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Name>Tests</Name>
- <NuGetPackageImportStamp>
- </NuGetPackageImportStamp>
+ <TargetFramework>net9.0</TargetFramework>
+ <IsPackable>false</IsPackable>
</PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <Tailcalls>false</Tailcalls>
- <OutputPath>bin\$(Configuration)\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <WarningLevel>3</WarningLevel>
- <DocumentationFile>bin\$(Configuration)\$(AssemblyName).XML</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <Tailcalls>true</Tailcalls>
- <OutputPath>bin\$(Configuration)\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <WarningLevel>3</WarningLevel>
- <DocumentationFile>bin\$(Configuration)\$(AssemblyName).XML</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup>
- <MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
- </PropertyGroup>
- <Choose>
- <When Condition="'$(VisualStudioVersion)' == '11.0'">
- <PropertyGroup Condition=" '$(FSharpTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets') ">
- <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
- </PropertyGroup>
- </When>
- <Otherwise>
- <PropertyGroup Condition=" '$(FSharpTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets') ">
- <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
- </PropertyGroup>
- </Otherwise>
- </Choose>
- <Import Project="$(FSharpTargetsPath)" />
<ItemGroup>
<Compile Include="AssemblyInfo.fs" />
<Compile Include="Day01 tests.fs" />
<Compile Include="Day22 tests.fs" />
<Compile Include="Day24 tests.fs" />
<Compile Include="Day25 tests.fs" />
- <Content Include="App.config" />
- <Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
- <Reference Include="FSharp.Core">
- <HintPath>..\packages\FSharp.Core.4.2.3\lib\net45\FSharp.Core.dll</HintPath>
- </Reference>
- <Reference Include="mscorlib" />
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Numerics" />
- <Reference Include="System.ValueTuple">
- <HintPath>..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll</HintPath>
- <Private>True</Private>
- </Reference>
- <ProjectReference Include="..\AdventOfCode2017\AdventOfCode2017.fsproj">
- <Name>AdventOfCode2017</Name>
- <Project>{d3555943-8102-43d1-b3cb-570a4e4ec513}</Project>
- <Private>True</Private>
- </ProjectReference>
- <Reference Include="Unquote">
- <HintPath>..\packages\Unquote.4.0.0\lib\net45\Unquote.dll</HintPath>
- </Reference>
- <Reference Include="xunit.abstractions">
- <HintPath>..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll</HintPath>
- </Reference>
- <Reference Include="xunit.assert">
- <HintPath>..\packages\xunit.assert.2.3.1\lib\netstandard1.1\xunit.assert.dll</HintPath>
- </Reference>
- <Reference Include="xunit.core">
- <HintPath>..\packages\xunit.extensibility.core.2.3.1\lib\netstandard1.1\xunit.core.dll</HintPath>
- </Reference>
- <Reference Include="xunit.execution.desktop">
- <HintPath>..\packages\xunit.extensibility.execution.2.3.1\lib\net452\xunit.execution.desktop.dll</HintPath>
- </Reference>
+ <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
+ <PackageReference Include="Unquote" Version="7.0.1" />
+ <PackageReference Include="xunit" Version="2.9.2" />
+ <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
+ <PrivateAssets>all</PrivateAssets>
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+ </PackageReference>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\AdventOfCode2017\AdventOfCode2017.fsproj" />
+ </ItemGroup>
+ <ItemGroup>
+ <PackageReference Update="FSharp.Core" Version="9.0.200-beta.24561.2" />
</ItemGroup>
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\xunit.core.2.3.1\build\xunit.core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.3.1\build\xunit.core.props'))" />
- <Error Condition="!Exists('..\packages\xunit.core.2.3.1\build\xunit.core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.3.1\build\xunit.core.targets'))" />
- <Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props'))" />
- </Target>
- <Import Project="..\packages\xunit.core.2.3.1\build\xunit.core.targets" Condition="Exists('..\packages\xunit.core.2.3.1\build\xunit.core.targets')" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
</Project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="FSharp.Core" version="4.2.3" targetFramework="net462" />
- <package id="System.ValueTuple" version="4.4.0" targetFramework="net462" />
- <package id="Unquote" version="4.0.0" targetFramework="net462" />
- <package id="xunit" version="2.3.1" targetFramework="net462" />
- <package id="xunit.abstractions" version="2.0.1" targetFramework="net462" />
- <package id="xunit.analyzers" version="0.8.0" targetFramework="net462" />
- <package id="xunit.assert" version="2.3.1" targetFramework="net462" />
- <package id="xunit.core" version="2.3.1" targetFramework="net462" />
- <package id="xunit.extensibility.core" version="2.3.1" targetFramework="net462" />
- <package id="xunit.extensibility.execution" version="2.3.1" targetFramework="net462" />
- <package id="xunit.runner.visualstudio" version="2.3.1" targetFramework="net462" developmentDependency="true" />
-</packages>
\ No newline at end of file