IOG Academy
IOG Academy
  • 207
  • 241 843
Haskell Course - Lesson 19 - Applicative Functors and Effects
Repo: github.com/input-output-hk/haskell-course
Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html
Canvas: iohk.instructure.com/enroll/3BAAGG
Outline:
0:00 - Introduction and Outline
0:50 - Why Applicative functors?
6:07 - Function application at the Functor level 🥇
19:04 - Being pure 😇
24:30 - The Applicative type class
29:45 - The Applicative laws
40:41 - 🎆 Programming with effects 🎆
50:24 - Extra functions and Applicative as defined in base
มุมมอง: 707

วีดีโอ

Haskell Course - Lesson 18 - Functors
มุมมอง 4777 หลายเดือนก่อน
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG You only need to prove one Functor law: www.schoolofhaskell.com/user/edwardk/snippets/fmap Outline: 0:00 - Introduction and Outline 1:13 - Abstracting the map function 6:10 - Abstracting the Functor type class 19:35 - Defining Functor insta...
Haskell Course - Lesson 17 - Semigroup and Monoid
มุมมอง 4519 หลายเดือนก่อน
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG Proving Monoid (and Semigroup) laws: th-cam.com/users/liveV7673JaWXaA?si=tJGxBbmOh6j rtq&t=715 Outline: 0:00 - Introduction and Outline 0:46 - What does it mean to abstract a pattern? 2:48 - Why abstracting patterns (in general)? 3:58 - Tea...
Haskell Course - Lesson 16 - Tips & Tricks
มุมมอง 4289 หลายเดือนก่อน
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG Outline: 0:00 - Outline 0:26 - Tips: REPL 2:55 - Hackage 6:30 - Hoogle 9:25 - undefined 19:28 - Type Holes 32:14 - Section's Final Project
Haskell Course - Lesson 15 - Handling Errors
มุมมอง 931ปีที่แล้ว
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG Prelude Module: hackage.haskell.org/package/base-4.18.0.0/docs/Prelude.html Outline: 0:00 - Introduction and Outline 3:05 - There're always exceptions to the rule 5:23 - Speed-running exceptions with a dumb self-driving car (Exception, thro...
Node course | Retiring a stake pool
มุมมอง 204ปีที่แล้ว
The handbook for this tutorial is stored here: cardano-course.gitbook.io/cardano-course/handbook/create-a-stake-pool/retiring-a-stake-pool #cardano #course #stakepool
Haskell Course - Lesson 14 - Cabal and Language Extensions
มุมมอง 1Kปีที่แล้ว
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG Prelude Module: hackage.haskell.org/package/base-4.18.0.0/docs/Prelude.html Outline: 0:00 - Outline 1:04 - Introduction to Cabal 2:02 - cabal update 3:00 - cabal init 6:09 - Going over the .cabal file 11:48 - cabal build, cabal exec, and ca...
Node Course | Upgrading cardano node
มุมมอง 450ปีที่แล้ว
In this video we learn how to upgrade cardano-node and cardano-cli on a production server.
Haskell Course - Lesson 13 - Modules
มุมมอง 938ปีที่แล้ว
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG Prelude Module: hackage.haskell.org/package/base-4.18.0.0/docs/Prelude.html Outline: 0:00 - Outline 1:07 - Importing Modules 9:40 - Managing our environment 13:47 - Managing our namespaces 24:02 - The Forest Game 31:47 - Creating our own mo...
Haskell Course - Lesson 12 - Installing Haskell Locally
มุมมอง 1.4Kปีที่แล้ว
Repo: github.com/input-output-hk/haskell-course Playlist: th-cam.com/play/PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb.html Canvas: iohk.instructure.com/enroll/3BAAGG Outline: 0:00 - Outline 1:39 - Installing GHCup and Haskell tooling 6:21 - Using GHCup 7:44 - Uninstalling everything 8:20 - Installing VSCode extensions 9:33 - Writing, compiling, and running programs 12:17 - Homework
PPP 041007 - Live Q&A Session
มุมมอง 191ปีที่แล้ว
PPP 041007 - Live Q&A Session
Cardano-node course | How to create and answer polls using the cardano-cli
มุมมอง 400ปีที่แล้ว
cardano-node 8.0.0 introduces the polling feature. A feature proposed and primarily developed by CF to run polls among stake pool operators to get their feedback on a variety of topics. On this video we demonstrate how to create and answer polls. The handbook for this tutorial is stored here: cardano-course.gitbook.io/cardano-course/handbook/module-7-cardano-governance/polls #cardano #course #p...
PPP 041002 - Developing a Dapp with MeshJS and PluTs (Typescript)
มุมมอง 471ปีที่แล้ว
PPP 041002 - Developing a Dapp with MeshJS and PluTs (Typescript)
PPP 041003 - Developing smart contracts with PluTs (Typescript)
มุมมอง 651ปีที่แล้ว
PPP 041003 - Developing smart contracts with PluTs (Typescript)
PPP 041001 - Introduction
มุมมอง 396ปีที่แล้ว
Plutus Pioneer Program, Iteration 4, Lecture 10, Part 1 #course #plutus #cardano #haskell
PPP 041004 - Developing smart contracts with OpShin and PyCardano (Python)
มุมมอง 679ปีที่แล้ว
Plutus Pioneer Program, Iteration 4, Lecture 10, Part 4 #course #plutus #cardano #haskell
PPP 041005 - Developing smart contracts with Plutarch (Haskell)
มุมมอง 498ปีที่แล้ว
Plutus Pioneer Program, Iteration 4, Lecture 10, Part 5 #course #plutus #cardano #haskell
PPP 040909 - Q&A
มุมมอง 144ปีที่แล้ว
PPP 040909 - Q&A
Q&A Live Session - Lesson 8
มุมมอง 210ปีที่แล้ว
Q&A Live Session - Lesson 8
PPP 040907 - Testing our Stablecoin's scripts
มุมมอง 181ปีที่แล้ว
PPP 040907 - Testing our Stablecoin's scripts
PPP 040908 - Homework
มุมมอง 122ปีที่แล้ว
PPP 040908 - Homework
PPP 040906 - Burning Stablecoins and Liquidating positions
มุมมอง 201ปีที่แล้ว
PPP 040906 - Burning Stablecoins and Liquidating positions
PPP 040905 - Minting Stablecoins
มุมมอง 282ปีที่แล้ว
PPP 040905 - Minting Stablecoins
PPP 040904 - Deploying Stablecoin's Reference Scripts
มุมมอง 244ปีที่แล้ว
PPP 040904 - Deploying Stablecoin's Reference Scripts
PPP 040903 - Stablecoin's Oracle
มุมมอง 408ปีที่แล้ว
PPP 040903 - Stablecoin's Oracle
PPP 040902 - Using our Stablecoin Dapp UI
มุมมอง 456ปีที่แล้ว
PPP 040902 - Using our Stablecoin Dapp UI
PPP 040901 - Creating our own Stablecoin Dapp
มุมมอง 870ปีที่แล้ว
PPP 040901 - Creating our own Stablecoin Dapp
PPP 040805 Homework
มุมมอง 144ปีที่แล้ว
PPP 040805 Homework
PPP 040804 - Trying it on the Testnet
มุมมอง 239ปีที่แล้ว
PPP 040804 - Trying it on the Testnet
PPP 040802 - The Private Testnet
มุมมอง 352ปีที่แล้ว
PPP 040802 - The Private Testnet

