29 Members
F# programming language2 Servers

Load older messages

Timestamp Message
25 Jun 2019
14:21:37@ansg:matrix.organsg joined the room.
12 Aug 2019
23:58:30@vimvigor:matrix.orgvimvigor left the room.
19 Aug 2019
18:51:20@tauoverpi:feneas.orgLevy (Elara) joined the room.
18:52:04@tauoverpi:feneas.orgLevy (Elara)any hints on compiling F# from source with mono?
18:52:20@tauoverpi:feneas.orgLevy (Elara)Or is it a dead end?
18:52:37@tauoverpi:feneas.orgLevy (Elara)Currently attempting to package it for a Guix channel
21 Aug 2019
22:58:44@mcconnelsfries:matrix.orgmcconnelsfries joined the room.
25 Aug 2019
03:49:16@excoseher7:matrix.orgexcoseher7 joined the room.
03:49:25@excoseher7:matrix.orgexcoseher7 left the room.
23 Sep 2019
12:09:04@nirvin:matrix.orgNirvin joined the room.
24 Sep 2019
03:49:28@nirvin:matrix.orgNirvin Announcing .NET Core 3.0 | .NET Blog
11:31:10@nirvin:matrix.orgNirvin changed their display name from Nirvin M to Nirvin.
4 Oct 2019
21:51:01@taylor:taylorbuchanan.comTaylor Buchanan joined the room.
7 Oct 2019
21:01:39@tauoverpi:feneas.orgLevy (Elara) changed their display name from Levy (征集) to Levy Elara.
8 Oct 2019
09:07:33@tauoverpi:feneas.orgLevy (Elara) changed their display name from Levy Elara to Levy (Elara).
13 Oct 2019
05:15:50@nirvin:matrix.orgNirvin left the room.
15 Oct 2019
18:17:18@repromancer:matrix.orgrepromancer joined the room.
18 Oct 2019
17:46:39@xandkar:matrix.orgxandkar joined the room.
21 Oct 2019
18:55:54@daedalus.ru:matrix.orgkalloc left the room.
23 Oct 2019
22:11:21@stmax:matrix.orgalgo_max joined the room.
24 Oct 2019
13:42:08@repromancer:matrix.orgrepromancer set a profile picture.
20:30:37@stmax:matrix.orgalgo_max changed their display name from stmax to algo_max.
31 Oct 2019
17:25:55@repromancer:matrix.orgrepromancer left the room.
1 Nov 2019
08:08:39@stmax:matrix.orgalgo_max left the room.
6 Nov 2019
13:45:01@tauoverpi:feneas.orgLevy (Elara) left the room.
16:49:00@superb:matrix.orgsuperb joined the room.
16:52:54@superb:matrix.orgsuperbI'm learning F# and love the idea of designing my problem domain with types so that illegal states are simply not representable in the program. I'm applying what I learn to a work project that entails loading data from a database that's not exactly designed well... There are no check constraints and some of the types are quite questionable (e.g. embedded SQL in a database field used by applications as conditional logic). Garbage-in, garbage-out I know BUT... short of fixing all the database issues in place, are there any best practices to handling inbound data that is in fact illegal?
18:16:04@taylor:taylorbuchanan.comTaylor Buchanan

superb: With the disclaimer that I am fairly new to F# myself... I suppose that would depend on what you expect to happen with the "illegal" data. If it is expected to be corrected in a UI then you could do something like this to model the invalid data differently on "get" than "put":

type OrderId = int
type OrderType = Standard | Bulk
type InvalidOrderType = string
type AmbiguousOrderType = OrderType | InvalidOrderType
type AmbiguousOrder = { Id: OrderId; Type: AmbiguousOrderType }
type Order = { Id: OrderId; Type: OrderType }

let getOrder (id: OrderId) = // Return AmbiguousOrder for UI to fix
let saveOrder (order: Order) = // Save corrected order
18:58:23@superb:matrix.orgsuperbThanks Taylor
9 Nov 2019
03:08:16@streaks:matrix.orgstreaks joined the room.

There are no newer messages yet.

Back to Room List