4 ms·
Have a look here: https://onecompiler.com/fsharp/3ztmx2uhr https://onecompiler.com/fsharp/3ztmx2uhr Basically we want a "Yes" or a "No" when the family has ch
by ryanjshaw 3y ago
Have a look here: https://onecompiler.com/fsharp/3ztmx2uhr https://onecompiler.com/fsharp/3ztmx2uhr
Basically we want a "Yes" or a "No" when the family has children:
let kidsYN = family |> numberOfChildren |> yesOrNo
But we get:
error FS0001: Type mismatch. Expecting a
INode list
but given a
Node<Person> list
The type 'INode' does not match the type 'Node<Person>'
Forcing us to do:
let familyAsINode = family |> List.map (fun n -> n :> INode)
Sure you can wrap this up in a function but it's ugly and annoying to have to use this everywhere and takes away from your logic. It ends up being better to split your "batch" and "scalar" operations and compose them e.g. by introducing a "mapsum" function:
let kidsYN2 = family |> mapsum numberOfChildrenV2 |> yesOrNo