ความคิดเห็น

  • @rayanahmad9134
    @rayanahmad9134 13 วันที่ผ่านมา

    i'm having error related to docker can anyone tell me about the error: [10333 ms] error during connect: in the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect: Get "%2F%2F.%2Fpipe%2Fdocker_engine/v1.47/version": open //./pipe/docker_engine: Access is denied. in vs code while i'm clicking on Reopen in container it is showing this error: Docker returned an error. Make sure the Docker daemon is running.

  • @360eventdao7
    @360eventdao7 17 วันที่ผ่านมา

    Awesome lecture , thank you.

    • @iogacademy
      @iogacademy 15 วันที่ผ่านมา

      Glad you liked it! 😃 - Robertino

  • @360eventdao7
    @360eventdao7 18 วันที่ผ่านมา

    Great lecture Roberto

  • @georgetsironis9577
    @georgetsironis9577 หลายเดือนก่อน

    I meet some issues with npm start. The site opens but in not connected to my nami wallet. Should I maybe run npm run build after npm install? Is something wrong with nami extension?

  • @Timjstewart
    @Timjstewart หลายเดือนก่อน

    Your teaching skills are excellent! Thank you!

    • @iogacademy
      @iogacademy 15 วันที่ผ่านมา

      Thank you so much! 😄 - Robertino

  • @eezyconcept
    @eezyconcept หลายเดือนก่อน

    What if the tokens were is different address? lets say token were in Bob Address and the signed by Alice pkh now to burn token if Alice burn token will it burn from Bob's address? or token have to be in same wallet?

  • @tommysullivan
    @tommysullivan หลายเดือนก่อน

    If I am not mistaken, Idris is able to constrain and prove associativity of operators, its type system is more powerful than Haskell

    • @iogacademy
      @iogacademy 15 วันที่ผ่านมา

      Yes!

  • @justabarrelbomb4472
    @justabarrelbomb4472 หลายเดือนก่อน

    Robertino, Are you argentinian/italian? Your accent sounds very familiar to me, either italian or rioplatense

    • @iogacademy
      @iogacademy 15 วันที่ผ่านมา

      I'm Argentinean, from Córdoba. Good ears! 😂

    • @justabarrelbomb4472
      @justabarrelbomb4472 15 วันที่ผ่านมา

      @@iogacademy Buenos Aires, feliz de encontrar a un compatriota!

  • @360eventdao7
    @360eventdao7 หลายเดือนก่อน

    Great lecture Robertino, I appreciate all you do

  • @georgetsironis9577
    @georgetsironis9577 2 หลายเดือนก่อน

    In the previous video I chose to set up the environment locally. Can I deploy this demo in my pc instead of using laptop?

  • @georgetsironis9577
    @georgetsironis9577 2 หลายเดือนก่อน

    For anyone interested there is a fourth iteration available in IOG Academy.

  • @krunalkathikar2154
    @krunalkathikar2154 2 หลายเดือนก่อน

    what is the type constructor

  • @adriansinclair5323
    @adriansinclair5323 2 หลายเดือนก่อน

    Does this apply to the latest cardano node 9.1.x installation ?

  • @WIMS-Cardano-ud5rw
    @WIMS-Cardano-ud5rw 2 หลายเดือนก่อน

    Lovely

  • @360eventdao7
    @360eventdao7 3 หลายเดือนก่อน

    Thank you Roberto for your well detailed lectures

  • @krunalkathikar2154
    @krunalkathikar2154 4 หลายเดือนก่อน

    you are the 1 st who explains what is mean by pattern and i am thankful of you for directly coming to the point

  • @TankorSmash
    @TankorSmash 4 หลายเดือนก่อน

    This is very high quality. Using notebooks is a nice touch. Thank you for putting this out!

  • @AndreiGeorgescu-j9p
    @AndreiGeorgescu-j9p 4 หลายเดือนก่อน

    You really confused lifting and application. fmap is lifting and should be used most of the time. <$> is application and should only really be used in imperative code aka inside of do notation

    • @Byron1694
      @Byron1694 2 หลายเดือนก่อน

      fmap = <$> literally by definition. So can you explain why fmap should be used most and the latter imperative code? @user-tx4wj7qk4t

    • @AndreiGeorgescu-j9p
      @AndreiGeorgescu-j9p 2 หลายเดือนก่อน

      @@Byron1694 one is a function and the other is an operator. They're used in entirely different ways. Lifting is about taking a function and turning it into another function which allows for function composition, which is the whole point of fp. Application is applying arguments to functions which is imperative

  • @360eventdao7
    @360eventdao7 4 หลายเดือนก่อน

    The canvas link is broken

  • @lemillion1918
    @lemillion1918 4 หลายเดือนก่อน

    Great

  • @ryanwdavies1
    @ryanwdavies1 5 หลายเดือนก่อน

    I would like to suggest that this guide would be better with a different zoom level and perhaps withut live stream of the person

  • @philomade
    @philomade 6 หลายเดือนก่อน

    Any advice for a beginner? I was the first in my school to complete our Python ceaser cypher coursework and am know interested in learning Plutus for Cardano smart contracts. I was recommended this course as a beginner to Haskell however I am not sure whether I should be learning more basics. For example, the third question on the homework is an extremely simple problem, but requires knowledge of receiving inputs in Haskell and then to call the function. Code like 'putStrLn "Enter the radius of the circle:'. Which contains syntax we haven't even learnt yet

    • @philomade
      @philomade 6 หลายเดือนก่อน

      I decided to continue and have noticed that the lessons from episode 2 are needed to answer homework from episode 01

  • @hericklenin
    @hericklenin 6 หลายเดือนก่อน

    Hola, tu tienes lecciones de haskell en espanol?

  • @erezjacob6804
    @erezjacob6804 6 หลายเดือนก่อน

    Hey Robertino, thanks for another great lesson!

    • @iogacademy
      @iogacademy 6 หลายเดือนก่อน

      Thank you, Erez!! 😄- Robertino

  • @dr-Jonas-Birch
    @dr-Jonas-Birch 7 หลายเดือนก่อน

    Great stuff. What IDE and color scheme are you using? And what is a "cell"? JB

    • @iogacademy
      @iogacademy 6 หลายเดือนก่อน

      Glad you liked it! I use Jupyter Notebook with a Haskell Kernel for these lessons. It's not a full-blown IDE, but it's great to present! :D

    • @dr-Jonas-Birch
      @dr-Jonas-Birch 6 หลายเดือนก่อน

      @@iogacademy Thanks for the tip. JB

  • @erezjacob6804
    @erezjacob6804 8 หลายเดือนก่อน

    Great lesson!

    • @iogacademy
      @iogacademy 7 หลายเดือนก่อน

      Glad you liked it!

  • @AndreiGeorgescu-j9p
    @AndreiGeorgescu-j9p 8 หลายเดือนก่อน

    Custom Typeclasses are used often... The entire point of them is extension on cases, that's why they exist

  • @AndreiGeorgescu-j9p
    @AndreiGeorgescu-j9p 8 หลายเดือนก่อน

    Your replace method could be done with one case by using record syntax to just grab the tag

  • @AndreiGeorgescu-j9p
    @AndreiGeorgescu-j9p 8 หลายเดือนก่อน

    You should be using newtypes for the record types. You should never be directly using int or string

  • @AndreiGeorgescu-j9p
    @AndreiGeorgescu-j9p 8 หลายเดือนก่อน

    Should've used `(+) . const 1` in the for length. Better would've been using fmap. Real question is why isn't there a foldr'

  • @dragonzed
    @dragonzed 9 หลายเดือนก่อน

    LOOOOL you missed the opportunity to ask for $99.99

  • @jamessarlock4930
    @jamessarlock4930 9 หลายเดือนก่อน

    Thanks for the inspiration guys. i have stack to a point... when i try to copy with : cp ./ cardano-node ~/.local.bin/ i get this error: cp: cannot create regular file '/home/sok/.local.bin/': Not a directory any help will be appreciated... or even a link to a help forum will do the job . thanks

  • @JuanTxuThreeFour
    @JuanTxuThreeFour 9 หลายเดือนก่อน

    Great to have Robertino back!!!!!

    • @iogacademy
      @iogacademy 9 หลายเดือนก่อน

      Thank you, Juan!! Glad to be back! 😄

  • @t.hhunfeld4321
    @t.hhunfeld4321 9 หลายเดือนก่อน

    --pool-margen 0.05 \

  • @suzuranguru9673
    @suzuranguru9673 10 หลายเดือนก่อน

    You are so funny :DDD catched me off guard

  • @jfl1014
    @jfl1014 10 หลายเดือนก่อน

    thanks a lot man!

  • @jfl1014
    @jfl1014 10 หลายเดือนก่อน

    What I don't understand totally is that I thought there was the need of another computer to generate keys, one that is not connected to the internet ?

  • @daVinciRobotSurgeon
    @daVinciRobotSurgeon 11 หลายเดือนก่อน

    You stopped doing step-by-step and lost me at 10:45 when you said "I have already installed Cardano node and I have produced a few things over here."

  • @johnnuy
    @johnnuy 11 หลายเดือนก่อน

    This is certainly a reversal of thought compared to the more recent object oriented languages that use something like stream.take(10).tail().filter(x -> x > 25).any(even). If the result you're looking for is simply a Bool, will this style of function composition resolve the functions for every element at each step, or will it compose a function that is applied iteratively to each element of the list, so if the first element matches all conditions then it won't continue to evaluate the other elements?

    • @iogacademy
      @iogacademy 9 หลายเดือนก่อน

      The latter. Haskell is a Lazy language. It will only evaluate what's needed. So, you could check if a list of 1 billion elements *2 contains an even number, and it'll evaluate only the first number. In cases you can short-circuit, Haskell is more efficient than strict languages. That's why, for example, compiler developers have to explicitly add checks at compile-time to simulate what Haskell does and avoid (as much as they can) evaluating things that they won't use.

  • @andrewvoron4490
    @andrewvoron4490 11 หลายเดือนก่อน

    for those who stucked with lucid /usr/bin/env: 'node': Permission denied error, just issue chown -R root:root lucid on lucid (and lucid-ref-script) folders

  • @erezjacob6804
    @erezjacob6804 11 หลายเดือนก่อน

    Mind-blown, thank you very much!

  • @WIMS-Cardano-ud5rw
    @WIMS-Cardano-ud5rw 11 หลายเดือนก่อน

    awesome

  • @ricardojaviermamani8007
    @ricardojaviermamani8007 ปีที่แล้ว

    Cool! Thank you!!!

  • @ricardojaviermamani8007
    @ricardojaviermamani8007 ปีที่แล้ว

    Thank you! it was an amazing explanation!!!

  • @LuciaCalderon-y1l
    @LuciaCalderon-y1l ปีที่แล้ว

    consulta. está en castellano?

  • @azizmediajr2238
    @azizmediajr2238 ปีที่แล้ว

    Do you want to earn through TH-cam?

  • @SantanuChatterjee-ll7uu
    @SantanuChatterjee-ll7uu ปีที่แล้ว

    The docker container. How much download is it now? Earlier it was done in a jiffy.

  • @lemillion1918
    @lemillion1918 ปีที่แล้ว

    Thank's PPP

  • @logauit
    @logauit ปีที่แล้ว

    i think in 18:43 `operator` should be `pkh` : ``` -- CS TN pkh rate redeemer context mkWrappedValidatorLucid :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinData -> () ```

  • @srinavin
    @srinavin ปีที่แล้ว

    thank you