『雑誌掲載記事』(1986年1月号)より
現代の急速に変化し、競争の激しい商業用新製品開発の世界において、スピードと柔軟性は不可欠です。多くの企業が、従来の逐次的な新製品開発アプローチではもはや十分に対応できないことを認識しつつあります。 これに対し、日本やアメリカの企業では、ラグビーのようにチームが一体となってフィールドを前進しながらボールをパスし合う、包括的な手法が採用されています。
open Falco | |
open Falco.Routing | |
open Microsoft.AspNetCore.Builder | |
let endpoints = | |
[ get "/weather" WeatherForecast.getRandom | |
get "/" (Response.ofPlainText "Hello World!") ] | |
[<EntryPoint>] | |
let main args = |
using System.Collections; | |
using System.Text; | |
var xs = ConsList<int>.Create([7, 8, 9, 10]); | |
var ys = ConsList<int>.Create([0, 1, 2, 3]); | |
var product = | |
from x in xs | |
from y in ys | |
select $"{x * 10 + y}"; |
type Cont<'a, 'r> = { runCont: ('a -> 'r) -> 'r } | |
module Cont = | |
let toCont c = { runCont = c } | |
let runCont { runCont = c } = c | |
let return' a = toCont (fun k -> k a) | |
let (>>=) { runCont = c } f = | |
toCont (fun k -> c (fun a -> runCont (f a) k)) |
using NetVips; | |
if (ModuleInitializer.VipsInitialized) | |
{ | |
Console.WriteLine( | |
$"Inited libvips {NetVips.NetVips.Version(0)}.{NetVips.NetVips.Version(1)}.{NetVips.NetVips.Version(2)}"); | |
} | |
else | |
{ | |
Console.WriteLine(ModuleInitializer.Exception.Message); |
(原文:Against Railway-Oriented Programming)
2019年12月20日
この記事は、2019年のF#アドベントカレンダーの一部です。他の素晴らしい記事もぜひご覧ください。企画者のSergey Tihon氏に感謝します。
6年半前、私は「鉄道指向プログラミング」と呼ぶものに関する記事を書き、講演を行いました。これは、エラーを生成する関数を連結するために、Result
/ Either
をどのように使用するかを、自分自身や他の人に説明するための手段でした。
module My.Linq | |
open System | |
open System.Collections.Generic | |
open System.Linq | |
open System.Linq.Expressions | |
open System.Reflection | |
// 条件に一致する最初の結果を返す関数 | |
let rec tryFirst (funcs: ('a -> 'b option) list) (input: 'a) = |
https://www.youtube.com/watch?v=1VgptLwP588
Mark RussinovichによるRustの技術セッションです。Markがどういう話をしているのか、およそ10分区切りで要約して。
Markは、マイクロソフトがRustを採用した理由から話し始めています。マイクロソフトでは、過去10年間のセキュリティ脆弱性の約70%がC/C++でのメモリ安全性の問題に起因していることが明らかになりました。Markは個人的にC言語をシンプルで美しいと考えていますが、C++は複雑すぎると感じています。Rustは正確性を強制するシンプルでエレガントな言語だと彼は確信しています。
2022年9月、Markは「新しいC/C++コードはRustで書くべき」というツイートを投稿し、これが彼の中で最も反響の大きいツイートとなりました。このツイート後、サティア・ナデラCEOから電話があり、MarkはマイクロソフトのRust採用を推進することになりました。このムーブメントはマイクロソフト全体からの草の根の取り組みの一部であり、後に米国国家安全保障局(NSA)もC/C++からの移行を推奨することになります。
module Json | |
open System.Text | |
[<AbstractClass>] | |
type JNode() = | |
abstract member Stringify: unit -> string | |
[<AbstractClass>] | |
type JValue() = |
Title | Author | Date |
---|---|---|
GUIアーキテクチャ |
Martin Fowler |
18 July 2006 |