«functional-programming» 태그된 질문

함수형 프로그래밍은 함수를 사용하여 추상화를 작성하고 부작용과 상태 변경을 피하는 프로그래밍 패러다임입니다. 순수 기능 프로그래밍은 스레드로부터 안전합니다.

7
함수형 프로그래밍에서 응용 함수를 사용해야하는 이유는 무엇입니까?
저는 Haskell을 처음 접했고 펑터와 응용 펑터에 대해 읽고 있습니다. 좋아, 나는 펑터와 그것들을 어떻게 사용할 수 있는지 이해하지만, 응용 펑터가 왜 유용한 지, 하스켈에서 어떻게 사용할 수 있는지 이해하지 못합니다 . 응용 펑터가 필요한 이유를 간단한 예를 들어 설명해 주시겠습니까?

3
함수형 프로그래밍에서 "부분 함수"란 정확히 무엇을 의미합니까?
내 이해에 따르면 부분 함수는 예상보다 적은 수의 매개 변수를 함수에 전달하여 얻는 함수입니다. 예를 들어, 이것이 파이썬에서 직접 유효한 경우 : >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 위의 스 니펫 new_function에서 부분 함수입니다. 그러나 Haskell Wiki 에 따르면 부분 함수의 정의는 …

2
재귀 합계 유형을 처리 할 때 코드 중복을 줄이는 방법
현재 프로그래밍 언어에 대한 간단한 인터프리터로 작업하고 있으며 다음과 같은 데이터 유형이 있습니다. data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr 그리고 나는 다음과 같은 간단한 일을하는 많은 기능을 가지고 있습니다 : -- Substitute a value for a variable substituteName :: String -> …

2
Haskell : 타입 클래스 vs 함수 전달
나에게 항상 타입 클래스를 사용하는 대신 함수 인수를 전달할 수있는 것 같습니다. 예를 들어 평등 유형 클래스를 정의하는 대신 class Eq a where (==) :: a -> a -> Bool 그리고 다른 함수에서 사용하여 형식 인수를 나타내는 인스턴스는 Eq다음 과 같아야합니다 . elem :: (Eq a) => a -> [a] …



3
이 단어 기능을 접은 후 후 처리 단계없이 구현할 수 있습니까?
인쇄물의 Real World Haskell, 4 장, 98 페이지에서words 접기를 사용하여 구현할 수 있는지 묻습니다 . 가능합니까? 그렇지 않다면 왜? 그렇다면 어떻게? 나는 다음과 같이 생각해 냈습니다. 각 비 공백은 출력 목록의 마지막 단어 앞에 붙어야하고 ( otherwise가드 에서 발생합니다 ) 공란에 emtpy 단어를 추가해야합니다. 출력 목록이 이미 (이은으로 처리가없는 경우 …

1
Scala Cats / fs2에서 스택 안전에 대해 추론하는 방법은 무엇입니까?
다음은 fs2 설명서의 일부 코드입니다 . 이 함수 go는 재귀 적입니다. 문제는 스택 안전인지 어떻게 알 수 있으며 어떤 함수가 스택 안전인지 판단하는 방법입니다. import fs2._ // import fs2._ def tk[F[_],O](n: Long): Pipe[F,O,O] = { def go(s: Stream[F,O], n: Long): Pull[F,O,Unit] = { s.pull.uncons.flatMap { case Some((hd,tl)) => hd.size match …

2
Java8에서 데이터 목록 정리
데이터 목록을 정리하기 위해 수행 할 데이터 목록과 정리 작업 목록을 승인하는 방법을 만들었습니다. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } 여기서 문제는 전체 목록을 다시 작성하여 Collectors.toList()새 목록 을 …

5
println이 불순한 기능으로 간주되는 이유는 무엇입니까?
스칼라에서 책 프로그래밍을 읽고 있는데 다음과 같습니다. ...이 경우 부작용은 표준 출력 스트림으로 인쇄됩니다. 같은 입력,에 println은 동일한 출력 (내가 생각하는) 인쇄됩니다 이후, 부작용이다 나는 표시되지 않습니다 UPDATE 예를 들어 우리가 전화를 언제든지 : println(5) 그것은 인쇄 할 5 내가 요구하는 경우 표시되지 않습니다, println(5)5 이외의 값을 출력됩니다!

2
`pipe`d ES6 함수를위한 JSDoc 생성 방법
with 함수 구성을 사용하여 정의 된 ES6 스타일 함수가 asyncPipe있습니다. import { getItemAsync } from 'expo-secure-store'; const asyncPipe = (...fns) => x => fns.reduce(async (y, f) => f(await y), x); const getToken = () => getItemAsync('token'); const liftedGetToken = async ({ ...rest }) => ({ token: await getToken(), ...rest, }); …

1
Haskells 약한 머리 정상적인 형태
나는 자극적 인 것들을 우연히 발견했습니다. 나는 haskell이 약한 머리 정상 형태 (WHNF)로 작동한다는 것을 알고 있으며 이것이 무엇인지 알고 있습니다. 다음 코드를 ghci에 입력하십시오 (저는 : sprint 명령을 사용하여 식을 WHNF로 줄입니다). let intlist = [[1,2],[2,3]] :sprint intlist 제공 intlist = _이 차종은 완전히 나에게 감지. let stringlist = …

6
POJO의 퍼블릭 속성에 대한 게터 / 세터 복제 방법
~ 60 개의 속성으로 자동 생성 된 POJO가 있습니다. 이것은 게터 / 세터를 포함하지 않는 avro 1.4로 생성됩니다. 객체간에 간단한 변형을 제공하기 위해 사용하는 라이브러리는 제대로 작동하려면 getter / setter와 유사한 방법이 필요합니다. POJO를 수동으로 재정의하지 않고 게터 / 세터를 복제하고 모든 게터 / 세터를 수동으로 만들 수있는 방법이 있습니까? …

1
계속해서 할 수없는 callCC로 무엇을 할 수 있습니까?
callCC를 이해하는 데 정말로 어려움을 겪고 있습니다. 나는 Continuations의 힘을 얻었고 멋진 컨셉을 만들기 위해 일부 프로젝트에서 컨셉을 사용하고 있습니다. 그러나보다 큰 기능을 가진 것을 사용할 필요는 없었습니다 cont :: ((a->r)->r)-> Cont r a. 그것을 사용한 후에는 왜 그들이 모든 모나드의 어머니 인 Cont Monad라고 부르는지 이해가 되겠지만, 그래도 언제 …

2
상태 저장 객체 생성은 효과 유형으로 모델링해야합니까?
Scala 및와 같은 기능적 환경을 사용할 때 cats-effect상태 저장 객체의 구성을 효과 유형으로 모델링해야합니까? // not a value/case class class Service(s: name) def withoutEffect(name: String): Service = new Service(name) def withEffect[F: Sync](name: String): F[Service] = F.delay { new Service(name) } 구성은 잘못되지 않으므로와 같이 더 약한 유형 클래스를 사용할 수 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.