Haskell xatosi Noto'g'ri tugallangan belgilar sobit

Quyidagi kodni haskellga o'tkazishga harakat qilyapman, lekin menga xato bo'ladi. Haskellda noto'g'ri to'xtatilgan belgilar doimiyligi. Pythonda kod allaqachon sinovdan o'tkazilib, korrektur

    import System.IO
    funcion x n = funcionaux x n 1
    funcionaux x n k = if(k>n) then 2*k-1 else (2*k-1)-((x**k)´div´(funcion(x,n,(k+1)))
    main = do
    x <- readLn :: IO Double
    n <- readLn :: IO Int
    putStrLn (show(funcion x n))

Python kodi

    def funcion(x,n,k):
        if k > n:
            return ((2*k)-1)
        else:
            return ((2*k)-1) - ((x**k)/funcion(x, n, (k+1)))

    print(funcion(1.3,7,1)) 
0
div backticks orasida bo'lishi kerak: `div` ...
qo'shib qo'ydi muallif Willem Van Onsem, manba
Qavslaringizni hisoblang va funktsiya parametrlarini , bilan ajratmang. funcion x n (k + 1) emas, balki funcion (x, n, k + 1) .
qo'shib qo'ydi muallif chepner, manba
Qavslaringizni hisoblang va funktsiya parametrlarini , bilan ajratmang. funcion x n (k + 1) emas, balki funcion (x, n, k + 1) .
qo'shib qo'ydi muallif chepner, manba
Bu python kodi
qo'shib qo'ydi muallif delta1020, manba
Bu python kodi
qo'shib qo'ydi muallif delta1020, manba

6 javoblar

div atrofida faqat bitta tirnoq emas (bu belgi barqarorligini bildiradi, shuning uchun xatolik) backticks (prefiks funktsiyasini qo'llashni ko'rsatuvchi) kerak. Ya'ni `div` dan foydalansangiz, u erda 'div' foydalanasiz.

3
qo'shib qo'ydi
Aleksis Hali menga kod bermaydi va xato prog.hs olaman: 4: 1: xato: 4-satrda ajratish xatosi (ehtimol, noto'g'ri chertish yoki noto'g'ri katakchalar) 4-da div xatolarini tuzatdim
qo'shib qo'ydi muallif delta1020, manba

div atrofida faqat bitta tirnoq emas (bu belgi barqarorligini bildiradi, shuning uchun xatolik) backticks (prefiks funktsiyasini qo'llashni ko'rsatuvchi) kerak. Ya'ni `div` dan foydalansangiz, u erda 'div' foydalanasiz.

3
qo'shib qo'ydi
Aleksis Hali menga kod bermaydi va xato prog.hs olaman: 4: 1: xato: 4-satrda ajratish xatosi (ehtimol, noto'g'ri chertish yoki noto'g'ri katakchalar) 4-da div xatolarini tuzatdim
qo'shib qo'ydi muallif delta1020, manba

Siz 4 ta qavsni ochasiz va 3 yopilasiz.

Kodni qayta formatlash bo'yicha taklif. Bundan tashqari, funcionaux ni o'zimga yozib qo'ydim.

Tuzatish uchun ko'proq xatolik bo'lishi mumkin, bu tekshirilmagan.

import System.IO
funcion x n = funcionaux x n 1
funcionaux x n k = if k>n 
   then 2*k - 1 
   else 2*k - 1 - ((x**k) `div` funcionaux x n (k+1))
main = do
   x <- readLn :: IO Double
   n <- readLn :: IO Int
   putStrLn (show (funcion x n))
1
qo'shib qo'ydi

Siz 4 ta qavsni ochasiz va 3 yopilasiz.

Kodni qayta formatlash bo'yicha taklif. Bundan tashqari, funcionaux ni o'zimga yozib qo'ydim.

Tuzatish uchun ko'proq xatolik bo'lishi mumkin, bu tekshirilmagan.

import System.IO
funcion x n = funcionaux x n 1
funcionaux x n k = if k>n 
   then 2*k - 1 
   else 2*k - 1 - ((x**k) `div` funcionaux x n (k+1))
main = do
   x <- readLn :: IO Double
   n <- readLn :: IO Int
   putStrLn (show (funcion x n))
1
qo'shib qo'ydi

Xo'sh ... Haskell python kabi oddiy emas va u o'ta o'ylangan ishni talab qiladi.

Ish kodi quyidagicha ko'rinadi:

import System.IO

funcionaux x n k = if(k>n)
                then 2*k-1
                else (2*k-1)-((x^k) `div` (funcionaux x n (k+1)) )
main = do
 x <- readLn :: IO Int
 n <- readLn :: IO Int
 putStrLn (show (funcionaux x n 1))

Va ba'zi bir eslatma:

  1. for infix use `operator` not 'operator';
  2. ** and ^ for different types;
  3. div and/for different types too;
  4. during a function call the arguments are passed without commas;
  5. and so on.
0
qo'shib qo'ydi

Xo'sh ... Haskell python kabi oddiy emas va u o'ta o'ylangan ishni talab qiladi.

Ish kodi quyidagicha ko'rinadi:

import System.IO

funcionaux x n k = if(k>n)
                then 2*k-1
                else (2*k-1)-((x^k) `div` (funcionaux x n (k+1)) )
main = do
 x <- readLn :: IO Int
 n <- readLn :: IO Int
 putStrLn (show (funcionaux x n 1))

Va ba'zi bir eslatma:

  1. for infix use `operator` not 'operator';
  2. ** and ^ for different types;
  3. div and/for different types too;
  4. during a function call the arguments are passed without commas;
  5. and so on.
0
qo'shib qo'ydi
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming