# Is F# dotnet core native or using C# implmentation?

**URL:** <https://forums.fsharp.org/t/is-f-dotnet-core-native-or-using-c-implmentation/1396>\
**Category:** General\
**Tags:** beginners\
**Created:** [July 30, 2020, 1:33pm UTC](https://forums.fsharp.org/t/is-f-dotnet-core-native-or-using-c-implmentation/1396 "2020-07-30T13:33:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![zach323](https://avatars.discourse-cdn.com/v4/letter/z/839c29/32.png) [@zach323](https://forums.fsharp.org/u/zach323)\
**Post date:** [July 30, 2020, 1:33pm UTC](https://forums.fsharp.org/t/is-f-dotnet-core-native-or-using-c-implmentation/1396/1 "2020-07-30T13:33:59Z")

</div>

I am new to F#, but have been a dotnet Dev for a few years with [Vb.NET](http://Vb.NET) and C#. I’ve been teaching myself F# over the past few weeks because I like the idea of functional programming for some of the work I do.

Being that F# can _use_ dotnet core libraries, but is not really used as an OOP language, it made me ask the question: “Is F# using C# dotnet libraries, or have dotnet libraries been rewritten in F# for F#?”

I understand the dotnet core libraries are all compiled into CLR, but was just specifically curious if F# is merely using classes and libraries written in C# (or C++) or those are native F# libraries. Kind of a silly question but it would be interesting to know from an architecture standpoint.

An example is the `Console.WriteLine`. When you use this in F#, is this a C# implementation that F# is using? Or is `Console.WriteLine` in F# natively written in F#?

Microsoft states _F# is a functional-first language with features and idioms for both functional and object-oriented programming. It has been designed for functional programming on .NET while also offering clean interop with C# and existing codebases._  
Reference: [https://dotnet.microsoft.com/languages/fsharp](https://dotnet.microsoft.com/languages/fsharp)

Appreciate the responses.

---

<div class="post-metadata">

**Author:** ![brettrowberry](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.fsharp.org/brettrowberry/32/369_2.png) [@brettrowberry](https://forums.fsharp.org/u/brettrowberry)\
**Post date:** [July 31, 2020, 8:42pm UTC](https://forums.fsharp.org/t/is-f-dotnet-core-native-or-using-c-implmentation/1396/2 "2020-07-31T20:42:17Z")

</div>

Like VB and C#, F# can use any .NET libraries. In your example, Console.WriteLine is written in C# and F# can use it.

---

<div class="post-metadata">

**Author:** ![kevinmcfarlane](https://yyz2.discourse-cdn.com/flex030/user_avatar/forums.fsharp.org/kevinmcfarlane/32/388_2.png) [@kevinmcfarlane](https://forums.fsharp.org/u/kevinmcfarlane)\
**Post date:** [August 14, 2020, 1:22pm UTC](https://forums.fsharp.org/t/is-f-dotnet-core-native-or-using-c-implmentation/1396/3 "2020-08-14T13:22:21Z")

</div>

Adding to brettrowberry, `printf` would be an example of a native F# function. Then it has its own native collection types - [https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/fsharp-collection-types](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/fsharp-collection-types) and operations.
