Discover and read the best of Twitter Threads about #Haskell

Most recents (23)

In a world where

#Haskell fuels a mere 0.65% of internet projects & #Python dominates with 25%

the need for a #Python-based SC dev platform becomes increasingly pivotal for any #blockchain

Enter @OpShinDev: a game-changing tool for onboarding new developers to #Cardano🧵👇 Image
2/14
@OpShinDev is a Python-based solution,

leveraging one of the most commonly used programming languages

Its ambition is to enhance the accessibility & usability of blockchain development

without compromising the intricacies required for SCs on #Cardano
3/14
The defining feature of OpShin is its grounding in Python 3

Python's compatibility allows seamless integration with off-chain Python-based tools such as PyCardano

and lets developers utilize existing testing frameworks and IDEs (Integrated Development Environment) Image
Read 18 tweets
🧵 Enabling real-world use cases at scale on the #SingularityNET platform via creating a MeTTa-based DSLs focused on smart contract programming in specific industry verticals.

#BuildingOnSNET #AI #Cardano
2/ Smart contract scripting can be tricky, so it’s essential to design a developer-friendly framework to build applications and solutions without compromising on security.
3/ On #Ethereum, a “copy &paste” culture has emerged, where developers copy and tweak existing Solidity code. However, this approach is unsustainable in a software ecosystem powered by tools with reasonable composability.
Read 12 tweets
Haskell ROCKS!

#Cardano is built with #Haskell, and there's a good reason for it.
1. Haskell is a functional programming language that is known for its purity, expressiveness, and ability to handle complex systems.
2. One of the key benefits of Haskell is its strong type system, which helps to ensure the correctness and reliability of code. This is especially important in the context of a blockchain like Cardano, where the integrity of the system depends on the accuracy of the code.
Read 9 tweets
2022 was a landmark year for the #Cardano ecosystem, and it was all because of you, the community. A global movement of developers, entrepreneurs & artists built new solutions, businesses, and experiences on rock-solid foundations.
1/
From the earliest beginnings, you the community ensured the continued growth and success of #Cardano. So, IOG wanted to take a moment to reflect on 2022 and look forward to the age of #Voltaire.
2/
The year began with a drive towards the #Vasil upgrade named after Vasil St. Dabov, one of #Cardano's ambassadors. #Vasil brought an increase to #Cardano's performance and scalability, giving a boost to the capabilities of the entire network.
3/
Read 16 tweets
A mission-critical financial application must be safe & secure.

When the #Crypto industry goes through multi-million dollar hacks,

building a robust financial platform has been the core driving principle of #Cardano

So here's a thread on Functional Programming: 🧵👇 Image
The public blockchain sphere has been growing rapidly over the past decade

If we reflect on that growth,

it has mainly been on the valuation side of things

and not that much on the utility or user side of things

So why is it that way?
One of the reasons for this lack of growth in utility is the lagging scalability

But there is another elephant in the room, which most don't address

This is the lack of a secure programming environment for the #dApps

and the rest of the #blockchain infrastructure
Read 26 tweets
If you've got a #haskell identifier x and you need to figure out how to convert it to some type T, just write

_ x :: T

And hover over the underscore, and you see what type of function you need to get there.
If an appropriate function doesn't exist yet, replace the underscore with some name

f x :: T

and use the "Define ..." code action to automatically stub out a definition for f
If the definition you write for f ends up being really simple, you can then just inline it back at the use site.
Read 7 tweets
#Ethereum's account-based model & smart contract based on Solidity is a marriage made in hell

Vasil-HFC Event is on the horizon

& its time to unleash synergies of #Cardano's EUTxO model & Plutus

Here's a thread on why EUTxO model & functional programming is what DeFi needs🧵👇
The ultimate goal of #Blockchain

Is to replace the corrupt & centralized traditional financial system

To create an inclusive global financial system to bank the unbanked

But are we going to do it with a system that is more problematic than what we have now?
#Crypto in general & DeFi has seen massive growth in the last decade

DeFi-exploits have also seen proportional or even bigger growth

This makes us realize the fundamental requirement of the system we want to be a part of

A blockchain architecture that offers safety & security
Read 31 tweets
گاهی وقت ها چون یه چیزایی رو خودمون میدونیم فکر میکنیم بقیه هم ممکن اون چیزا یا اطلاعات رو بدونن،مثال ساده اش وقتی که میخوای به راننده ادرس بده..!
چون خودت مسیر رو بلدی گاهی فراموش میکنی که به راننده بگی کدوم سمت بره..!
امروز میخوایم #رودمپ بررسی کینم
#کاردانو چطور متولد شد..؟
#کاردانو یک بلاک چین نسل سوم است که از ابتدا با استفاده از تحقیق، بررسی همتا و یک مدل توسعه رسمی دقیق ایجاد شده است. داستان در سال 2015 با چشم انداز پرداختن به سه چالش استراتژیک پیش روی همه شبکه های بلاک چین آغاز شد: مقیاس پذیری، قابلیت همکاری و پایداری...
#فاز_بایرون
برگرفته از نام جورج گوردون بایرون شاعر و سیاست مدار انگلیسی
دو سال، هزاران GitHub متعهد شدند، و صدها ساعت مطالعه،بعد اولین نسخه #Cardano در سپتامبر 2017 ارسال شد و دوران بایرون آغاز شد.
اولین تجسم #Cardano به کاربران امکان خرید و فروش ارز دیجیتال #ADA که به نام برنامه
Read 24 tweets
Estaba repasando mi perfil de Linkedin y me he acordado de esto en la época que andaba coqueteando con hacer el doctorado en Química computacional o algo por el estilo...

Seguro que a @vielbein le va a hacer gracia..
Tambien habia un montón de mates que me enseño mi compañero del grupo Felipe Zapata...
Y juntos nos montamos la locura en #Erlang pasándolo pipa antes de incarle el diente a #Haskell
Read 4 tweets
(79/n) Day79
#Haskell
#CardanoCommunity
Restarting 1tweet/day

Thunks: used to represent code that should be execute to evaluate expression

Main feature of thunk is ability to b updated when their value is evaluated
(80/n) Day80
#CardanoCommunity
instead of quote tweet, i will be using tweet thread from today

#Haskell laziness boils down to creating Thunk

Today we will look at how a Thunk is evaluated
let x = a+2 in ...

Fig shows how 3 stages are involved in evaluating x Thunk's closure changes its...
(81/n) Day81
#CardanoCommunity
#Haskell

We say a value is unevaluated if its represented by thunk
We say a value is fully norm if its evaluated
Figure shows this

tomorrow we will look at weak head normal form(WHNF) Image
Read 6 tweets
Atribuyen a Edison la frase: “I will not say I failed 1000 times, I will say that I discovered there are 1000 ways that can cause failure.” Pues yo he estado haciendo lo mismo en los ratos libres de estos ajetreados días... +

#AdventOfCode2021 #AdventOfCode
Por las noches mientras veía alguna peli del Prime time he estado programando mi particular acercamiento al problema 15 haciendo stiching de soluciones para encontrar la solución completa al #AoC +
La dificultad no provenía del Floyd Warshall sino de como pegar las soluciones entre si propagando los costos del tal manera que no me sorprendian los fallos, hasta que aburrido/estancado pensé programar el dijkstra para tener la solución y comparar el devenir de cada código.. +
Read 50 tweets
Bueno pues Hoy he hecho un pequeño esfuerzo por teclear y he resuelto el AoC Sonar Sweep parte 1.
Es muy facil asi que he tratado de ser un poco exótico y ahorrarme teclear mucho que apenas he podido aguantar la parte 1

*SPOILERS* *SPOILERS

#AoC2021 #Python
Bueno agregué a un workspace las rutinas del A0C2020 por si puedo ahorrarme esfuerzo (aún ando jodido) El main funciona independiente de cuantos modulos despliegues en el directorio de challenges +
Lo primero que el puzle necesita es un swich para leer el fichero y un comando para lanzar la parte1 y la parte2 por separado. Para eso el módulo registra un subparser que se encarga de esos detalles.. +
Read 13 tweets
No expliqué el invento!! ¿Funcionará?


Bueno dadme el beneficio de la duda y trato de explicaros que creo ocurre en este snippet de código..

Vamos allá!! +

#AoC2021
Veamos :
part1 :: [Int] -> Int
part1 ns = length $ filter (>0) $ zipwith (-) ns' ns
where ns’ = tail ns
ns' = tail ns, es la lista "ns" menos su primer elemto, es decir empieza por el segundo. Esto lo uso para restarle el segundo al primero con: zipWith (-) ns' ns que une en cremallera ns' y ns aplicado la resta a cada par de elementos es decir: 2º - 1º, 3º - 2º.. etc..
Read 11 tweets
I like building stuff with #Haskell.

In this thread I'd like to share with you a few selected side projects I've made over the years 👇🧵

1/N
My first real Haskell program was hablog, a blog/website server, built with scotty, that powers my website (gilmi.me) to this day.

It dynamically converts markdown files to html and serves them.

Github.com/soupi/hablog

2/N
The second interesting project I worked on was Pureli, a project made as part of my CS degree.
Pureli is a purely functional, dynamically typed lisp with parallel evaluation (which isn't actually that important).

Pureli was my first dip into PLT&I.

github.com/soupi/pureli

3/N
Read 17 tweets
I'm so pissed by the situation around removing (/=) from the Eq typeclass in #Haskell 😡

👇🧵 A very angry thread and I why think that people who want to introduce similar breaking changes to Haskell are just a bunch of kids who want to play with their fancy toys 🎮🎳
DISCLAIMER: I'm not against breaking changes entirely. Sometimes they are unavoidable and there's no better to fix the problem.

For instance, the recent security vulnerability in `aeson`. The problem already affected ALL Haskell applications and needed to be fixed ASAP.
However, for almost all breaking changes in GHC or base there's no urgency at all. Breaking changes were introduced either if someone wanted to change things or if the new fancy feature is not compatible with the existing behaviour (I'm looking at you ImpredicativeTypes😒)
Read 10 tweets
A way of understanding “simple” in “Simple is not easy” is that simple things/designs/programs/values are those that are easy to manipulate. And that requires a structure, which might not be easy to grasp or come up with naively.
FP, especially in expressive languages like #haskell and #purescript emphasizes abstract reusable structures exactly for this reason of easy manipulation and hence simplicity. The associated learning curve makes it indeed not easy.
But “easy” in all of this means “free goodies without effort”. The opposite is not the discouraging “undoable and impossible to learn so don’t even try” at all.
Read 3 tweets
Making illegal states unrepresentable without access to at least HKTs and preferrably also to GADTs and type families is so limited that it becomes almost futile. Or becomes very verbose in a similar way to having no polymorphism/“generics”. #fsharp #Haskell #ddd
Here is a type for a customer and address in pseudo-#fsharp syntax: type Customer f = Customer of Name * f<Adress>. Newly registered customer may or may not enter an address: register : ... -> Customer Option. But...
... placing an order requires the address to be known: placeOrder : ... -> Customer<Identity> -> Order. Where type Identity<a> = a.
Read 3 tweets
I write #fsharp and #haskell daily (and #purescript too) and thought of making a micro-blog comparison of the two. Fun facts and maybe new discoveries for the interested, in no particular order. This will be long and probably slow.
Unlike #fsharp, #haskell has no records, only discriminated unions. It does have something called “record syntax” for DUs.
In #fsharp functions cannot be overloaded. In #haskell it is possible through the “type classes” mechanism, conceived specifically for this.
Read 14 tweets
Про парсинг неструктурированных данных я бы рассказал даже. Тема перекликается с разработкой, когда невозможно определить сразу структуры данных. Один лайк - один факт о парсинге неструктурированных данных и задачах с нечётким определением предметной области на #Haskell
Основным инструментом для подобных задач является пакет uniplate, особенно функции universeBi и transformBi. С ними вы можете обходить и переписывать структуры данных разных типов, не заботясь о том, что конкретно они из себя представляют
Есть аналоги на Foldable/Traversable, но они гораздо сложнее и менее зрелые. uniplate существует... ну для меня столько же, сколько сам #Haskell. Простой, тупой и надёжный как топор. Ничего лучше не нашёл, и искать не хочется
Read 100 tweets
Here is my take on teaching #Haskell and what should we do better. Please engage in helpful criticism and discussion 😀

So, thread below 👇
For me, "functional style" requires of these three things:
- focus on immutability and separation of side-effects,
- higher-order functions,
- data types with support for sums/choices.
Everything but the last point is available in many mainstreams languages *now*.
We should acknowledge that the whole concept of higher-kinded abstractions (functor, applicative, monads) is not *easy*.

In my experience, "length applies to any list, whatever the type of the contents" (in other words, length :: [a] -> Int) seems intuitive to most people.
Read 11 tweets
I wish we'd stop debating OOP vs FP, and started debating individual paradigms. Immutability, encapsulation, global state, single assignment, actor model, pure functions, IO in the type system, inheritance, composition... all of these are perfectly possible in either OOP or FP.
Some are better, some are worse, some are highly dependent on context, let's figure that out instead of religuously bashing umbrella terms like OOP and FP. And there may be many more paradigms to discover.
Take encapsulation: in #Haskell, you can choose for a module not to export your type constructors, and only export smart constructors and functions operating on your data structures. Sounds close enough to encapsulation to me.
Read 8 tweets
✨🧠 The ecosystem that has grown up around @TensorFlow in the last few years blows my mind. There's just so much functionality, compared to some of the other, newer frameworks.

👉Consider this an ever-expanding thread for me to take notes + wrap my brain around products. Ready?
1) @TensorFlow Extended (TFX)

It's no secret that I 💕 #TFX and all of its tooling for deploying machine learning models into production. If you care about keeping your models up-to-date and monitoring them, you should check out the product + its paper.

tensorflow.org/tfx/?hl=zh-cn
2) @TensorFlow Hub

If you want to train your model on a small data set, or improve generalization, you'll need to use something called transfer learning. #TFHub modules make it easy—and are available in an #OSS marketplace: tfhub.dev.

site: tensorflow.org/hub/
Read 40 tweets
Today I'm going to #rant about #haskell libraries. I'm a Haskell supporter, I think it's a great language, but that doesn't mean it doesn't have problems. Some of them are surprising and I want to talk about them.
At the end of the rant I will have tips for developers using Haskell and for libraries developers (in any language, some rules are universal) so bear with me. It's a long rant but there is a good ending ;).
A preamble first: one of the reasons why I decided to study haskell is because haskell had a good way to deal with errors and invalid inputs/states.
Read 17 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!